Ometaは「パターン マッチング用の新しいオブジェクト指向言語」です。Lexx/Yacc や Pyparsing などの文法を解析するための Oz ツールなどの言語で、パターン マッチングに遭遇したことがあります。サンプル コードを見たり、ディスカッションを読んだり、友人と話したりしても、Ometa が特別な理由 (または、少なくとも一部の人々がそれをそう考える理由) を理解することはできません。説明はありますか?
4127 次
2 に答える
12
また、私にとって最も重要なのは、OmetaのSqueakポートで左再帰ルールを使用できることです。
そのPEGの遺産から、それは後戻りし、無制限の先読みを取得します。以前の解析結果のメモ化により、線形解析時間が可能になります(ほぼ常に(*))。
高次のプロダクションでは、文法を簡単にリファクタリングできます。
このペーパー(Packratパーサーは左再帰をサポートできます)では、左再帰のプロパティについて説明します。
(*)論文のセクション5では、超線形解析時間が発生する可能性があると説明していますが、この問題は実際の文法では現れません。
于 2008-12-10T09:27:12.897 に答える
7
私が知る限り、それはメタ言語です。新しい言語構造を作成し、DSL を作成できます。しかし、最も魅力的なのは、既存のパーサーをサブクラス化して言語を拡張できることです。とにかく、それは私が覚えていることです。
これは興味深いと思いました: http://www.moserware.com/2008/06/ometa-who-what-when-where-why.html
于 2008-09-20T05:34:20.300 に答える