自然言語プログラミングの愚かさに対する批判
- 自動計算機の黎明期から、形式的な記号体系を要求するプログラミング方式に不満を持つ人々が存在した
- 機械は与えられた命令をそのまま実行する「忠実な奴隷」として、明白な誤りもそのまま実行する
- 一部の人々は、機械が誤りを無視して実行する代わりに、より「理性的」なふるまいをすることを期待した
高級プログラミング言語の登場と発展
- 機械語は誤り検出や冗長性がほとんどなく、危険なインターフェースとして認識された
- これに伴って高級プログラミング言語が登場し、エラーメッセージによって誤った結果を防ぐ発展があった
- しかしそれでも、プログラミングは形式記号を要求し、依然として細心の正確さが必要である
自然言語でプログラミングしようという主張とそれへの反論
- 自然言語で機械を制御すれば利用者は楽になるという主張があった
- これは機械がより複雑になるにつれて、利用者に役立つと考えられていた
- しかしインターフェースの変化は仕事の分担を調整するのではなく、むしろ協力とコミュニケーションの作業量を追加で発生させる
- 実際にはインターフェースが広がるほど双方の作業量が増え、かえって複雑になる場合が多かった
数学と記号体系の歴史的事例
- 古代ギリシャ数学は言語的・図形中心の方法にとどまり、発展が停滞した
- イスラム数学も記号体系を採用できず、中断した
- ヨーロッパでは Vieta、Descartes、Leibniz、Boole らが形式記号体系を導入し、飛躍的な発展を遂げた
形式言語の利点と自然言語の限界
- 形式言語は、いくつかの簡単な規則だけで多くの誤りを防ぐことができる
- 形式記号は、かつては天才だけに可能だった論理的思考を学生にも可能にする
- 自然言語は曖昧で無意味な言葉が混じりやすく、誤りのない論理的表現には適していない
自然言語が入力/出力の唯一の方式だったとしたら?
- 初期から自然言語だけで機械を制御していたなら、私たちは結局ふたたび形式システムへ戻る「ブートストラップ」の過程を必要としていただろう
- この過程には数千年かかったかもしれず、結局は形式言語へと帰着したはずである
教育的退行と「新たな文盲」現象
- ここ数十年の知的訓練の弱体化によって、多くの人が自分の母語すら十分に扱えなくなっている
- 科学論文、技術報告書、政府文書などで無意味な言葉があふれている現象が、そのことを証明している
- このような現象は、自然言語プログラミングの失敗を予見させる
結論的な直感
- 自然言語でプログラミング可能な機械を作ることは、それを使うことと同じくらい難しい
1件のコメント
Hacker Newsの意見
人々がLLMs(大規模言語モデル)を擁護するのは格好いいという見方がある
Hal Abelsonの古い引用を思い出す
自然言語には人間の精神的な限界に由来する制約がある
機械語は不必要に危険なインターフェースだと認識されている
自然言語でコンピュータープログラムを生成する代わりに、自然言語を直接実行すべきである
自然言語は規則や命令を伝えるのに適していない
特定のドメイン向けの言語は、自然言語では得られない精密さと明確さを提供する
Forth、PostScript、Assemblyは、コード実行環境によく適合した「自然な」プログラミング言語である
高度なプログラミング手法は、自然言語よりもプログラミング言語のように見え始めるだろう
ミスがエラーメッセージとして現れるのは大きな改善である