21

Ometaは「パターン マッチング用の新しいオブジェクト指向言語」です。Lexx/Yacc や Pyparsing などの文法を解析するための Oz ツールなどの言語で、パターン マッチングに遭遇したことがあります。サンプル コードを見たり、ディスカッションを読んだり、友人と話したりしても、Ometa が特別な理由 (または、少なくとも一部の人々がそれをそう考える理由) を理解することはできません。説明はありますか?

4

2 に答える 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 に答える