人工知能と同様に、これを達成した後は、それを実行するプログラムを作成することになるため、これを答えるのは困難です。そして批評家は、「まあ、このマシンは実際にはプログラミング自体ではない!それはあなたが与えたプログラムに正確に従うだけだ!」と言うでしょう。
はい、そうです。私たちがコンピューターで達成することは何でも、プログラムを与えて実行します。それが反対の場合、何も達成できません。それでも、ある時点で、人々はチェスをするコンピューターは明らかにインテリジェントだと思っていました。今、彼らはできます、そして、私たちは正確にどのように知っています、そして、我々はそれが理性的であると思いません。潜水艦はまだ泳げません。
そのため、いくつかの例を考えてみましょう。
何十年も前から、パーサージェネレーターがありました。あなたは彼らに言語の説明を与え、それは処理され、結果はその言語のパーサーのコードになります。私たちはそれがどのように行われたかを正確に知っていますが、それはコンピュータプログラミングそのものではありませんか?
2番目-間違いを犯したことを通知するエディター(構文エラー、存在しない変数など)。それ自体は何もプログラムしませんが、あなたが何か間違ったことをしたことを教えてくれます。それは表面上のみです。
UIコントロールをクリックしてドラッグするだけで、実際にそれらを機能させるコードが自動的に生成される言語。
JITコンパイラ。現在実行中のソフトウェアのホットスポットを認識し、その一部を高度に最適化されたコンパイル済みコードに置き換え、実行中にそれ自体を効果的に最適化できるソフトウェア。これは、それがどのように起こるかを正確に知るまでは、マシンプログラミング自体のように見えるものの一例だと思います。
一般的なゲームプレイ。これは興味深い研究分野であり、研究者はゲームのルールの説明を読むことができるプログラムを作成し、そのプログラムが互いに対戦します。したがって、三目並べプログラムやチェスプログラムの代わりに、三目並べやチェスのルールを読み、その場で作られた新しいゲームをプレイしてからプレイすることができます。プログラム自体はプログラミングしていませんが、チェスのルールがハードコードされていない状態でチェスをプレイします。これは明らかに、コンピューター自体が何かを教えると見なされる時代がありました。
一般的な方向に多くの小さなステップを踏みました。
しかし、以前の実行の結果に基づいて自分自身を書き換えたり、独自のコード内の古いルーチンや非効率的なルーチンを認識できるプログラムは考えられません。いつかそれができると思うし、それは最新のコンパイラの一部の機能に過ぎないので、特別なことは何もないと考えます...