私は現在、汎用のエージェントベースのプログラミング言語を開発しています (その構文は Java に多少影響を受けており、この言語でもオブジェクトを使用しています)。
プロジェクトの開始以来、私たちはANTLRまたはXtextを使用するという事実について疑問を抱いていました。その時点で、Xtext が ANTLR の機能のサブセットを実装していることがわかりました。そのため、言語に ANLTR を使用することにしましたが、言語に本格的な Eclipse エディターを無料で提供する可能性を失いました (Xtext が提供する優れた機能)。
しかし、私の知る限りでは、この夏、Xtext プロジェクトは大きな前進を遂げました。リンクから引用:
Xtext の制限事項は何ですか?
Sven: Xtext を使用すると、ほぼすべての種類のプログラミング言語または DSL を実装できます。例外が 1 つあります。それは、いわゆる「セマンティック述語」を使用する必要がある場合です。これはかなり複雑で、ここで説明する価値はないと思います。この概念を本当に必要とする言語はほとんどありません。ただし、顕著な例は C/C++ です。次のリリースでは、そのトピックについて検討したいと考えています。
そして、それはXtextのドキュメントでも強化されています:
Xtextとは何ですか?小さなテキストのドメイン固有言語 (DSL) を作成したい場合でも、本格的な汎用プログラミング言語を実装したい場合でも構いません。Xtext を使用すると、独自の言語を簡単に作成できます。また、既に既存の言語を持っていても適切なツール サポートが不足している場合、Xtext を使用して、最新の Java IDE で知られている編集エクスペリエンスを驚くほど短時間で提供する洗練された Eclipse ベースの開発環境を作成できます。Xtext を言語開発フレームワークと呼びます。
Xtext が過去の制限を取り除いたのなら、最もよく知られているプログラミング言語 (Java、C# など) の複雑な Xtext 文法をまだ見つけられないのはなぜですか?
ANTLR の Web サイトでは、そのような文法の例をたくさん見つけることができます。代わりに、Xtext に関係するものについては、ドキュメントで報告されているものだけを見つけることができました。では、Xtext は汎用プログラミング言語の実装に使用するにはまだ成熟していないのでしょうか? 私はこれについて少し心配しています...私はXtextで文法を書き直して、それがそれに適していないことを認識しませんでした.