メタプログラミングについて

http://d.hatena.ne.jp/ytqwerty/20090318#p1

プログラムをデータとして扱えるといえば、LISPですが、括弧だらけで普通のプログラマには
向いてません。
プログラムをデータとして扱っていろいろやれるCみたいな言語が自分が作っているsumi言語です。
CyanはインデントによるブロックがあるのでLISPのマクロが使えるpythonです。
sumiはインデントブロックがないのでLISPのマクロが使えるJavaScriptです。
でもって、いろんな機能は所詮、バッグエンドの機能であってそんなものは後でどうとでもなる
というのがLISPの柔軟性であり、いつまでも生き残っている理由でもあります。
S式は不滅です。
sumi言語ではC言語に似たS式のような言語C式とかいっている言語を使ってプログラミング言語
を作ることでLISPと同等の機能を持ち合わせています。
そして、プログラムが組める最小限の能力だけを持ち合わせた非常に小さい実装を追求しています。
小さいと一言で言っても、プログラムのソースが小さい、実行するためのバイナリが小さい、
インストールの手間が小さい等、いろいろな尺度があるのでそれぞれ、scalaで書いたり、
JVM上で最小のものを目指したり、JavaScriptで書いてブラウザが動けば動くといったような
実装を作ってみています。


今後はより簡単に誰でも作れるように48時間で作るsumi言語といったようなものを書いてみよう
とか思っています。