言語ゲーム

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

Twitter: @propella

データフロー式 etoys 言語の作成計画

イデアというのは構想の段階で何か言っても、普通返って来るのは否定的な意見ばかりで、ある程度形が見えるまで分かってくれる人はいない。特に私のような小心者はそれでやる気を失う事が多いので本当の事は黙ってる事が多いのだが諸般の事情で形を変えて相談する事にした。

考えのコアになるのは Arrow と同じ意味論のデータフロー言語をスタック言語で記述すると言う物だ(Arrow とスタック言語の関係は単に私の妄想レベルの話だ)。思うに、Excel 以外のデータフローが何故流行らないのかと言うと出来る事が限られてるからだろう。それは、わざわざ依存パターンで記述する事による能率の悪さと、上手くデータフローにしっくり来ない(ように見える) 物が多い記述力の悪さがある。そこは Arrow を使う事によって理論的支柱をバッチリ押さえる。データフローはそもそも手続き型の記述より遥かに読みやすい物である。そしてスタック言語を使う事によってマニア心をくすぐる。何て完璧な計画だ!

最初は本当に秘密計画でやるしか無いと思っていたが、アレックスの Meta の実装がスタック言語になってる事と、基本的に and と or の組み合わせなのが Arrow に似ている所があるので、妥協して内部実装を Meta で出来ないか打診してみた。素晴らしい政治力。

Meta というのは彼が作ってるパーサージェネレータだ。世界は全部言語だというのが彼の考え方なので、それならパーサを前の世界から次の世界を計算する道具として使えば良いと提案してみた。ただ、何でも出来すぎると問題があって、ちゃんと Arrow っぽく秩序を保つ必要があるのがポイントだ。

繰り返して書く。Arrow のモデルは分かりやすいデータフローUI で操作する事が出来る。内部実装はスタック言語で表記可能である。パーサージェネレータは Arrow と同じ事が出来る。