2007-03-01から1ヶ月間の記事一覧

lispで言語実装(3)

電卓の実装(3) 意味解析 字句解析 構文解析 意味解析← いまここ 2*(1+2)から(* 2 (+ 1 2))が得られるようになったので、あとはそれを計算するだけ。lispで処理しやすい形に整形してあるので処理は簡単。 構文解析の時点で、1+1+1+1 → (+ 1(+ 1 (+ 1 1)))のよ…

lispで言語実装(2)

電卓の実装(2) 構文解析 字句解析 構文解析 ← いまここ 意味解析 「1+2*3」の様な入力に対して、「(+ 1 (* 2 3))」を返す処理を作成する。 数式の構文規則は、以下の様に表現される。 E := T [["+" | "-"] T]* T := F [["*" | "/"] F]* F := NUM | "(" E ")"…