用語集
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つのステートメントリストが含まれます。 |
制約 | 概念、それらの特性および関係に対する追加の制限を保持する言語の側面。 |
振る舞い | 言語設計者が言語概念の動作を定義できるようにします。 |
エディター | 個々の言語概念の視覚化定義を保持しています。画面上での概念の表示方法および編集方法はカスタマイズできるため、エディターはユーザーが言語と対話する方法を指定します。 |
スコープ | 表示され、プログラム内の特定の位置に適用可能な一連の要素。通常、特定の種類のすべての要素のサブセットのみが、特定のプログラムの場所で使用できます。 |
型システム | プログラム内の概念の種類を検証および推論する一連の規則。 |
アクション | コードへの変更を実行する可能性があるユーザー起動コマンド。アクションはキーボードショートカットまたはメニュー項目に添付することができます。 |
インテンション・アクション | Alt + Enterキーショートカットによって引き起こされる小さなポップアップウィンドウを通して言語ユーザーに提供される状況依存のアクション。これらのアクションは通常、キャレットのコードまたは選択したコードブロックに対して比較的ローカルなリファクタリングを実行します。 |
インテンションアクションで囲む | インテンションは、別の概念によってブロックをラップする選択されたコードブロックに適用できます: 例: Try-Catchで囲む |
リファクタリング | ユーザー操作によって引き起こされるコード構造の潜在的に実質的な自動化された変更。 |
仮想フォルダー | ドット表記(a.b.cなど)を使用して「名前空間」を表現するルートノードの文字列プロパティー。モデル内のルートノードを論理的にグループ化できます。 |
関連ページ:

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

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