2016-11-03 5 views
0

私は過去に小さなプロジェクト(ラボプロジェクトなど)でMPSを使用していましたので、MPSの使用方法について基本的な理解があります同様)。今私は、MPS機能の上に構築されたユーティリティソフトウェア(理想的には、IntelliJ用のプラグイン)を導入しようとしています。 MPSは広く使われているわけではないので、ここで経験豊富な人と相談したいと思います。MPS:abstract(generatorless?)言語とその実装

私がしたいことは、リレーショナルナレッジデータベースアクセス(SQLクエリ)をMPSベースのプラグインにラップすることです。すばやく既存のjdbc-wrappingライブラリのコードを生成できるようにしたいと思います。将来は、db固有の機能を追加して実装に切り替えることができます。同時に、私は新しい言語に簡単に切り替えることができるように既存のユーザーモデルを保存し、この新しい言語が何か問題があれば後退したいと考えています。この簡単なスイッチ機能はどのように実現できますか?私の最初のアイデアはジェネレータなしで抽象的な言語を使用し、依存関係(1つまたは別のもの)としてIdeaのmpsベースモジュールに実装言語を追加することでしたが、これが簡単に可能かどうかはわかりません。

答えて

1

私はあなたを正しく理解していれば、これは簡単に可能でなければなりません。ジェネレーターなしで言語を作成する必要はありませんが、ジェネレーターとすべてで言語を設計できます。次に、すでに定義されている構文に加えてユーザーが使用できる新しい構文を単純に追加したい場合は、この言語をdb特有の機能用のより具体的な言語で拡張することができます(複数の専門用語言語)。 同じ言語を引き続き使用して更新したい場合は、MPSには移行スクリプトが用意されています。このスクリプトでは、古いバージョンの言語で構築された既存のモデルを新しいバージョンにアップグレードする方法を指定できます。 MPSでIdeaプラグインを作成する際の出発点については、https://confluence.jetbrains.com/display/MPSD30/Using+MPS+inside+IntelliJ+IDEAを参照してください。

関連する問題