コンピューターのプログラミングはいつの時代にも難しい仕事だ。最初のコーダーたちは方眼紙にプログラムを手書きし、それを変換してコンピューターが処理できる大量のパンチカードの束を作っていた。穴の場所を1つ間違うだけで、全部の作業がやり直しになってしまうこともあった。
現代のコーダーたちは、タイピングエラーの検出からデプロイ前のテストまで、作業の多くを自動化してくれる強力なツールを多数利用している。しかし、そのことを除けばあまり大きな違いはない。たった1つのつまらないミスがソフトウェアを丸ごとクラッシュさせかねないことに変わりはないのだ。さらに、システムがより複雑になるにつれ、バグを見つけ出すのはますます難しくなっていく。「たった1つのバグの修正に、複数のコーダーのグループが何日もかけて取り組むこともあります」。インテルのマシン・プログラミング研究グループを率いるジャスティン・ゴットシュリッチ部長は話す。
したがって、いっそのこと機械に自分自身をプログラミングさせればいいと考えている人たちもいる。コードの自動生成はホットな研究課題として長年、注目を集めてきた。マイクロソフトは広く利用されているソフトウェア開発ツールに基礎的なコード生成機能を組み込んでいるし、フェイスブックは小規模プログラムを自動補完する「アロマ(Aroma)」というシステムを作った。ディープマインド(DeepMind)は人間が考案した簡易なアルゴリズムの高効率バージョンを案出できるニューラルネットワークを開発済みだ。オープンAI(OpenAI)の言語モデル「GPT-3」でさえ、自然言語によるプロンプト文から、Webページのレイアウトなどの単純なコードを大量生産できる。
ゴットシュリッチ部長らはコードの自動生成を「マシン・プログラミング」と呼ぶ。ゴットシュリッチ部長は、インテル、マサチューセッツ工科大学(MIT)、ジョージア工科大学から集まったメンバーで構成される研究チームと協力して、「マシン・インファード・コード・シミラリティ( …