自動プログラミング 自動プログラミングの概要

自動プログラミング

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/11/30 18:33 UTC 版)

概要

自動プログラミングという用語に関しては、これまでその意味がさまざまに変化してきたため、定義について明確な合意が得られているとは言い難い。例えば、デイビッド・パーナスが公開されている研究成果から「自動プログラミング」の歴史を調査したところ、1940年代では、紙テープのパンチ処理を自動化することを意味していたとされる。その後、FORTRANALGOLといった高水準言語で書かれたプログラムの変換を指すようになった。実際、初期のコンパイラには Autocode と名づけられたものがあった。パーナスは、「自動プログラミングとは、いつの時代もその当時のプログラマが使える言語より高水準の言語でプログラミングすることを意味する婉曲表現だった」と結論付けた[2]

自動プログラミングはコンピュータプログラムの歴史と共にある。より高いプログラミング効率を求めて、より高水準の自動化が長い間推し進められている。

現在のところ、人の指示なしにプログラムを自動生成する技術は実用化されていない。すなわち現在の自動プログラミングは全自動プログラム生成ではなく、抽象度の高いソースコードを基にしたコード生成・変換および記述の省力化と同義である。

以下は自動プログラミングの例である。

  • 紙テープへのコードパンチング自動化(現代でいうタイピングが当時のパンチング。両方ともコードを「打ち込む」)
  • コード変換
  • ソースコード生成
    • スキーマ定義言語で書かれたスキーマからプログラミング言語で書かれたclientコードの生成
    • スキーマ定義言語で書かれたスキーマからプログラミング言語で書かれたserverスタブの生成
    • スキーマ定義言語で書かれたスキーマからDSLで書かれたバックエンドプロビジョニングコード (Infrastructure as Code) の生成、それによるプロビジョニング
    • テンプレートと変数セットからのコード生成(テンプレートエンジン)

生成的プログラミング

生成的プログラミング: Generative programming)とは、ジェネリッククラスプロトタイプベーステンプレートアスペクトコード生成などの技法を使ってソースコード作成を自動化し、プログラマの生産性を向上させるプログラミングのスタイルである。ソフトウェアコンポーネントなどのコード再利用の技法とも連携して使用される。

ソースコード生成

ソースコード生成: Source code generation)とは、テンプレートなどのオントロジー的モデルを使ってソースコードを生成することであり、テンプレートエンジン統合開発環境(IDE)などのプログラミングツールを使って行われる。これらのツールは、様々なソースコード生成手段を提供する。ソースコード生成器の単純な例としてマクロプロセッサ(例えば、C言語のプリプロセッサ)があり、ソースコード上のパターンを比較的単純な規則に従って置換する。

Microsoft Visual Studio などの IDE はさらに進んだソースコード生成を行う。プログラマは、ソースコードの「スニペット(snippet、断片)」と呼ばれるものを対話的に選択しカスタマイズできる。プログラム「ウィザード」もソースコード生成の典型的な形態であり、プログラマは対話的にグラフィカルユーザインタフェースを設計し、その結果を自動的に反映したソースコードが生成される。Windows Formsではフォームデザイナーを使って視覚的にGUI部品を配置したり、プロパティを設定したりすると、対応するC#やVB.NETによるプログラムコードが自動生成される。

3次元コンピュータグラフィックスの統合ソフトウェアやグラフィックスエンジンの中には、直感的な操作によって各種視覚効果のノードをつなぎ組み合わせることで、リアルタイムまたは非リアルタイムのシェーダープログラムを自動生成する、「ノードエディター」と呼ばれるオーサリングツールを備えているものもある。

実装例

  • NConstruct - .NET Framework 環境での開発ツール。C# ソースコードを生成する。
  • MyGeneration - .NET Framework 向けソースコード生成器。ORMアーキテクチャ向けのコードを生成する。データベースのメタデータを MyMeta API を使ってテンプレート化する。

  1. ^ Ricardo Aler Mur, "Automatic Inductive Programming", ICML 2006 Tutorial. June 2006.
  2. ^ D. L. Parnas. "Software Aspects of Strategic Defense Systems." American Scientist. November 1985.
  3. ^ Generated Code Makes Overconfident Programmers, China's Autonomous Drone Carrier and more” (英語). Generated Code Makes Overconfident Programmers, China's Autonomous Drone Carrier and more (2023年1月18日). 2023年11月30日閲覧。


「自動プログラミング」の続きの解説一覧




自動プログラミングと同じ種類の言葉


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「自動プログラミング」の関連用語

自動プログラミングのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



自動プログラミングのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアの自動プログラミング (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2024 GRAS Group, Inc.RSS