プログラミング言語の作成はプログラマーの夢の一つだといわれています。
一般的にプログラミング言語の作成は困難な作業だと思われていますが、モダンなプログラミング言語を使い、簡潔なプログラミング言語を実装するのならば難易度を下げることができるかもしれません。
本日紹介する「Tiny Languages」は、そのような考えのもと作成されたシンプルなプログラミング言語の実装を含むGitHubリポジトリです。
各言語は、有名なプログラミング言語のマイクロ実装となっていて、Pythonで作られ、各コードは50行以下になるように簡潔にまとめられています。Pythonの標準ライブラリのみを使用し、それも非常にささやかな範囲にとどめているとのこと。
次のような言語を含んでいます。
-
asm.py
- Assembly - Pythonっぽいアセンブリをバイトコードにコンパイルして実行する。 -
basic.py
- BASIC - TinyBASICのサブセットだが、ちゃんとしたBASICラインエディターが付属している! -
lisp.py
- Lisp 1.5 - John McCarthyによるクラシックなインタプリター(meta-circular interpreter) -
apl.py
- Arthur Whitneyによる、K(配列処理プログラミング言語)のトイ方言であるk/simpleインタプリタ。 -
mouse.py
- 1979年に『BYTE』誌に掲載された連結型プログラミング言語「MOUSE」。 -
pl0.py
- Niclaus WirthによるPL/0インタプリタ。 -
tcl.py
- Tool Command Language (Tcl)インタプリタ。
各ファイルはPythonのソースコードで、例えば、asm.pyは次の通りとなっています。
作者のソフトウェア開発者Serge Zaitsev氏による解説記事が、こちらで確認可能です。
自分自身で独自のプログラミング言語を実装したり、プログラミングの歴史について学びたい方は、参考にしてみてはいかがでしょうか。