1950년대 초, UNIVAC 컴퓨터를 위한 새 프로그램을 작성한다는 것은 매번 같은 공통 서브루틴을 원시 기계어 수준의 이진수로 처음부터 직접 코딩해야 한다는 뜻이었다. 컴퓨터 과학자와 엔지니어 사이의 지배적인 합의는 컴퓨터가 근본적으로 산술 기계, 즉 계산은 할 수 있어도 고수준의 기호 명령을 스스로 따라가거나 번역하지는 못한다는 것이었다. 이 가정은 누군가가 변호해야 하는 공식 방침이 아니었다. 그것은 컴퓨터가 무엇을 할 수 있고 무엇을 할 수 없는지에 관한 자명한 사실로 그저 받아들여졌다.

레밍턴 랜드의 UNIVAC 부서에서 일하던 그레이스 호퍼는 이 분야의 가정이 틀렸다고 믿었고, 작동하는 번역기인 A-0 시스템을 만들었다. 이 시스템은 프로그래머가 매번 전체 이진수를 다시 입력하는 대신 짧은 코드로 재사용 가능한, 이미 작성된 서브루틴을 참조할 수 있게 했다. 이는 컴퓨터가 실제로 고수준 명령을 번역하고 실행할 수 있음을 기술적으로 입증한 것이었다.

호퍼는 수년간 같은 시연을 반복했으며, 채택이 가능해질 만큼 충분한 사람들의 생각이 바뀔 때까지 그 범주적 믿음 자체를 겨냥했다.

한 번의 시연으로는 범주적 가정을 뒤집을 수 없다. 사람들은 그것을 합리화해 버린다.

반복된 노출은 회의론자들에게 자신의 사고 모델을 갱신할 여러 기회를 준다.

설득은 기술의 기능만이 아니라 근저의 믿음을 겨냥했다.

충분한 믿음이 바뀌자 컴파일러는 표준 관행으로 받아들여질 수 있게 되었다.

해결책이 작동하지만 그 분야의 가정과 모순될 때는, 한 번만 증명하지 말고 가정이 바뀔 때까지 증명을 반복하라.

호퍼의 지속적인 설득 노력은 결국 성공했고, 그녀가 개척한 컴파일러 개념은 이후 FLOW-MATIC 작업과 비즈니스 컴퓨팅 역사상 가장 널리 쓰인 프로그래밍 언어 중 하나인 COBOL의 최종 개발로 직접 이어졌다. 이는 컴파일러와 고수준 프로그래밍 언어를 배척받는 호기심의 대상이 아니라 표준 관행으로 자리 잡게 했다.

근거 확인하기

출처

  1. A-0 System Wikipedia · en.wikipedia.org
  2. Milestone-Proposal: Grace Hopper's Compiler and Programming Language Work, 1952-1959 IEEE Milestones Wiki · ieeemilestones.ethw.org
  3. The Woman Who Taught Computers English Missed History · missedhistory.com