用語集
MPS 用語集
抽象構文ツリー (AST) | ノードの階層を記述するツリーフォレストの形をしたメモリ(およびディスク)内のコードの論理表現。これらのノードは、親子関係という概念を持ちます。さらに、2 つのノードは、階層構造を横断する明示的な参照によって相互に接続できます。 |
---|---|
BaseLanguage | Java 6 の投影クローン(Java 7 および 8 のオプションの拡張機能付き)。Java 仕様に準拠し、Java 6. と 1:1 の互換性があります。さらに、MPS は、日付、コレクション、クロージャなど、BaseLanguage に便利な拡張機能をいくつか提供します。 |
コード生成 | あるモデル(AST)から別のモデルへの変換コードのプロセス。例:一連のビジネスルールを記述するコードは、javac でコンパイルしてエンタープライズアプリケーションの一部として実行できるように、プレーンな Java に変換できます。 |
DevKit | ユーザーの便宜上グループ化されている関連言語のパッケージ。 |
ドメイン固有言語 (DSL) | 一般的な目的の言語と比較して単純さと表現力を高めることを目的として作成された、特定の問題領域専用の言語。 |
言語プラグイン | IntelliJ IDEA または MPS のいずれかの内部で言語を使用するために必要なすべての要素を含むパッケージ化されたライブラリ(zip ファイル)。 |
プロジェクションエディター | テキストエディターの動作をある程度模倣しながら、ユーザがコードの AST 表現を直接編集できるようにするエディター。ユーザーは画面上のテキストを見てそれを編集しますが、実際にはそのテキストは AST の錯覚(投影)にすぎません。 |
新規モジュール | MPS プロジェクトの最上位組織要素。通常は複数のモデルをグループ化します。ソリューション、言語、生成プログラム、DevKit の 4 つの基本タイプがあり、他のモジュールに依存する可能性があります。 |
モデル | 1 つ以上のルートノードにユーザーコードを保持する低レベルの組織要素。モデルは他のモデルに依存している可能性があり、モデルに保持されているコードを実装するために使用される言語も宣言しています。 |
ノード | AST の基本的な構成要素各ノードは、文字列、整数、またはブール値のプロパティを保持し、モデルの階層構造に参加します。 |
ルートノード | 親ノードを持たず、代わりにモデルに直接含まれるノード。 |
ランタイムソリューション | 言語によって必要とされるソリューション。ライブラリとも呼ばれます。ランタイムソリューションには、MPS の外部にある Java ソース、クラス、または jar ファイルのスタブだけでなく、通常のモデルも含まれる場合があります。 |
構造 | 言語で使用できるすべてのタイプ(概念)の AST ノードをそれらの関係と共に定義する言語アスペクト。 |
コンセプト | 構文要素の抽象構造を記述する定義。たとえば、IfStatement の概念では、if にはブール値の式と最大 2 つの StatementLists が含まれます。 |
制約 | 概念、それらの特性および関係に対する追加の制限を保持する言語の側面。 |
振る舞い | 言語設計者が言語概念の動作を定義できるようにします。 |
エディター | 個々の言語概念の視覚化定義を保持しています。画面上での概念の表示方法および編集方法はカスタマイズできるため、エディターはユーザーが言語と対話する方法を指定します。 |
スコープ | 表示され、プログラム内の特定の位置に適用可能な一連の要素。通常、特定の種類のすべての要素のサブセットのみが、特定のプログラムの場所で使用できます。 |
型システム | プログラム内の概念の種類を検証および推論する一連の規則。 |
アクション | コードへの変更を実行する可能性があるユーザー起動コマンド。アクションはキーボードショートカットまたはメニュー項目に添付することができます。 |
インテンションアクション | Alt+Enter キーショートカットによってトリガーされる小さなポップアップウィンドウを通じて言語ユーザーに提供される状況依存アクション。これらのアクションは通常、carret のコードまたは選択したコードブロックに対して比較的ローカルなリファクタリングを実行します。 |
インテンションアクションで囲む | インテンションは、別の概念によってブロックをラップする選択されたコードブロックに適用できます。例: Try-Catch で囲む |
リファクタリング | ユーザー操作によって引き起こされるコード構造の潜在的に実質的な自動化された変更。 |
仮想フォルダー | ドット表記(a.b.c など)を使用して「名前空間」を表現するルートノードの文字列プロパティ。モデル内のルートノードを論理的にグループ化できます。 |
関連ページ:

MPS プロジェクト構造
言語を設計したりコードを書いたりするときには、優れた構造を使用して各部分を移動したり、組み合わせたりすることができます。MPS はこの点で他の IDE と似ています。プロジェクト :プロジェクトは MPS の主な組織単位です。プロジェクトは 1 つ以上のモジュールで構成されており、それら自体がモデル...

IDE の設定
設定 / 環境設定ダイアログ を介して、MPS の多くの側面を構成できます。特定の構成アイテムにすばやく移動するには、左上の便利なテキスト検索ボックスを使用できます。フォーカスはデフォルトでテキストフィールドに設定されているため、入力を開始できます。検索が個々の画面に深く入り込んでいることに注意して...