| 開発者 | ジェットブレインズ |
|---|---|
| 安定版リリース | 2022.2 [1](2022年11月1日)
|
| リポジトリ |
|
| オペレーティング·システム | クロスプラットフォーム |
| ライセンス | Apacheソフトウェアライセンス2.0 [2] |
| Webサイト | ジェットブレインズ |
JetBrains MPS (Meta Programming System) は、JetBrainsが開発した言語ワークベンチです。MPS はドメイン固有言語(DSL)を設計するためのツールです。投影編集を使用して、ユーザーは言語パーサーの限界を克服し、表や図などの DSL エディターを構築できます。[3]言語指向プログラミング
をサポートしています[要出典] 。MPS は、言語定義、言語ワークベンチ、およびそのような言語の統合開発環境(IDE)のための環境です。 [4] [5] [6]
構成可能な言語
ドメイン固有言語拡張は、汎用プログラミング言語で役立つことが多いですが、テキストベースの性質上、ドメイン固有言語拡張を追加すると、テキストベースの構文に曖昧さが生じる可能性があります。MPS は、抽象構文ツリーを直接操作することで、この文法上の曖昧さを回避します。このツリーを編集するには、テキストのような投影エディターを使用します。
MPSは抽象構文木を直接使用するため、構成可能な言語定義をサポートします。つまり、言語を拡張したり埋め込んだりすることができ、これらの拡張機能はMPSの同じプログラムで使用でき、競合することはありません。[7] [8]
再利用可能な言語インフラストラクチャ
MPS は、言語定義言語で構成された再利用可能な言語インフラストラクチャを提供します。また、MPS は、エディター、コード補完、使用箇所の検索など、 多くの IDE サービスを自動的に提供します。
既存の言語
- ベース言語- 99% Java をMPS で再実装。この言語には多くの拡張機能があります。
- コレクション言語
- 日付 言語
- クロージャ言語
- 正規表現言語
- 言語定義言語- これらの言語はそれ自体で実装されており、つまりブートストラップされている。
MPSアプリケーション
ムベドル
mbeddrはMPSをベースにした組み込み開発システムです。組み込み開発に適した言語と形式手法を備えています。[9]
- コアC言語
- コンポーネント
- 物理単位
- ステートマシン
ユートラック
2009年10月、JetBrainsはMPSで開発された最初の商用ソフトウェア製品であるYouTrackバグ追跡システムをリリースしました。 [10]
Realaxy エディター
2010 年 4 月、MPS プラットフォームに基づく最初の商用 IDE である Realaxy ActionScript Editor ベータ版がリリースされました。
ピープル
PEoPLはMPSで実現されたソフトウェア製品ラインエンジニアリングのためのツールです。[11]
GDF (ゲーミフィケーション デザイン フレームワーク)
GDFはゲームアプリケーションを設計および展開するためのフレームワークです。GDFはドメイン固有言語で構成されており、高レベルの抽象化からゲーミフィケーションエンジンで実行される実装コードまで、アプリケーション定義を段階的に改良することができます。[12]
JetbrainsのGDFのケーススタディ[13]によると、MPSが選ばれた主な理由は3つあります。テキストベースのDSLを提供する必要性、抽象化レイヤー間の一貫性管理を伝える言語拡張メカニズムの利用可能性、実装コードを自動的に導出するジェネレーターの提供です。
ライセンス
MPS ソースコードはApache Licenseに基づいてリリースされています。
参照
参考文献
- ^ 参考URL: https://blog.jetbrains.com/mps/2022/11/mps-2022-2-is-now-available/
- ^ 参照 URL: https://confluence.jetbrains.com/display/MPSD20183/FAQ#FAQ-HowisMPSlicensed、取得日: 2019 年 2 月 19 日
- ^ 「MPS とは何か?」
独自の DSL を設計する
- ^ Martin Fowler. 「言語ワークベンチ: ドメイン固有言語のキラーアプリ?」
- ^ Martin Fowler. 「IntentionalSoftware」。
- ^ Fabien Campagne (2014)。「MPS 言語ワークベンチ: 第 1 巻」
- ^ スリニ・ペンチカラ。 「JetBrains メタ プログラミング システムは言語指向プログラミングと DSL をサポートします」。
- ^ 「言語指向プログラミング: 次世代プログラミングパラダイム」。2010 年 1 月 30 日時点のオリジナルよりアーカイブ。
- ^ 「mbeddr公式サイト」2010年6月9日。
- ^ Charles Humble (2009-10-15). 「言語を変更せずに Java を進化させる」
- ^ 「PEoPL | 製品ラインの投影編集」peopl.de . 2017年6月19日閲覧。
- ^ Bucchiarone, Antonio; Cicchetti, Antonio; Marconi, Annapaola (2019 年 9 月)。「ゲームフルなシステムの設計と展開のためのマルチレベル モデリングの活用」。2019 ACM/IEEE 第 22 回モデル駆動型エンジニアリング言語およびシステム( MODELS) に関する国際会議。pp. 34–44。doi :10.1109/ MODELS.2019.00-17。ISBN 978-1-7281-2536-7. S2CID 208206029。
- ^ 「MPS と GDF のケーススタディ」(PDF)。
外部リンク
- 公式サイト
- MPSブログ
- MPS ユーザーズ ガイド 2013-01-15 にWayback Machineにアーカイブされました
