トップ 一覧 Farm 検索 ヘルプ RSS ログイン

Forthを作ってみる2 / 構造を考えるの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
内部構造について。

!!! 変数

以前はグローバル変数がたくさんあったが、なるべく局所化してみる。
関数が必要とする値は、なるべく引数として渡す。

!!! 構造体

スタックやワード・変数の管理テーブルを構造体として定義する。

!!! ワードの処理

ワードを切り出したら、即座に対応する処理ルーチンを呼び出せるか?

例えばifワードは、分岐先が確定していないと分岐先にジャンプすることが出来ない。
つまり、対話環境でそのワードが入力されても、それだけで処理を行うことが出来ないワードである。

そこで、入力→コンパイル→実行とするために、バッファを用意する。

!!! 内部インタプリタ

[[色々な方式がある|Threaded Code]]が、コールスレッディングを用いる。
C言語で作るときは、これが一番互換性がある。

!!! 構文解析

以前作った関数parse()は、if〜elseの嵐だったので、もう少しスマートにする。
順番に文字列を比較することは、変わらない。

[[戻る|Forthを作ってみる2]] [[次へ|Forthを作ってみる2 / 対話環境を作る]]
[[戻る|Forthを作ってみる2]]  [[前へ|Forthを作ってみる2]]  [[次へ|Forthを作ってみる2 / 対話環境を作る]]

:Amazonリンク:[言語設計者たちが考えること|http://www.amazon.co.jp/gp/product/4873114713/ref=as_li_ss_tl?ie=UTF8&tag=moi0e-22&linkCode=as2&camp=247&creative=7399&creativeASIN=4873114713]

{{adsence}}