최초의 Pascal 컴파일러는 어떤 언어로 만들어졌을까?

1. 내 인생의 PL 파스칼

내가 처음 접한 컴퓨터 언어(PL)는 (당시 많이들 그랬듯이) BASIC이다.
그런데, 내가  PL이 무엇인가 처음 이해하게 해준 언어는 Pascal이다.

지적재산권 개념이 희박하던 시절 월간 마이크로소프트웨어[각주:1]의 부록으로 Z-80 Turbo Pascal 컴파일러를 준 적이 있다.
원래 이 컴파일러는 Apple에 CP/M 카드를 장착한 환경에서 동작하는 컴파일러였다.[각주:2]

이 CP/M의 제작자가 바로 게리 킬달.


그런데, MS는 MSX의 시스템 콜을 설계하면서 CP/M과 완벽한 하위 호환성을 유지하도록 설계했다.
덕분에, 이 컴파일러는 MSX에서 완벽하게 동작했고, MSX를 갖고 있던 나는 이전과는 다른 환경을 접하게 되었다.

당시 월간 마소는 터보광이란 코너에서 Turbo Pascal에 관한 많은 기사를 썼고, 이를 통해 PL이 뭔가를 배울 수 있었다.
인터프리터 방식의 BASIC만 알던 나에겐 엄청난 충격이었다.



2. Pascal!

대학원에서 PL 수업 시간에 재미있는 얘기를 들었다.
다름아닌, 최초의 제대로 된 Pascal 컴파일러는 어떤 언어로 개발되었는가 하는 문제이다.

Pascal은 Wirth[각주:3]라는 분이 만든 언어이다.
그런데, 당시는 Fortran이 이름을 떨치기는 했지만, 여전히 컴파일러라는 분야는 뭔가 석연찮은 분야였다.[각주:4]
결국 Wirth는 Fortran으로 Pascal 컴파일러를 만들었지만, 완성도는 그닥 높지 않았다.

BTW, 이를 기반으로 '70년대에 등장한 많은 Pascal 컴파일러들은 Pascal 컴파일러를 개발할 수 있는 능력을 가졌다.
덕분에 새롭고 완성도 높은 Pascal 컴파일러들이 탄생할 수 있었다.

즉, Pascal 컴파일러는 다름 아닌 Pascal로 개발된 것이다.

참조: 위키피디아



3. 현재 Pascal의 위상은…

그 유명했던 노턴 유틸리티도 처음엔 Pascal로 개발되었을 정도로 널리 사용되던 언어였다[각주:5].
물론, C/C++ 언어란 걸출한 스타 언어가 있기는 하지만, 이 정도의 시스템 유틸리티를 개발할 수 있는 언어는 많지 않다.

또, 지금은 C++나 Java로 적힌 수많은 자료구조론 책들은 최초에 Pascal로 씌여진 것들을 다시 출판한 것이다.

하지만, 현재는 Borland의 걸작 Delphi를 제외하고는 상용 컴파일러는 찾아보기 힘든 실정이다.

Open Source의 Pascal인 Free Pascal을 경험해보고 싶으면 free pascal을 방문해보기 바란다.
여기서는 다름 아닌 Pascal로 작성된 Free Pascal의 소스와 컴파일러를 받을 수 있다.


Free Pascal의 화면. DOS용 Turbo Pascal과 굉장히 유사함


  1. 가끔 Microsoft를 마소라고 부르는데, 월간 마이크로소프트에서 자기들을 마소라고 불렀음. 말과 소처럼 부지런하게 일하겠다고… [본문으로]
  2. Turbo Pascal은 CP/M 과 MS-DOS용의 두 가지 버전이 개발되었음. [본문으로]
  3. Niklaus E. Wirth. 캐막장 발음의 미쿡인들 덕분에 '워드'라고들 알고 있는데, '비르트'에 가까운 이름이다. 비르트는 스위스 사람. [본문으로]
  4. 최초의 Fortran 컴파일러는 1957년에 개발되었는데, 기계어의 효율을 따를 수 없다는 게 정설이었음. 최초의 Pascal 컴파일러는 1969년에 나옴. [본문으로]
  5. 물론, 이후 버전은 C/C++로 개발되었음 [본문으로]