「自然言語プログラミング」の愚かさ(1978年)

2026/10/23 9:52

「自然言語プログラミング」の愚かさ(1978年)

RSS: https://news.ycombinator.com/rss

要約▶

Japanese Translation:

本文は「自然言語プログラミング」を明確に反論しており、コンピュータは人間の言葉ではなく、正確で形式的な記号体系を通じてのみ機能すると主張しています。機械は忠実な実行体であるため、自然言語による意味のないコマンドが与えられてもそれを修正せずに完璧に処理し、むしろエラーを引き起こして意味ある結果をもたらすことはありません。歴史的事実は、口頭での説明を越えた重要な進歩を実現するためには形式的数学系が必要であったことを示しており、1977 年のレポートにおいては、明瞭さを求めるために標準的な論理記号を避けることがこの分野の根本的な誤解であることを指摘しています。プログラミングにおいて英語やオランダ語のような固有言語に頼ることは、人間と機械双方の作業負荷を増大させ、構築と使用を困難にするものです。したがって、技術的洞察力のない支持者は、一般言語への精通度低下に伴い避けられない失敗に見舞われます。本文ではこれを「新しい無学」と呼びました。もし自然な言語が情報処理の唯一のインターフェースとなっていたならば、利用可能なシステムを開発するのには数十年ではなく数千年がかかっただろうはずです。したがって、ハイレベルプログラミング言語の成功は人間の話し方を模倣することによってではなく、厳格な操作ルールを通じて無意味を消去し、人間のエラーを明示的なエラーメッセージに変換することによるものです。

本文

自然言語プログラミングの愚かについて

自動計算の黎明期における認識

  • プログラミングは慎重で正確な作業であり、形式的記号の使用が必須であると考えられていた。
  • 機械的な奴隷は与えられた指示を盲目に実行するため、指示に含まれる明らかな誤りに対しては厳格な服従を示すという点が問題視された。

    「しかし一瞬とは長い時間であり、思索は苦しいプロセスである」(A・E・ホージマン)

エラー防護とプログラミング言語の進化

  • 高級プログラミング言語の開発により、人機間のインターフェースにおける危険な冗長性が改善された。
  • 軽微な事務的過ちが無意味な活動を引き起こすのを防ぐために、誤った答えではなくエラーメッセージを表示する仕組みが導入された。
    • ただし、この改善を一律に歓迎する意見はなかった。
    • 一部の人間は、無視できないエラーメッセージの方が誤った結果よりも不快だと感じた。
  • プログラミング言語の優劣判断において、「容易さ」を「検出されない過ちを起こす容易さ」と同一視している傾向が依然として残っている。
  • 結論:プログラミング言語に対応する(抽象的)マシンは忠実な奴隷であり、無意味な指示も完璧に実行してしまうため、慎重さと正確さは引き続き必要である。

自然言語による指令の是非

  • マシンを母語で指示することで使いやすくしようとする試みが提案されたが、以下のような懸念がある。
    • マシンの複雑性を大幅に増大させることになり得る。
    • 「インターフェースの変更」は労働の分業ではなく、コミュニケーションのための追加作業を意味する。
      • 結果として、柵の両側に施す必要がある作業量が劇的に増加することがある(狭いインターフェースが優先される理由)。
  • 「母語で指示すればマシンの負担が増える」のは事実だが、「人間の生活を単純化する」という前提には疑問が必要である。

数学史からの教訓

  • 言語的・図式的な活動だけで進めようとした歴史は行き詰まった例がある。
    • ギリシア数学:言語と図式に依存し、行き詰まり。
    • イスラム代数:記号への試みから戻ろうとした際に死に絶えた。
  • 現代文明の台頭は、形式的記号体系(ヴィエタ、デカルト、ライプニッツ、ブールなど)が設計された後で実現した。
  • 形式的テキストの美徳:
    • 操作を正当化するにはわずかな簡単な規則を満たせばよい。
    • 母語を使用する際にほぼ不可能な種類の無意味(冗長性)を排除するための効果的な手段である。

形式的記号への見方

  • 形式的記号の使用義務を「負担」とみなすのではなく、**「利便性の特権」**と捉えるべきである。
    • これにより、かつて天才のみが達成できたことを、学校児童も学ぶことができるようになった。
  • 「自然な言語でのプログラミング」の本質は、無意味であることを直ちに認識できないような陳述を作り出しやすいという点にあり得る。

未来への推測

  • もし当初から母語が情報の入力・出力媒体として採用されていれば:
    • コンピュータ科学は十分に定義された形式的システムへとブートストラップされる過程で、歴史を繰り返すことになるかもしれない。
    • インターフェースを有用にするために世界のすべての知性を必要とする可能性がある。
    • この仕事を使い切るのに再び数千年かかるかもしれない(過度に悲観的ではない)。

注記:言語能力の低下と警告

  • 知的規律から教育が遠ざかる傾向により、西洋世界における人々の母語に対する統制能力は急激に低下している。
    • 以前より知られていた人々でも、現在では自分の母語さえ効果的に使用できないケースが増えている。
    • 科学論文や技術報告に見られるような意味のない冗長な文章が警鐘を鳴らすほど多い。
  • この現象(「新しい無学」)は、自然言語プログラミングへの信仰者たちに以下の点を戒める必要がある。
    • 失敗を予測するために必要な技術的洞察を持たないこと。

おわりに

  • 母語でプログラミングするためのマシンを作ることは、それらを使用するほど困難であると疑うに値しないという直感が得られる。

同じ日のほかのニュース

一覧に戻る →

2026/10/23 8:45

Docker は変だ

## Japanese Translation: 本文は、主に Linux コンテナが特定のコア機能を利用して孤立化されたプロセスであり、仮想マシンとは異なること、また Docker がイメージをフォルダとして管理することを明確にしています。完全な仮想化と異なり、コンテナは隔離にはネームスペースを用い、リソース管理には cgroups を用いて、管理されたディレクトリ内でバイナリを直接実行します。重要な技術的詳細として、Go で記述される `runc` ランタイムがあり、これは初期システムコールの処理に C モジュールを使用して Linux カーネルとインターフェースする必要があります。Go は `fork` などの特定の機能へのネイティブサポートを持っていないため、不足している振る舞いを近似させるために `/proc/self/exe` などのワークアラウンドが必要です。さらに、標準的な Linux カーネル API は通常ルートの権限を必要とするため、Docker デモンはデフォルトで昇権限(elevated permissions)で動作します。これを解決するためには、ルートレスコンテナランタイムは、通常ルートベースのセットアップが提供する機能を複製するために、ユーザースペースのネットワーキングスタックを再構築する必要があります。結局のところ、これらのアーキテクチャ的な制約を理解することは、安全なルートレス環境を管理するユーザーにとって不可欠であり、不要な権限昇格を避けながらシステム安定性を維持する互換性のあるインフラを設計する企業にとっても重要です。

2026/10/23 7:54

LLM が大規模な正式なソフトウェア検証の実現を可能にしています

## Japanese Translation: 研究者は、大規模言語モデル(LLM)の Claude を用いて、100 以上のオープンソースソフトウェアライブラリに対して前例のない規模での形式的検証を実行し、歴史的なマイルストーンを達成しました。Theorem との協力により、プロダクション向けソフトウェアに対する初の大規模 AI 主導の形式的検証として、アセンブリ(RISC-V)レベルで実装されたコードが検証されました。その結果、64 MB 未満の入力に対して、123 のライブラリの実行可能アーティファクトがメモリ安全性エラーやフェイルするアサートなしに正常終了することが証明されました。この達成には、Claude が Rocq コードを約 1.8 億行生成し、239 のエントリポイントを対象にクラッシュしない仕様を証明するとともに、従来のフォージングで検出されなかった深刻なバグを特定・修正する作業が行われたことが寄与しました。具体的には、カウンタのアンダーフローや境界外読み取りといった複雑な問題を含むものが含まれます。検証の対象は Linux でコンパイルされた RISC-V 命令であり、ユーザーが信頼しなくてもよいのは既知のハードウェア/ソフトウェアの数学モデル、定理ステートメント自体、および Rocq の証明チェッカーのみです。基本的安全性を超えて、このアプローチはデータ圧縮の精度やアルゴリズムの正しさ(例:red-black トリーの再平衡)といった高位のプロパティも検証しました。チームは共有作業空間戦略を採用し、証明の再利用によりトークン使用量を 17%削減するものであり、Mathlib のような数学ライブラリの成長に類似しています。形式的に検証済みであっても、形式仕様が実態と異なったり機械モデルが現実と異なる場合(例:x86/ARM システム上)には、完全なバグの不在を保証しないことに留意する必要があります。本プロジェクトでは公衆の検討のために一部の証明をリリースしており、AI 支援による検証をソフトウェア開発ワークフローでの標準へと導く道筋を用意しています。

2026/10/22 23:32

Quad9(DNS レゾルバー)がフランスから退出します

## Japanese 訳: 2026 年 11 月 24 日より、Quad9 はフランスのユーザーに対して、無料のサイバープロテクトおよび一般的なサービスを提供を永久に停止いたします。この決断は、beIN が提起した重大な訴訟において Quad9 に不利となるフランス裁判所の判断を受けたものです。beIN は、特定のドメイン名の再帰的 DNS 解決をブロックすることが、視聴覚的な権利を保護するために必要であると主張しました。裁判所は、違反が完了するまで(11 月 14 日)の金融ペナルティを約 580,000 �ーロから毎日上記 1,000 ユーロに減額しましたが、Quad9 は再帰的 DNS 解決が中立かつ受動的なサービスであり、応答を変更することはそのミッションであるプライバシー、セキュリティ、そしてインテグリティに違反するとする理由をもってこれに従うことができないと述べています。さらに、Quad9 の無料サービスには登録や身元証明は不要であり、ユーザーと管轄区域を関連付けるデータベースを持たないため、geoIP ベースの管轄区域マッピングは技術的に不可能です。フランス裁判所の要求を満たすためにグローバルなブロックを実施することは、French の法律を全世界のユーザーに適用することを意味し、Quad9 にとって許容されない越境的な先例となります。以前にも地理的な IP ブロックの実施を試みた際(例:2021 年から 2023 年にかけてドイツ)、原告が VPN を介してブロックを回避したために裁判所に対する軽蔑罪として罰金が科されるなどしました。Quad9 に対して数百のドメイン名のブロックを求めて進行中の訴訟が約 20 件あり、累積的な法的リスクは大きいです。上訴は進行中ですが、Quad9 は予定通り撤退を進めることにします。この動きにより、国家機関(例:DINUM, EDF, SNCF)、研究ネットワーク(RENATER)、大学、医療提供者、および民間企業を含む何百万人ものフランスのユーザーが、サイバー脅威からほぼ 9 年間も重要な保護を失うことになります。Quad9 は、将来、監督なしで民間企業が DNS コンテンツフィルタリングを自動化することを可能にする法律に対して警告を発し、市民に対し、日常のドメイン名lookup が刑事犯罪ではないことを明確化することを目指しています。

「自然言語プログラミング」の愚かさ(1978年) | そっか~ニュース