‘자연어 프로그래밍’의 어리석음 (1978)

1 week ago 21

Dijkstra는 형식 기호를 자연어로 대체하면 프로그래밍이 쉬워진다는 전제를 의심함. 기계가 더 많은 부담을 진다고 해서 사람의 부담이 줄어드는 것은 아님 인터페이스는 고정된 작업량을 나누는 경계가 아니라 협력과 소통에 필요한 작업을 추가함. 인터페이스 변경으로 양쪽의 작업량이 모두 크게 늘어날 수도 있음 고급 프로그래밍 언어는 단순한 실수를 잘못된 결과 대신 오류 메시지로 드러내는 데 진전을 이뤘지만, 형식 기호 사용에 필요한 주의와 정확성까지 없애지는 못함 형식 기호는 부담보다 특권으로 보아야 함. 몇 가지 단순한 규칙으로 정당한 조작을 판별하고, 자연어로는 피하기 어려운 무의미한 서술을 배제하는 데 효과적임 Dijkstra는 자연어만으로 컴퓨터와 소통했더라도 결국 충분히 명확한 형식 체계와 좁은 인터페이스를 다시 만들어야 했을 것이라고 추측함 자연어 인터페이스가 사람의 부담을 줄이는가 자동 계산의 초기부터 일부 사람들은 프로그래밍에 필요한 주의와 정확성을 결점으로 여겼음 명백한 실수가 담긴 명령까지 충실히 실행하는 기계를 탓하며, 사소한 기재 오류가 유발하는 무의미한 작업을 스스로 거부하는 기계를 기대했음 A.E. Housman의 말처럼 “그러나 잠깐도 긴 시간이고, 생각은 고통스러운 과정이다” 기계어는 중복성이 거의 없어 사람과 기계 사이의 불필요하게 위험한 인터페이스로 인식됐으며, 고급 프로그래밍 언어는 부분적으로 이 문제에 대응해 발전했음 단순한 실수가 잘못된 답 대신 오류 메시지로 이어지게 된 것은 중요한 개선이었음 그러나 무시할 수 없는 오류 메시지를 잘못된 결과보다 성가시게 여기거나, 프로그래밍의 용이성을 실수가 검출되지 않는 용이성과 혼동하는 사람도 있었음 프로그래밍 언어에 대응하는 추상 기계는 여전히 무의미한 명령도 충실히 실행하는 자동 장치였으며, 프로그래밍에는 계속 주의와 정확성이 필요했음 자연어 프로그래밍의 제안은 기계를 더 복잡하게 만들더라도 기계가 부담을 더 맡으면 사람의 삶이 쉬워진다는 논리에 기반함 형식 기호를 써야 한다는 의무가 어려움의 원인이라면 그럴듯하지만, Dijkstra는 이 전제의 타당성을 의심함 인터페이스를 통한 협력과 소통에는 별도의 작업이 필요하므로, 인터페이스 선택은 일정한 작업량을 단순히 나누는 문제가 아님 인터페이스를 바꾸면 양쪽 모두의 작업량이 크게 증가할 수 있으며, 이것이 좁은 인터페이스(narrow interfaces) 를 선호하게 된 이유임 자연어...

Read Entire Article




피플앤툴즈 네트워크
🛍 샵