メメメモモ

プログラミング、筋トレ、ゲーム、etc

コンパイラ

四則演算と変数の扱いができるlisp

変数を使った四則演算ができる簡単なlispインタプリタを書きました。 トークン解析と構文解析 lispは下記のように書きます。 (- 3 2) ;6 (- 3 (* 2 3)) ;-3 (setq a 3) プログラムはリストで記述されます。 リストとは'('と')'で囲まれた部分です。「(- 3 2)…

構文解析器

前回は、抽象構文木をプログラム直打ちで記述していました。 今回は、下記のスクリプト文字列を読み込んで、抽象構文木を作成する構文解析器を作成しました。 n=5;x=1;L5{x=x*n;n=n-1};x' スクリプトの構文解析を行なうためには、 まずスクリプトの構文がど…

抽象構文木構築

下記のスクリプトは、nの階乗を求めることを想定しています。 n = 5; x = 1; L n x = x * n; n = n - 1; x; このスクリプトを構文木の形で表現して実行するプログラムを書きました。 構文木は下記のようなものになります。プログラムは、木の節点に対して一…