AIにとっては、Pythonのような中間表現を生成させる方が得意であると考えられます。
中間表現(Pythonなど): 人間が理解しやすいように設計されており、抽象度が高いです。AIは、より少ないトークンで複雑なロジックを表現でき、学習データも豊富にあるため、意味的な整合性やロジックの正確性を保ちやすいです。
機械語: 抽象度が非常に低い(CPUの命令レベル)です。特定のCPUアーキテクチャに依存し、メモリ管理やレジスタ割り当てといった低レベルの詳細をすべて正しく処理する必要があります。これはAIにとって学習が複雑で、小さなミスがプログラム全体の破損につながりやすくなります。
中間表現: 比較的長いコンテキストを保持しやすく、デバッグやエラーの特定も高レベルで行えます。
機械語: 必要な命令数が多くなりがちで、AIが長大なバイナリシーケンスを生成する際に、コンテキストウィンドウ内に必要な情報すべてを保持しきることが難しくなる可能性があります。また、中間表現と比べて意味的な構造が薄いため、AIがバグのないコードを生成するのが格段に困難になります。
中間表現: Pythonのような高級言語は、特定のハードウェアに依存しないため、移植性が高いです。
機械語: 特定のアーキテクチャ(例: x86, ARM)に完全に依存するため、AIが異なる環境向けにコードを生成する場合、それぞれのアーキテクチャごとに学習と生成を行う必要があり、汎用性が低くなります。
現在のAI(特に大規模言語モデル)の能力は、人間が扱う高レベルの抽象的な概念やロジックの理解に優れているため、その能力を最大限に活かせる中間表現の生成の方が得意です。
機械語の生成は、極めて精密で低レベルな制御が要求されるため、AIにとってはるかに難易度が高いタスクとなります。
AIが中間表現を生成した場合でも、その後の処理(コンパイルやJITコンパイル)によって最適化され、最終的な機械語が生成されます。
これは従来のコンパイラ設計と同じアプローチであり、AIは「何をすべきか」という高レベルの指示に集中し、コンパイラが「どのように効率的に実行するか」という低レベルの処理を担当する、役割分担の面でも合理的です。
動くもの直接出してもらった方がよっぽどよくない? 何でいちいちコードを書いてもらうんだろう
AIにとっては、Pythonのような中間表現を生成させる方が得意であると考えられます。 1. 抽象度の高さと学習の容易さ 中間表現(Pythonなど): 人間が理解しやすいように設計されており、...
理想の動きになるまでガチャするようなことをソフトウェアでやるのは大変なのでは ある程度近いものができたら細かいところを自分で修正するほうが早い プログラマにとっては
動くものを直接?コンパイル語のバイナリってことかよ😂ご冗談をw馬鹿の発想ですねw
なんで?
高級言語という抽象化によってコード数も減り、表現も簡単になっているから つまりバイナリを直接扱うというのはむしろAIの生成能力を後退させるというのがはっきりわかる
いつかはそうなるかもね 仕様指示用のプロンプトがどう発展していくんだろうね 超高級プログラミング言語とかね
AIを信用してないから、ストレージへの書き込み権限を与えることに躊躇してる感ある