# 自然言語プログラミング ## 定義 自然言語(日常言語やその統制されたサブセット)を入力として計算処理やプログラムの仕様を記述し、実行可能なシステムを構築するプログラミング手法の総称。 歴史的には COBOL の「非専門家向け英語プログラミングシステム」構想や、ドナルド・クヌースの文芸的プログラミング(Literate Programming)、厳密な統制英語を用いた規則変換など、多様なアプローチが模索されてきたが、日常言語の曖昧性や仕様記述の不完全性の壁に直面し、長らく批判と論争の対象となってきた(例: Dijkstra による批判)。しかし、大規模言語モデル(LLM)の出現により、対話的・曖昧な散文指示を実行可能コードや対話型システムへ柔軟にマッピングすることが技術的に実用可能となり、プログラミングパラダイムとして再評価されている。 ## 横断的知見 - **自然言語プログラミングにおけるスキルの二重性(散文表現力と計算的思考の独立性)**: 自然言語プログラミングおよびその究極形である「コードを一切編集・閲覧しないバイブコーディング」において、どのような認知的・教育的スキルが成果を予測するかについて、[[@2026__arXiv__Computer Science Achievement and Writing Skills Predict Vibe Coding Proficiency]] は N=100 の統制実験により、コンピュータサイエンス達成度(CS達成度: r = 0.386)と文章作成能力(writing skills: r = 0.290)の双方が独立かつ有意な予測力を持つことを実証した。特に、文章作成能力の影響はプロンプトの品質(語彙多様性や指示の明瞭さ)によって媒介される一方、CS達成度は領域一般の推論能力(IQ類似の認知テスト)を統制してもなお独自の分散を強く説明する(文章力の約2倍の独自分散寄与)。これは、自然言語で指示を出す行為においても、問題分解や状態遷移のモデル化といったCS的思考様式が不可欠であることを示している。(Source: [[@2026__arXiv__Computer Science Achievement and Writing Skills Predict Vibe Coding Proficiency]]) ## 未解決の問い - 自然言語プログラミングにおける仕様の曖昧性と非決定性を、形式手法や型システム、実行時テストなどのガードレールとどのように統合すべきか。 - 自然言語プログラミングが普及した際、初等・中等教育におけるプログラミング教育は文法習得から文章表現・要求仕様記述へと移行すべきか、あるいはアルゴリズム的思考・問題分解の訓練としてCS基礎が維持されるべきか。 ## 関連 - 概念: [[バイブコーディング]] / [[エージェント型コーディング]] / [[構造化プログラミング]] / [[ソフトウェア工学知識体系]] - 実体: [[ETH Zürich]] ## 出典 - [[@2026__arXiv__Computer Science Achievement and Writing Skills Predict Vibe Coding Proficiency]](自然言語プログラミングおよびバイブコーディングにおけるCS達成度と文章作成スキルの予測力の定量化)