!!! コンソール入力はどう実行するか? forthを起動し、 2 3 + . と入力したとき、どのように処理するか? ひとつは、切り取ったトークンを片っ端から処理する方法がある。 *'2'が来たらスタックにプッシュする *'3'が来たらスタックにプッシュする *'+'が来たらスタックにプッシュされた2つの値をポップ・加算・加算値をプッシュする *'.'が来たらスタックからポップした値を表示する この方法を用いたとき問題になるのは、分岐が発生したときである。たとえば、 if ." OK" else ." NG" then だと、'if'が来たらスタックトップの内容で次に行う処理を選択する。 しかしワードをその場で処理する方法だと、まだ飛び先が決まっていないこの時点では処理できない。 そこで、一旦ワード化し、中間コードに落としてから処理する。 *コンソールからの入力は専用のワードに登録する *その後、そのワードを実行する こうすれば、分岐先が決まらない問題を解決できる。 [[戻る|Forthを作ってみる2]] [[前へ|Forthを作ってみる2 / 対話環境を作る]] [[次へ|Forthを作ってみる2 / 構文解析を作る]] :Amazonリンク:[Portable Forth|http://www.amazon.co.jp/gp/product/6131009996/ref=as_li_ss_tl?ie=UTF8&tag=moi0e-22&linkCode=as2&camp=247&creative=7399&creativeASIN=6131009996] {{adsence}}