Loading article…
言語ワークベンチ[1] [2]は、言語指向プログラミング[2]ソフトウェア開発パラダイムでのソフトウェア開発を可能にするツールまたはツールセットです。言語ワークベンチには通常、ドメイン固有言語の定義、再利用、構成をサポートするツールと、それらの統合開発環境が含まれます。言語ワークベンチは、2005年にマーティン・ファウラーによって導入され、普及しました。
言語ワークベンチは通常以下をサポートしています: [1]
例
- Racketは、コンパイラ、JITコンパイラ、IDE、コマンドラインツールを含むクロスプラットフォーム言語開発ワークベンチであり、新しい表記法の追加、構造の制約、IDEツールの作成などの機能を備えたドメイン固有言語とまったく新しい言語の両方の作成に対応するように設計されています。[3] [4] [5]
- JetBrains MPSはドメイン固有言語を設計するためのツールです。投影編集を使用して言語パーサーの限界を克服し、表や図などのDSLエディターを構築します。言語指向プログラミングを実装します。MPSは、言語定義環境、言語ワークベンチ、およびそのような言語用の統合開発環境(IDE)を組み合わせています。[6]
- Kermeta はオープンソースの学術言語ワークベンチです。Kermeta ワークベンチは 3 つの異なるメタ言語を使用します。1 つは抽象構文用のメタ言語 ( Emofに準拠)、もう 1 つは静的セマンティクス用のメタ言語 ( OCLに準拠)、もう 1 つは動作セマンティクス用のメタ言語 (Kermeta 言語自体と呼ばれます) です。
- Melangeは、複数のドメイン固有言語(DSL)仕様と実装をカスタマイズ、組み立て、統合するためのモジュール式アプローチを提供する言語ワークベンチです。[7]
- Spoofax [8]は、パーサー、型チェッカー、コンパイラ、インタープリター、 EclipseおよびIntelliJ用のIDEプラグインを生成するオープンソースの言語ワークベンチです。[9]構文にはSDFとスキャナーレス GLRパーサーを使用し、セマンティクスにはStratego/XTから派生した形式主義を使用します。
- Xtext は、プログラミング言語やドメイン固有言語 (DSL) を開発するためのオープンソースのソフトウェア フレームワークです。標準的なパーサー ジェネレーターとは異なり、Xtext はパーサーだけでなく、抽象構文木のクラス モデルも生成します。さらに、フル機能のカスタマイズ可能な Eclipse ベースの IDE も提供します。[10]
- Meeduse [11]は、 Bメソッドを使用して実行可能なドメイン固有言語(xDSL)を構築、証明、アニメーション化できるEMFベースのフレームワークです。このツールにはProB、Bメソッドのアニメーター、モデルチェッカーが組み込まれています。[12]
参照
- 言語指向プログラミング
- コンパイラーコンパイラー
- 意図的なプログラミング
- カテゴリ:言語ワークベンチ
参考文献
- ^ ab Fowler, Martin. 「LanguageWorkbench」 . 2015年4月14日閲覧。
- ^ ab Fowler, Martin (2005 年 6 月 12 日). 「言語ワークベンチ: ドメイン固有言語のキラーアプリ?」2015 年4 月 14 日閲覧。
- ^ フェルティ、ダニエル; フローレンス、スペンサー P.; ナットソン、ティム; セントアムール、ヴィンセント; カルペッパー、ライアン; フラット、マシュー; フィンドラー、ロバート ブルース; フェライゼン、マティアス (2016)。「ラケット方式の言語」(PDF) 。2016 Language Workbench Challenge (65) 。2019年6月9日閲覧。
- ^ Tobin-Hochstadt, S.; St-Amour, V.; Culpepper, R.; Flatt, M.; Felleisen, M. (2011). 「ライブラリとしての言語」(PDF) .プログラミング言語の設計と実装.
- ^ Flatt, Matthew (2012). 「Racket での言語の作成」Communications of the ACM . 2012-04-08閲覧。
- ^ 「JetBrains MPS: ドメイン固有言語クリエーター」。
- ^ 「メランジュ」。
- ^ 「Spoofax 言語ワークベンチ」。
- ^ Kats, Lennart CL; Visser, Eelco (2010)。「Spoofax 言語ワークベンチ: 言語と IDE の宣言的仕様のルール」。第 25 回 ACM SIGPLAN オブジェクト指向プログラミング、システム、言語、アプリケーションに関する年次会議、OOPSLA 2010 の議事録。doi : 10.1145 /1869459.1869497。
- ^ 「Xtext」.
- ^ Idani, Akram; Ledru, Yves ; Vega, German (2020年12月). 「モデル駆動型エンジニアリングと証明ベースの形式的アプローチの連携」。Innovations in Systems and Software Engineering (ISSE)、NASA Journal。6 ( 3): 289–307. doi : 10.1007/s11334-020-00366-3。
- ^ 「ミードゥース」.
外部リンク
- マーティン・ファウラー、言語ワークベンチ
- 言語ワークベンチチャレンジ
