プログラム配列を走査する
コード化されたプログラム配列prog[]をもとに、プログラムを実行するには、、
- 現在位置のコードを得る
- コードによって処理を振り分ける
- 最初に戻る
コードとしては、以下のようになる
void proc_prog(void) { while (prog[prog_cnt] != CODE_END) { switch (prog[prog_cnt]) { case CODE_PUSH: /* pushの処理 */ break; case CODE_PLUS: /* plusの処理 */ break; case CODE_PRINT: /* printの処理 */ break; } } }
ただスイッチ文で振り分けただけの構造である。 ところで、コードにはマクロ名を付けた。
#define CODE_END 0 #define CODE_PUSH -1 #define CODE_PLUS -2 #define CODE_PRINT -3
である。