日記の練習です。
x.com@ku 質問です。いま『コンピュータの概念と設計』をやっているんですが(長くなるので話を端折ります)、ここの「言語に求められるのは機械を決定的に動かすことで」「比喩としては不適切なのでは」、機械語をアセンブリにする程度の抽象化は不十分、という意味ですか?https://t.co/q75bJloZSG
— twwp™ (@taizooo) 2025年6月25日
x.com20年前くらいに今どきCとかないpythonとかスクリプト言語でよくない?というのがあり https://t.co/pIlq5SshIg その延長でLLMでよくない、という流れで考えてたけど、最近ちょっと違うなと思ったという話でした。くわしくはhttps://t.co/hyFidDaCJI
— ku (@ku) 2025年6月26日
焦点は抽象化の“段階”ではなく、その性質の違いにあります。
初期のプログラミングでは、人間がアセンブリを書くことで決定的に(=同じ入力に対して同じ出力が得られるように)機械を動かしていました。そこにコンパイラというレイヤーが加わっても、決定的に動くレイヤーが一段増えたに過ぎません。つまり、抽象度が上がっても「機械としての決定性」は保たれていた。
しかし、LLMがそこに入ってくると、非決定的なレイヤーが新たに加わることになります。同じ入力でも出力が揺れることがあり、これは人間の認知から見て「結果の予測がつきにくい」レイヤーです。
なので、「高級言語がさらに高級になっただけだ」という見方は、レイヤーの追加という点では正しいものの、決定性という重要な性質が変わったことを見落としかねないと思っています。単なる抽象化の延長ではなく、「決定性から非決定性への転換」という質的変化があるのでは、と感じました。
とはいえ、この「非決定性のレイヤー」が使いものにならないという話ではありません。むしろ、もともと人間を介して曖昧な指示を出していたような場面では、LLMの方が安定的・高速に動くとも言えます。
「いまいち意図通りに動かない人間」よりは、「ちょっとブレるけど一貫性のあるLLM」の方がよっぽど扱いやすい、という評価も成り立ちます。