言語ゲーム

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

Twitter: @propella

逆転パーサー

妄想パターンマッチ言語実例2(逆転パーサー7)

前から随分経ちましたが、前回 http://d.hatena.ne.jp/propella/20100321/p1 の続きです。久しぶりなので最初から考え直します。 データ 逆転パーサーでは、全てのデータは タグ 内容 内容... の正規形を持っている事にします。Prolog と一緒です。Pair 1 Ni…

妄想パターンマッチ言語実例(逆転パーサー6)

前回提案した文法 http://d.hatena.ne.jp/propella/20100320/p1 を元に、AVM2 ABC ファイルの 32 ビット整数 u32 http://www.adobe.com/devnet/actionscript/articles/avm2overview.pdf のリーダー(パーサー)とライターを記述してみます。準備として、必要な…

妄想パターンマッチ言語 (逆転パーサー5)

http://d.hatena.ne.jp/propella/20091115/p2 の続き。Scala の Extractor のおかげでアイデアがまとまって来たのでメモ。逆転パーサーの基礎になる言語について考える。最初のバージョンで言語に欲しい性質は次の通り。 出来るだけ関数型。副作用はこっそり…

逆転パーサー 4

何となく何が足りてないかはっきりして来ました。まず言葉の定義から。 読み込みとは、バイナリ列 (例 [0 1 0 1 1 ...]) を入力しオブジェクト(例: "Hello") を出力する事。 書き込みとはオブジェクトを入力し、バイナリ列を出力する事。 ルールから、読み込…

逆転パーサー 3

考えている事をだらだら書きます。 バイト列 前回取り上げた amv2 の 可変長整数の例があまりにも単純すぎたので、もうちょっと難しい例を考えてみます。ありがちなバイト列のエンコーディングとして、最初の 1 バイトが長さで、残りのバイトで 0 - 255 バイ…

逆転パーサー

http://d.hatena.ne.jp/propella/20091016/p1 で書いた逆転可能バイナリパーサについて、ここで実際にどんな事がしたいのか書いてみます。avm2 では整数は次のようなルールでエンコードされます。 整数が 7 ビットの範囲に収まる場合、 0-6 ビットを 1 バイ…

バイナリファイル形式パーサージェネレータが欲しい

最近工作の事ばかり書いてるのは、出来た模型を来月頭のとあるカンファレンスでネタとして持って行く予定なのと、あと仕事では毎日ドキュメントを書くばかりで、特に何も面白い事が起こらなかったからです。そのドキュメントも終わり、今週あたりからまたプ…