JetBrains MPS
この項目「JetBrains MPS」は翻訳されたばかりのものです。不自然あるいは曖昧な表現などが含まれる可能性があり、このままでは読みづらいかもしれません。(原文:英語版08:45, 20 March 2013(UTC)) 修正、加筆に協力し、現在の表現をより自然な表現にして下さる方を求めています。ノートページや履歴も参照してください。(2013年4月) |
開発元 | JetBrains |
---|---|
最新版 |
2022.2[1] (2022年11月1日)
|
リポジトリ | |
対応OS | クロスプラットフォーム |
ライセンス | オープンソース Apache License 2.0 |
公式サイト |
www |
JetBrains MPSとはJetBrainsが開発しているメタプログラミングシステムで言語指向プログラミングを実装する。対応言語向けの言語ワークベンチ、統合開発環境といった言語定義に対応した開発環境になっている[2][3]。
構成可能言語
[編集]異なるドメインを持つ開発者は汎用プログラミング言語においてドメイン固有の言語拡張をしようすることができる。例として、Java使用開発者が金融アプリケーションで作業する時、金額の組み込みサポートが受けられる。しかし、従来のテキスト型言語ではこのような拡張が逆にテキストの曖昧性という問題を起こす。
MPSは構成可能な言語定義に対応しており、言語は拡張、埋め込みができ、これらの拡張の使用も可能でMPSにおいて同じプログラムで動作できる。例として、もしJavaがコレクションのより良い構文で拡張され後に、日付のより良い構文で再拡張されたら、これらの拡張は共に良い状態で動作する。
またMPSは抽象構文木を直接使用することで文法の曖昧さ問題を解決する。このような木を編集するために、テキストライクの構造エディタを使用する[4][5]。
再利用可能言語インフラストラクチャ
[編集]MPSは言語定義言語再利用可能を設定している言語インフラストラクチャを提供する。また、多くのエディタ、コード補完、使用法検索などのIDEサービスを自動的に提供している。
既存言語
[編集]- 基本言語 - MPSで再実装されたJavaが99%で、この言語にはたくさんの拡張がある。
- コレクション言語
- 日付言語
- クロージャ言語
- 正規表現言語
- 言語定義言語 - これらの言語はブートストラップなどで実装されている。
- 構造言語
- エディタ言語
- 制約言語
- タイプシステム言語
- ジェネレーター言語
MPSを使ったソフトウェア開発
[編集]2009年10月、JetBrainsはMPSを使って開発した初の商用ソフトウェア製品としてバグ追跡システムのYouTrackをリリースした[6]。
2010年4月、MPSのプラットフォームのIDEをベースにした初の商用ソフトウェアであるRealaxy ActionScript Editorのベータ版がリリースされた。
ライセンス
[編集]MPSのソースコードはApache Licenseの下で公開されている。
脚注
[編集]- ^ 出典URL: https://blog.jetbrains.com/mps/2022/11/mps-2022-2-is-now-available/
- ^ Martin Fowler, Language Workbenches: The Killer-App for Domain Specific Languages?
- ^ Martin Fowler, IntentionalSoftware
- ^ Srini Penchikala, JetBrains Meta Programming System Supports Language Oriented Programming and DSLs
- ^ Sergey Dmitriev, Language Oriented Programming: The Next Programming Paradigm
- ^ Charles Humble (2009-10-15), Evolving Java Without Changing the Language