最近 Scheme とかのインタプリタを書くのが流行っているらしいね (という前振りを書くのは何回目だろうか) あのbakaiku でも取り上げられている. というわけで,僕も何か書きたくなった.言語は,たまたま紀伊国屋で見かけて読んでいた計算モデル論入門で,計算可能性の概念を示すために提案された,Scheme のほぼミニマムなサブセットであるプログラミング言語 L が手ごろで良さそうだ.構文的には P ::= C | (begin D1 ... Dm P1 ... Pn) D ::= (def X) | (def (f) P) C ::= (add1 X) | (sub1 X) | (if (nzero? X) P1 P2) | (if (nzero? X) P) | (f) これだけで,データ型は自然数だけだ.これでも現存する全てのチューリング等価なプログラミング言語と,計算能力は