Planet Python 日本語
フォロー
ネッド・バチェルダー:マイクロ言語実装:カルシウム
私はCalciumという小さな言語実装を書きました。
これはPythonのような言語がどのように実装されているかのデモンストレーションを意図しています。
約300行のコードで、トークナイザー、パーサー、AST、コンパイラ、バイトコード、実行エンジンをすべて備えています。
Pythonはインタプリタ言語ではないのか?なぜコンパイル言語だと言われるのか?という質問をよく見かけるため、これをやりました。(ちなみに、これも以前のブログ記事「Pythonはインタプリタ言語かコンパイル言語か?両方です。」で回答しました。)
Pythonプログラムが、人々が「コンパイル」と聞くと連想しがちな、明示的なネイティブCPU命令のシーケンスには決してならないことを説明するのは難しいことがあります。
そこで、次にこの話題が出たときにすぐに使えるようにCalciumをコーディングしました。
実行エンジンコードがバイトコードを読み込み、その指示を実行する様子を示すことで、理解を助けることができると思います。
また、言語実装をいじってみたい人にとって、興味深い出発点にもなるかもしれません。
ほとんど何も含まれていないため、追加できる簡単なもの(コメントなど?)がたくさんあります。