言語開発合宿

hoge1e32007-09-23


言語開発合宿 に参加.2泊3日のうちにプログラミング言語をつくるというすごい企画.

最初は 代入可能な純粋関数型言語 を作ろうとしたが,3日(というか途中参加なので2日)では絶対完成しなさそうなので,ネタに走る.


bioParser - 構文解析するいきものたち(Tonyuが必要です)


LRパーサの原理を学習するために作ったのだが,すごい乱数まかせの挙動なので,「x=x+1;」 の 「1;」の部分だけを「式文」と解釈するなど,まともに解析できず.

アスキーアートフローチャートを書くとそのまま実行できる言語とか,ウクレレの楽譜を自動生成する言語とか,Javascriptで書いたSchemeとか,皆さん個性的なものを作っていた.

特に勉強になったのは HaskellでScheme処理系を書くチュートリアル の実演.Haskell ならこれだけ簡単に言語がつくれます....といいたいところだがあまり簡単でない.まあ,他の言語ならばパーサジェネレータで変換をかまさないといけないところを, Haskellの言語仕様をまったくいじらないでパーサが書ける,というところがすごい.

あと「Haskell って print とかあるけどあれはいいの?副作用なんじゃないの?」とか聞いてみたら「あれはAction を返しているだけなのでHaskell的には問題ない」 というオシカリを受けた.Haskell でビープを鳴らすサンプルも見せて(聴かせて)もらった.「純粋関数型言語なのなのになぜビープが鳴るんだー」と思った...すみません,私はなんか「関数型言語コマンドラインから数式をいれて,数学の計算をして,表示するもの」という偏見があるようです.