言語ゲーム

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

Twitter: @propella

SmaCCToys

あまり良くない事なのだが、SmaCC言語ゲーム(SmaCCToys)の実装をしているうちに、果たしてこれって何の役に立つんだろうか??という気がしてしまい、ここは頭を冷やして喫茶店で考える事にした。
最初にパーサジェネレータのGUIを作るというアイデアを考えた時、これは面白いネタなんじゃないかと我ながら関心してしまった。パーサジェネレータについては、本を買ってその面白そうな所は分かるものの、応用がひどく難しそうに思えた。そこでこれをGUIにして簡単にすればすごく楽しい物が出来るんじゃないか?

去年作っていくうちに分かったことだが、文法の作成はそんなに難しい事じゃない。簡単な物ならちょっとしたパズル感覚で作る事が出来る。問題は文法を解析した後だ。
用途に応じて意味を作っていくのだが、結局ここでコーディングが必要なので、GUIでちょこっと作っては実験というわけにはいかないと言う事が分かった。また、根本的なことだが、新しい文法が必要な用途ってそうそう無い。

かといって全く言語ゲームが無意味という訳ではないだろう。昨年の開発によっていくつかの漠然としたアイデアが浮かんでいる。

  • リアルタイム解析。文を入力した端から(途中からでも)解析してゆき、コンパイル/テストを行ってしまう。IDEの補完をさらに進めた機能。
  • タイルスクリプティングで文法を作成し、メタレベルからGUI指向の環境を開発する。
  • 宣言的プログラミングの部品として使う。
  • 文章から画像や音楽を生成するパーサのキットとして。
  • ステートマシンのシミュレート
  • パースという概念を拡張し、あらゆる情報を構造化する。

今年のテーマは、「デバッグ/テスト」なので、実は昨年出来なかった文を今年もやる必要も無いのかも知れないけど、パーサとデバッガがどこかで繋がっていそうに思える事と、構文解析の本質っぽさがSmaCCToys を完成させたいという動機に繋がっている。ただ、あまり本質を追いかけると完成しないので、どこで表面に向かうかが問題。