8

DSL を定義する必要があるプロジェクトに取り組んでいます。私のプロジェクトにとって適切な DSL を考え出すことは非常に重要であるため、DSL の定義、解析、およびコード生成 (.NET ベースの言語でなければならない) に役立つ既存のフレームワークを評価することにしました。検討したフレームワークは次のとおりです。

  1. DSL を定義するのに理想的な、カスタマイズ可能なコンパイラと pythonish 構文を備えた Boo 言語。
  2. 拡張可能なコマンドレットをサポートする Windows PowerShell。
  3. ビジュアル モデリングをサポートする Microsoft DSL ツールですが、柔軟性は低くなります (私の意見では)。
  4. 実績のあるツールであるANTLR
  5. C# 流暢なインターフェイス (これにはあまり満足していません)
  6. Oslo フレームワーク (本番環境で使用するには成熟していますか?)

上記のフレームワークにはそれぞれ長所と短所があり、私は決定を下すことができません.上記のフレームワークから選択する場合、どれを選択しますか?

私が見逃したかもしれないほど基本的なフレームワークは他にありますか?

ヘルプやガイダンスをいただければ幸いです。

4

5 に答える 5

3

Xtext: http://www.eclipse.org/Xtext/

于 2010-09-10T12:29:22.750 に答える
1

外部 DSL の実装を計画している場合、Spoofax ( http://strategoxt.org/Spoofax ) はこれを行うための優れた言語ワークベンチです。これは、SDF 、Stratego などのいくつかの最先端技術を活用する、パーサー ベースのテキスト言語ワークベンチです。DSL の実装に加えて、コード補完、アウトライン ビュー、インテリセンスなどの非常に豊富なエディター サービスを利用できます。

素敵なサンプル DSL 実装と Java へのコード生成が付属しています。ツールを使い始めるための出発点としても機能する場合があります。

この言語ワークベンチの使用法に関するチュートリアルの詳細: http://strategoxt.org/Spoofax/Tour

それが役に立てば幸い!

編集 -1 :

以下は、この言語ワークベンチを使用して実装された言語の例です: http://mobl-lang.org/

于 2010-11-25T17:27:21.983 に答える
1

DSL の主題に触れた私の質問では、 IronyDLRを組み合わせて使用​​するよう提案されました。しかし、それらが安定しているかどうかはわかりません。Irony はアルファ版であり、DLR は安定していますが、まだ v0.9 です。私は 1 週間か 2 週間以内に自分で Irony を使い始めることを目指しているので、フィードバックを提供できるようになるでしょう。ただし、明るい面としては、どちらもオープンソースであるため、自分でバグを修正できます.

于 2009-05-21T08:49:06.797 に答える
0

Jetbrains には、言語開発を支援するビジュアル ツールがあります。名前は忘れましたが、フロント ページに掲載されています。無料で部分的にオープンソースだと思います。

于 2009-09-08T22:30:49.857 に答える
0

DMS Software Reengineering Toolkitは、DSL を含む任意の言語を定義し、定義された言語のパーサー、アナライザー、およびコード ジェネレーターの構築を自動化するためのツールの統合セットです。

于 2010-02-06T19:49:42.017 に答える