자연언어 프로그래밍은 왜 실패하는가
원제 The foolishness of "natural language programming" (1978)
159 포인트댓글 97
Key Point
프로그래밍을 인간언어로 하면 더 쉬워질 것이란 아이디어가 왜 근본적으로 실패할 수밖에 없는지를 형식 체계의 역사와 논리로 설명한 고전 논문이다.
핵심 요약
- 1978년 다익스트라의 논문으로, 프로그래밍을 자연언어로 할 수 있다면 더 쉬워질 것이라는 제안에 정면 반박한다.
- 초기 컴퓨팅 시대부터 프로그래머들은 형식적 기호 체계의 엄격함을 단점으로 느꼈고, 기계가 모순된 명령도 충실히 실행하는 것을 문제 삼았다.
- 고급 프로그래밍 언어 개발로 명백한 실수는 에러 메시지를 내보내게 되어 개선됐지만, 프로그래밍의 형식성 요구는 여전했다.
- 자연언어 프로그래밍 제안자들은 기계의 부담을 늘리면 인간의 부담이 줄 것이라고 가정했지만, 인터페이스 변경으로 양쪽의 작업량이 오히려 증가할 수 있다.
- 수학의 역사가 이를 증명한다: 그리스 수학은 언어와 그림에만 의존해 정체됐고, 아랍 대수도 형식 기호를 포기하자 쇠퇴했다.
- 근대는 데카르트, 라이프니츠 등이 고안한 정교한 형식 기호 덕분에 비로소 도래했으며, 형식 텍스트의 장점은 조작이 단순한 규칙만 따르면 되므로 자연언어로 피하기 쉬운 논리적 오류를 배제한다.
- 형식 기호의 의무는 부담이 아니라 특권으로 봐야 하며, 덕분에 학생들도 과거엔 천재만 할 수 있던 일을 배울 수 있다.
- 자연언어의 '자연스러움'이란 명백하지 않은 논리적 모순을 만들기 쉬운 특성을 의미한다.
- 만약 처음부터 자연언어만으로 컴퓨터 시스템을 만들었다면, 컴퓨터 과학은 충분히 정의된 형식 시스템으로 부트스트랩하기 위한 '검은 예술'이 되어 수천 년이 필요했을 것이다.
- 교육 기준의 약화로 최근 수십 년간 사람들의 모국어 구사 능력이 급격히 하락했고, 과학 논문과 보고서의 무의미한 표현만 증가했다.
- 이런 '신문맹' 현상은 자연언어 프로그래밍의 기술적 실패를 예측할 통찰력이 없는 신봉자들에게 경고가 되어야 한다.
- 저자의 직관은 자연언어로 프로그래밍 가능한 기계가 만들기도, 사용하기도 같은 정도로 어려울 것이라는 점이다.