があります。

C言語風でBNFが短いと言うと
しかし、そのBNFには存在しない、シンタックスシュガーがあります。
そのシンタックスシュガーとは一体なんなんですか?
というところがよくわかりません。
勉強不足ですスイマセン。


Ioは結局のところオブジェクト指向な言語です。
Ioとsumiの違いは、Ioはオブジェクト指向であるのに対して、
sumiは式をいじることに重点を置いているところです。


式をいじるってなると、必然的に関数型言語に近くなる。
しかし、リストを基本としようとしているわけでもない。
じゃあ、何なのといわれると困ってしまう。
困った言語です。式指向な言語なんだなぁ。


そもそも、関数型言語ってコンパイラを作るのに特化したような性質があるからなぁ。


プログラムは全て式で、式と式はえんざんしによって結合されます。
式は式によって操作され、別の式に変換されます。
Sumiにおいて、全てのものは式です。とか言う話すればいいのだろうか。
音楽も式です。Ioも式です。絵も式です。みたいな。
人生も式です。人生における代表的な式に結婚式や葬式などがあります。
とかな。どーでもいいな。


コンパイラっていうのはプログラマにとっての道具です。
大工が儲けるには基本的に家を建てて儲けます。
大工道具を大工が作ってもそんなに儲かりません。
同じように、コンパイラプログラマが作ってもそんなに儲かりません。
では、なぜ言語を作るのかと言ったら、道具に不満があるからです。
どんな不満があるのかと言ったら、プログラムを構造化されたデータとして
扱えないことに不満があります。
なので、構造化されたデータとして扱える道具が欲しい。
ってまぁ、それだけなんですわなぁ。
じゃあ、LISPでいいんじゃとなるんだろうけど、LISPじゃ、読みづらい。
Haskellや、Ocamlは普通に使うのにはどうもむいてなさそう。
じゃあ、Scalanemerleはってなると、うう、いいかもしれないねぇ
ってなるのでした。でも、俺みたいに頭悪いと作れそうにない。


ってところで、頭悪くても処理が作れないといけない。
それだけ、単純じゃないといけない。ってところなのでした。