더북(TheBook)

INTERPRETER 2.1 언어의 구성 요소

컴퓨팅의 암흑기 이래로 엔지니어들은 줄곧 프로그래밍 언어를 제작해왔다. 컴퓨터와 대화를 나누기가 워낙 어렵고 까다롭다 보니 언어의 도움을 받지 않을 수 없었다. 요즘 컴퓨터는 그때보다 수백만 배는 더 빨라지고 스토리지 용량은 몇 자릿수 더 증가했지만, 프로그래밍 언어를 개발하는 방법은 사실 거의 변하지 않았다.

언어 디자이너들은 광활한 영역을 탐험했지만 그들이 새겨놓은 흔적은 그리 많지 않다. 모든 언어가 똑같은 길을 밟진 않았지만(일부는 한두 개 지름길을 택했다), 다행히도 미 해군 제독 그레이스 호퍼(Grace Hopper)가 만든 최초의 코볼(COBOL) 컴파일러부터 요즘 새로이 각광받는 (깃 리포지터리(Git repository) 어딘가에 성의 없이 대충 만든 README 파일로 문서화된) 자바스크립트 트랜스파일러(transpile-to-JavaScript)까지 거의 비슷하다는 것은 확실하다.

막다른 골목에 다다른 경우도 있었다. 인용 횟수가 0으로 사장되어버린 CS(Computer Science, 컴퓨터 과학) 논문들, 메모리를 바이트 단위로 측정했던 시절에만 의미가 있던, 지금은 잊혀진 최적화 기법들도 많다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.