自動プログラミング
NConstruct - .NET Framework 環境での開発ツール。C# ソースコードを生成する。
MyGeneration - .NET Framework 向けソースコード生成器。ORMアーキテクチャ向けのコードを生成する。データベースのメタデータを MyMeta API を使ってテンプレート化する。
自動プログラミングはコンピュータプログラムの歴史と共にある。より高いプログラミング効率を求めて、より高水準の自動化が長い間推し進められている。
現在のところ、人の指示なしにプログラムを自動生成する技術は実用化されていない。すなわち現在の自動プログラミングは全自動プログラム生成ではなく、抽象度の高いソースコードを基にしたコード生成・変換および記述の省力化と同義である。
以下は自動プログラミングの例である。
紙テープへのコードパンチング自動化(現代でいうタイピングが当時のパンチング。両方ともコードを「打ち込む」)
コード変換 プログラミング言語から機械語へのコンパイル自動化(c.f. ハンドアセンブル。詳しくはアセンブリ言語) プログラミング言語から中間言語(中間表現)へのコンパイル自動化(例:Java→Javaバイトコード、C#→CIL) プログラミング言語からプログラミング言語へのコンパイル自動化 より高水準な言語からのコンパイル(TypeScript→JavaScript ES6→JavaScript ES5)
ソースコード生成 スキーマ定義言語で書かれたスキーマからプログラミング言語で書かれたclientコードの生成 スキーマ定義言語で書かれたスキーマからプログラミング言語で書かれたserverスタブの生成 スキーマ定義言語で書かれたスキーマからDSLで書かれたバックエンドプロビジョニングコード (Infrastructure as Code) の生成、それによるプロビジョニング テンプレートと変数セットからのコード生成(テンプレートエンジン)