言語ゲーム

とあるエンジニアが嘘ばかり書く日記

Twitter: @propella

Workshop on Self-sustaining Systems (S3)

9月27日、9月28日と、東京大学駒場キャンパスで開かれた S3 というワークショップに参加しました。Self sustaining というのは、例えばあるプログラミング言語がそのプログラミング言語自体で書かれるような再帰的な物の話です。

雨の中こじんまりと行われた会議でしたが、濃い話を聴く事が出来ました。初日は Ruby の作者のまつもとゆきひろさんのキーノートがあり、Rubinius という Ruby で書かれる予定の Ruby の紹介をされていました。といっても、初めて自作言語を作られて Ruby が出来るまでの話は生き生きと語られていましたが、Rubinius はわりと他人事な感じでした。言語のデザインはともかく、自己記述にはあまり興味ない、OO 言語で OO 言語を書くなんて嫌だと本人もおっしゃっていたのですが、その空気を読まず Self sustaining とは何ぞやについて質問し続ける方が居て、何だこの人はと思っていたら二日目のキーノートの池上高志さん http://sacral.c.u-tokyo.ac.jp/~ikeg/index_j.html でした。

池上さんは自己組織化をテーマにされている物理の研究者で、最初に生命とはなんぞやについて、外部からの入出力がありながらも何らかの形を維持し続けるシステムという定義を示されました。例えば我々の体の素材は物質としては日々交換されているわけですが、何らかな同一性を保っていると。しかしこの定義では普通生命に含まれていないような沢山の物理現象が生命に含まれてしまう事になります。しかしこの定義から入ると生命の本質について面白い見方をする事が出来ます。

池上さん本人の研究としては、ビデオカメラとプロジェクターをニューラルネットワークで結んで生命をシミュレートする Mind Time Machine という実験を紹介されました。これは、生命を細かい要素に還元して個々の性質を見るという科学伝統的アプローチに対して、生命っぽい要素を全部ごた混ぜにして動かすと生命っぽくなるんじゃ無いかという魔術的というかキルヒャー的というかルネサンス的なアプローチが面白かったです。

発表の中では、倉光君朗さんの konoha という言語 http://konoha.sourceforge.jp/ のオレ様仕様ぶりが面白かったです。例えば konoha では識別子のゆらぎを許容していて、funcName FuncName func_name のような名前を同一視します。もちろん会場の理性的な研究者の方からやんわりとした非難の視線が投げかけられていたのでしたが、作者の方は自らの信念に全く動じておりませんでした。このようなエゴとエゴの殴り合いがプログラミング言語設計の面白い所だと思います。

私は Tamacola の実装について延々話ました。前回の S3 の論文集の傾向から、この会は言語の実装について話す会なのだろうと思っていたのですが、そうでも無かったらしく、二日目は人も少なく寝てる人とかいてしんどかったですが、アドリブで話す内容を変えるほど芸達者でも無いので最後まで通しました。