- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
内部構造について。
!!! 変数
以前はグローバル変数がたくさんあったが、なるべく局所化してみる。
関数が必要とする値は、なるべく引数として渡す。
!!! 構造体
スタックやワード・変数の管理テーブルを構造体として定義する。
!!! ワードの処理
ワードを切り出したら、即座に対応する処理ルーチンを呼び出せるか?
例えば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}}