DSL / Transformer Generation


DSL

タイトル : Transformer Generation

一言要約

変換機生成(Transformer Generation)とは、入力モデルを走査し、コードを出力することである。

要約

  • 変換機の作業とは「セマンティックモデル」を受け取り、「ターゲット環境のソースコード」を出力することである。
  • その方法には、大きく出力駆動(output driven)と入力駆動(input driven)に分けられる。
    • 出力駆動の例
      renderHeader();
      renderBody();
      renderFooter();
    • 入力駆動の例 foreach (prod in products) {
       renderName(prod);
       foreach (photo in prod.photos) {
      	  renderPhoto(photo);
       }
      }
  • この二つの駆動方法を組み合わせて使用することもある。
  • 単純な場合は、単一ステップで出力コードを生成するが、複数ステップに分ける場合がある。
    • 2ステップ変換
      • 最初のステップ:入力モデルを走査し、出力モデルを作る。
      • 2番目のステップ:出力モデルに従い、ターゲットソースコードを生成する。
    • 複数ステップ変換
      • 変換が複雑な場合に使用する。
      • 複数の出力が必要な場合に使用する。

実際の変換機の例は、Google Translator を見てください。

ファウラーへのフィードバック

(特になし)

担当者のつぶやき

  • サンプルが、あまりに自明すぎな感じがするなぁ。
  • もっと、複数ステップや出力モデルが必要な例があると、それが必要なときが実感できそうに思う。

みんなの突っ込み