99行の宇宙:Lispインタプリタを「書く」ことで学ぶ
Lispの最大の魅力の一つは、その言語自体を実装することが容易であり、かつ教育的であることです。
実装から学ぶ
- わずか99行のC言語で動くLisp
- S式のパースと評価(Eval)の核心
- ガーベジコレクション(GC)と環境管理
この記事では、非常に小さなLisp実装を通じて、プログラミング言語がどのように動いているのかを解き明かします。
参考文献
- tinylisp - Lisp in 99 lines of C — 99行という極小の実装から、Lispインタプリタの構造を学ぶための最適解。
- Build Your Own Lisp — C言語で自作言語を構築するためのステップバイステップのガイド。
- sectorlisp - Bootstrapping LISP in a Boot Sector — 512バイトに収められたLisp。最小限のプリミティブとメタサーキュラー評価の極致。
- Wisp - A light Lisp written in C++ — モダンなC++での軽量実装例。
- LispE - Full-fledged Lisp interpreter — 遅延評価やパターンマッチングを備えた高機能なLisp実装のショーケース。
- SBCL - Steel Bank Common Lisp — 実用的なLisp開発のスタンダードであり、高性能コンパイラの参照先。
- Pile Programming Language — JVM上でのLisp。Javaとの相互運用性と現代的な機能の統合。