(How to Write a (Lisp) Interpreter (In Python))
This page explains how to write a Lisp interpreter in Python. It provides step-by-step guidance for implementing a simple Scheme-like evaluator, covering parsing, environments, and evaluation rules. The tutorial is aimed at programmers interested in understanding how interpreters work through a practical Python implementation.
背景メモ
- ピーター・ノーヴィグ(Peter Norvig)は、Googleのディスタッグイッシュド・サイエンティストであり、AIやプログラミング言語の分野で著名な人物。共著書『Artificial Intelligence: A Modern Approach』は、AI分野の標準的教科書として世界中で使われている。
- この記事は、「Lisp(Scheme)方言のインタプリタを、わずか90行程度のPythonで書く」という教育的ハッキングの古典。Lispの構文(S式)と評価戦略がどのように動くかを、最小限のコードで示している。
- ノーヴィグは2バージョンを提示している:前半は簡潔で読みやすい「Lispy」、後半はより完全なScheme準拠の「Lispy2」。後者では継続やマクロといった高度な機能を扱う。
- この種の「言語処理系を手で書く」チュートリアルは、SICP(計算機プログラムの構造と解釈)やコンパイラ入門の伝統に連なるもので、Pythonコミュニティを中心に多くの学習者に影響を与えた。