[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[b-free: 1082] Re: はじめまして



 岩間さん、こんにちは。リギーコーポレーションの片桐です。

|     どもです、片桐さん。こちらでも、よろしくお願いします。片桐
|    さんが参加されると、実際にOSに組み込むときのOS側の実装に
|    ついても具体的な話しができそうですね。

 よろしくお願いします。(でもOSの中身については素人ですσ(^^;

 ついでと言っては何なんですが、FORTH/Mindのような、スタックオリエン
テッドな言語を組み込み易くしてくれるといいなと思っています。
 具体的に言いますと、
 明に使えるスタックのPUSH/POPの機構だけでもいいからアセンブラ書かな
くても使えるといいのですが‥。できれば2本。(←おいおい)
 C風にかけば、push(data), data=pop() みたいなのが欲しいのです。
(バリエーションとしては、drop(), swap() とかもう少しありますが)

 MindをUNIXに乗せる時に一番苦慮したのがそこでした。今まではずっと
ディスパッチャ/低レベル単語はアセンブラ定義でったのですが、さすがに
UNIXでアセンブラというのは見当も付かない話だったので、仕方なくスタッ
クをエミュレーションしているのですが、速度が遅くなっています。
速度だけでなく、静的変数にスタックポインタを取っていることから、マルチ
スレッド化もしずらくなっています。

 Cのランタイムの話と思われるかも知れませんが、正式にスタックとして
使うには、CPUの実レジスタに割り当てて欲しいので、やはりOSがらみの話に
なるかと思います。(実レジスタだったら、割り込みやタスクスイッチで
自動的に保存されると思うので)

 JavaのVMはどうやって実装しているんですかね。やはりアセンブラなんで
しょうか。(↑こちらも低レベルはスタックマシンのようですが‥)

 では。
                                片桐 明  (株)リギーコーポレーション
                                killy@rigy.co.jp
                                NIFTY: PAG01434