MPS 2019.1ヘルプ

用語集

MPS用語集

抽象構文ツリー( AST)

ノードの階層を記述するツリーフォレストの形をしたメモリ(およびディスク)内のコードの論理表現。これらのノードは、親子関係という概念を持ちます。さらに、2つのノードは、階層構造を横断する明示的な参照によって相互に接続できます。

BaseLanguage

Java 6の投影クローン(Java 7および8のオプションの拡張子を持つ)。これは、Java仕様に準拠し、Java 6と1:1の互換性があります。さらに、MPSは、日付コレクションクロージャなど、BaseLanguageに対するいくつかの便利な拡張機能を提供します。

コード生成

あるモデル(AST)から別のモデルへの変換コードのプロセス。例:一連のビジネスルールを記述するコードは、javacでコンパイルしてエンタープライズアプリケーションの一部として実行できるように、プレーンなJavaに変換できます。
MPSでのコード生成には2つのフェーズがあります。最初の一連のモデル間変換は、基本概念の最終的な概念に達するまで、プログラムのASTで使用される概念を徐々に減らします。次に、テキスト生成フェーズでASTをテキストファイルに変換します。

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など)を使用して「名前空間」を表現するルートノードの文字列プロパティー。モデル内のルートノードを論理的にグループ化できます。

最終更新日: 2019年4月12日