2 part forth (907レス)
2 part forth http://mevius.5ch.net/test/read.cgi/tech/1073673931/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
521: 464 [sage] 2008/10/11(土) 15:30:32 >520 どのみちリターンスタック(実行する命令列を保存する専用スタック)が必要なのはその通り。 WORDの動作:普通のForthでの実行と同じ動作でワード系列をコピー VMの動作: 順番にInterpretして実行する というところがポイントですな。VMは辞書のこととか考える必要がないのでシンプルになります。 その代わり「辞書からWORD列を拾ってリターンスタックに展開する」というWORDが必要になるけど。 確かにコピーする手間はムダな気もするんだけどね…… 辞書のWORD列を直接トレースするのと比べてどんぐらい余計な手間がかかってるんだろう? ポインタ操作数回&アクセス数回レベルだと思うけど。 http://mevius.5ch.net/test/read.cgi/tech/1073673931/521
524: 517 [sage] 2008/10/11(土) 21:01:10 >>521 いや、そうではなくて、 「WORDの動作」の中の、「普通のForthと同じ動作で」ってところに、 リターンアドレスを保存するスタックという意味でのリターンスタックが、もう必要なのではないかということ。 あと、言葉の問題として、 大きい意味でのワードを展開する動作のところからもうInterpreter(=VM)の動作というのが普通だと思う。 つまり、VMの動作の前半をWORDの動作と呼んで違う名前にしたから、 残ったVMの動作が簡単に見えるというだけなんじゃないかな。 辞書中のワードから始めると、ForthのVMよりも(多分プリミティブ)WORDの系列を作る部分が余分で、 より複雑になってると思う。 でも、自分の言語を作るのをやめろといってるんじゃないよ。 むしろ応援してる。 ちょっと話題はそれるけど、Forthというか、スタック指向言語は、 コンパイラライターフレンドリーなんだよね。 だから、Forthコード書くよりForth(風オレ言語)VMを書く人が多かったりするわけだが、 ホントはForthでアプリケーションを書くときも「オレ言語」を作るつもりで書くと良いと思ってる。 http://mevius.5ch.net/test/read.cgi/tech/1073673931/524
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.032s