Dijkstra의 "자연어 프로그래밍의 어리석음"에 대하여

20 hours ago 1

자연어 프로그래밍의 어리석음에 대한 비판

  • 자동 계산기 초창기부터, 형식적인 기호 체계를 요구하는 프로그래밍 방식에 불만을 가진 사람들이 존재함
  • 기계는 주어진 명령을 그대로 수행하는 '충실한 노예'로서, 명백한 오류도 그대로 실행함
  • 일부 사람들은, 기계가 오류를 무시하고 실행하는 대신, 더 ‘이성적인’ 행동을 하길 기대함

고급 프로그래밍 언어의 등장과 발전

  • 기계어는 오류 검출이나 중복이 거의 없어 위험한 인터페이스로 인식됨
  • 이에 따라 고급 프로그래밍 언어가 등장하게 되었으며, 오류 메시지로 잘못된 결과를 방지하는 발전이 있었음
  • 그러나 여전히 프로그래밍은 형식 기호를 요구하며, 여전히 세심한 정확성이 필요함

자연어로 프로그래밍하자는 주장과 그에 대한 반론

  • 자연어로 기계를 제어하면 사용자는 편해질 것이라는 주장이 있었음
  • 이는 기계가 더 복잡해지면서, 사용자에게 도움이 될 수 있다고 보았음
  • 하지만 인터페이스의 변화는 일의 분담을 조절하는 것이 아니라, 오히려 협력과 소통의 작업량을 추가로 유발함
  • 실제로는 인터페이스가 넓어질수록 양측의 작업량이 증가하여 오히려 복잡해지는 경우가 많았음

수학과 기호 체계의 역사적 사례

  • 고대 그리스 수학은 언어적·그림 중심의 방식에 머물러 발전이 정체됨
  • 이슬람 수학도 기호 체계를 채택하지 못해 중단됨
  • 유럽은 Vieta, Descartes, Leibniz, Boole 등의 인물들이 형식 기호 체계를 도입하면서 비약적인 발전을 이루었음

형식 언어의 이점과 자연어의 한계

  • 형식 언어는 몇 가지 간단한 규칙만으로 많은 오류를 방지할 수 있음
  • 형식 기호는 과거에는 천재만이 가능했던 논리적 사고를 학생도 가능하게 함
  • 자연어는 애매하고 의미 없는 말이 섞이기 쉬워, 오류 없는 논리적 표현에 적합하지 않음

자연어가 주입/출력의 유일한 방식이었다면?

  • 초기부터 자연어만으로 기계를 제어했다면, 우리는 결국 다시 형식 시스템으로 돌아가는 ‘부트스트랩’ 과정이 필요했을 것임
  • 이 과정은 수천 년이 걸릴 수도 있었으며, 결국 형식 언어로 귀결되었을 것임

교육적 퇴보와 ‘신 문맹’ 현상

  • 최근 수십 년간 지적 훈련의 약화로, 많은 사람이 자신의 모국어조차 제대로 다루지 못함
  • 과학 논문, 기술 보고서, 정부 문서 등에서 무의미한 말이 넘쳐나는 현상이 이를 증명함
  • 이러한 현상은 자연어 프로그래밍의 실패를 예견하게 함

결론적 직감

  • 자연어로 프로그래밍 가능한 기계를 만드는 일은 그것을 사용하는 일만큼이나 어려울 것이

Read Entire Article