[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