言語ワークベンチは見た感じかなり違うように見えるが、それらが共有する共通の要素がある。
言語ワークベンチはシステムの中核としてセマンティックモデルを使用する。
結果として、モデルを定義する助けとなるツールを提供する。
プログラミング言語でセマンティックモデルを定義する代わりに、モデルに取り掛かるのにラインタイムツールを使うのを可能にする特別なメタモデリング構造の中で定義する。
この結果として、スキーマとふるまいの分離がある。
セマンティックモデルスキーマは本質的にたいしてふるまいのないデータモデルである。
セマンティックモデルのふるまいの様相はデータ構造の外部から、主としてコード生成の形式でくる。
これまでのところコード生成はセマンティックモデルを実行させる最も人気のある方法である。
言語ワークベンチのもっとも面白く重要な様相の一つが編集環境である
。
これはおそらくセマンティックモデルをポピュレートし操作するツールの、ずっとよりリッチな範囲を提供しているソフトウェア開発の重要な様相である。
テキスト編集に近いものから、図形としてDSLスクリプトを書くことを提供するグラフィカルな編集へ、さらに通常のプログラミング言語よりスプレッドシートで作業するのに近い経験を提供する「実例プログラミング」とファウラーが呼ぶものを使う環境へ変動する。
ツールの新しさと不安定さの問題を提起するだろうが、いくらかの永続的な関連を持つであろうと感じる2つの一般原則、スキーマ定義とプロジェクショナル編集がある。(意味不明)
相変わらず個人的には翻訳しづらい英語で。。。