MPS 2020.3 ヘルプ

基本言語

BaseLanguage は、Java とほぼ同じ構造のセットを共有するため、Java に対応する MPS です。BaseLanguage は、MPS でのコード生成の最も一般的なターゲットであり、同時に最も広範囲に拡張された言語です。

Java との統合を簡素化するために、MPS のすべてのモジュールのクラスパスを指定することができます。クラスパスで見つかったクラスは、@java_stub モデルに自動的にインポートされるため、BaseLanguage を使用するプログラムで直接使用できます。

MPS の頻繁に拡張される概念は次のとおりです。

  • 。1、"abc" などのようないくつかの結果に評価される構成。

  • ステートメント。if/ while/ synchronized ステートメントのようなメソッドレベルに含めることができる構成要素。

  • 。int、double などの変数の型。

  • IOperationnode.parent のようにドットの後に配置できる構成。ここでは、 要素は IOperation です。

  • AbstractCreator。さまざまな要素をインスタンス化するために使用できる構成。

BaseLanguage は元々 Java 6 仕様を使用して作成されますが、リソースの試行、複数の例外のキャッチ、ローカル変数型の推論、新しい Java バージョンのデフォルトおよびプライベートインターフェースメソッドなどの機能が含まれるようになりました。これらの機能は BaseLanguage 自体の一部であるため、これらの機能を使用するために追加の言語インポートは必要ありません。特定の java 言語レベルを必要とするビルドプロセスとの互換性を提供するために、モジュールプロパティダイアログの Java タブで各ソリューションを構成して、必要な言語レベルと互換性のない言語機能を禁止できます。

Java compatibility

関連ページ:

MPS Java との互換性

構成:設定ウィンドウの Java コンパイラー設定タブにはプロジェクトのバイトコードバージョンという 1 つの設定しかありません。この設定は、MPS によってコンパイルされたすべての Java クラスのバイトコードバージョンを定義します。これらのクラスには、言語の側面から生成されたクラス、ランタイムソリューションのクラス、サンドボックスソリューションのクラスなどがあります。デフォルトでは、バイトコードのバージョンは JDK Default に設定されています。つまり、コンパイルされたクラスのバー...

軽量 DSL

MPS コア言語を何年にもわたって進化させてきたため、IDE 統合のための言語記述 DSL の繰り返しパターンを認識するようになりました。概念的には、それらは、いくつかの高レベルのインターフェースを実装するプレーンクラスによって表現される高レベルの構造のように見え、動作しました。言語指向プログラミングの良い伝統では、これらのパターンを言語に反映し、プレーンな BaseLanguage クラスの上に薄い抽象化として再実装することにしました。このような抽象化を可能にするために、新しい軽量 DSL 言語が作...

基本言語拡張スタイルガイド

基本言語は MPS の中ではるかに最も拡張された言語です。一般的な MPS プロジェクトでは、さまざまなソースや言語ベンダからのさまざまな拡張機能を使用する可能性が非常に高いため、コミュニティはすべての言語で統一されたスタイルを使用することでメリットを得ることができます。この文書では、作成者がすべての基本言語拡張に適用すべき規約について説明します。クイックリファレンス:. ドット [LeftBracket]RightBracket{LeftBrace}RightBrace= + - * / % +...