言語ゲーム

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

Twitter: @propella

異星における言語と cola/flash eval の実装について。

昨日日記を書いたばかりだけど、意外とそこから進みが速かったのでもう一度書く。今日 eval の実装をしてみた。それがどういう意味を持つかというと、SF 小説で言うと、今の我々が住む世界が全く出てこない小説を書くために、歴史や人種や言語なんかを一から作り上げて破綻無くストーリーを構築してゆくというのに似ている。

小説を読んでもらうにはもちろん最初は地球人の言葉で最初は書かないといけないんだけど、小説中に登場する異星人の言葉が綿密に練られていれば、ちゃんとその異星人の言語を使って文化や物語を作る事が出来る。読み進めるためには読者はその異星人の言語を学ばないといけない。そうして異星人の言葉で書かれた小説の中でまた物語が進んで行けば、つまり、劇中劇中劇の状態になれば、理屈上地球語が無くても一貫した世界観を作り出す事が出来る。

これが自己記述言語と、応用としての eval 機能の意味だ。

eval は Javascript では当たり前の機能だけど、今の Flash で出来ない事の一つで、 何年も前からこの問題に挑戦している人はいる http://eval.hurlant.com/ 。だから私が改めて eval を作ったからといって特に目新しい事は無いんだけど、技術的に lisp の特徴であるコード生成やマクロを使いまくって書いている所が面白いかなと思う。まあ、一回はこういう事をやってみたかった所たまたま機会に恵まれたという事だ。アセンブラが動くまでは相当つらかったが、そこまで書くと必要な機能はほとんど出来ているので、意外とすんなり行った。それでも今のままでは単にやってみたレベルなので、実用にはほど遠いのである。