기타 업적
앨런 펄리스는 1956년부터 1971년까지 카네기 기술 대학(1967년에 멜론 기술 대학과 합쳐져서 카네기멜론 대학교가 됨)에서 교수로 일했고 1971년에는 예일 대학교로 자리를 옮겼다. 카네기 기술 대학에 몸담고 있는 동안 그는 알골 설계에서 핵심적인 역할을 담당하는 한편, 컴퓨터 과학과를 정립하는 일에도 힘썼다. 처음에는 수학과나 통계학과의 지류로 간주되었던 컴퓨터 과학 분야는 그의 노력으로 독립된 학과로 성장했다. 그는 카네기 기술 대학의 컴퓨터 과학과 첫 학과장을 역임했다.
여러 직책들을 맡기는 했지만 그가 관리자 스타일은 아니었던 것으로 보인다. 카네기 기술 대학에서 그와 많은 시간을 보냈던 앨런 뉴얼(Allen Newell) 교수의 회고에 따르면 오히려 반대였던 듯싶다.
펄리스는 아주 훌륭한 비관리자 스타일이었습니다. 그는 관리라는 것을 신봉하지 않았습니다… 그가 수학과 학과장, 컴퓨터 과학과 학과장, 컴퓨터 센터장을 동시에 맡기도 했었다는 점을 놓고 보면 의외로 보일지도 모르겠네요. 하지만 뒤집어 생각한다면 그가 비관리자 스타일이었기 때문에 그렇게 세 개의 조직을 한번에 운영할 수 있었던 겁니다.12
대외적인 활동도 활발했던 그는 1962년에 ACM 학회장으로 선출되어 2년 동안 활약했다. 컴퓨터의 초창기 역사에서 뚜렷하게 이름을 남긴 이들이 많았지만 그가 튜링상의 첫 수상자로 선정된 배경에는 이런 점도 고려되어야 할 듯 싶다. 뉴얼 교수도 다음과 같이 언급했다.
말그대로 앨런 펄리스는 컴퓨터 과학 분야에 있는 사람들의 본보기였습니다. 이 바닥에서 일하는 나 같은 사람들이 학술대회에 가면, 항상 그곳에는 펄리스가 있었습니다. 그리고 우리는 그가 하는 말에 귀를 기울였습니다. 왜냐하면 그가 어떤 주제에 대해 말을 하면 기지가 넘치고 풍자가 있었으며 언제나 옳은 방향을 가리키고 있었기 때문입니다. 그가 튜링상 첫 수상자가 된 이유가 바로 거기에 있다고 봅니다.12
앨런 펄리스는 촌철살인(?)으로도 유명하다. 그가 1982년에 프로그래밍 언어 논문지에서 발표한 글은 많은 이들에 의해 인용되고 있다. <프로그래밍에 관한 경구13>라는 제목의 이 글은 프로그래밍 분야의 여러 특징들을 짧은 문장으로 재치있게 표현하고 있다. 예를 들면 다음과 같은 경구들이 있다.
- 어떤 이에게는 상수인 것이 누군가에게는 변수이다.
- 모든 프로그램은 어떤 다른 프로그램의 일부이다. 그리고 잘 들어 맞는 일이 드물다.
- 반복문도 없고 구조화된 변수도 없는 프로그램이 있다면 그건 작성할 가치가 업다.
- 최적화는 진화를 방해한다.
- 프로그램을 이해하려면 여러분은 반드시 컴퓨터 기계와 프로그램 둘 다가 되어야 한다.
- 프로그래머는 천재성과 논리적 능력으로 평가되어서는 안 된다. 그들이 문제를 얼마나 완벽하게 해석하느냐로 평가되어야 한다.
- *출처: https://amturing.acm.org/award_winners/perlis_0132439.cfm
- †출처: https://computingthehumanexperience.com/alan-perlis/
- ‡출처: https://tcm.computerhistory.org/exhibits/Whirlwind.html
- §그중 한 사람이 도널스 커누스이다.
- ¶포트란을 만든 이다.
- #그레이스 호퍼와 함께 컴파일러를 개발한 바가 있다.
- **소프트웨어 공학(software engineering)이라는 용어를 처음 사용함.
- ††알골 60 개발에는 존 매카시와 에드스거 다익스트라도 참여했다. 매카시는 파리 회의에 직접 참석하기도 했다.
- ‡‡출처: https://spin.atomicobject.com/2016/07/31/eniac-programmers/
- §§실제로 이런 명세를 가진 기계어 코드는 존재하지 않는다. 설명을 위해 편의상 가공해낸 것임에 주의하자.
- ¶¶어셈블리어와 서브루틴을 본격적으로 제안하고 사용하기 시작한 곳은 영국의 EDSAC 개발팀이었다.
- ##아래의 코드는 실제 ALGOL 프로그램 표기법과 약간의 차이가 있다. 이해와 설명을 돕기 위해서 표기법을 조금 변형했음을 알린다.
- ***만약 한 줄에 표현하기 어려워 여러 줄을 써야 할 때는 끝에 &를 붙인다.
참고문헌
- 1.Perlis Alan J. The synthesis of algorithmic systems. ACM Turing Award Lectures.:1966. doi:10.1145/1283920.1283921
- 2.ACM. Alan J Perlis. A.M. Turing Award Laureate. Accessed July 26, 2022. https://amturing.acm.org/award_winners/perlis_0132439.cfm
- 3.Cheatham Thomas. Biography of Alan J. Perlis. History of programming languages. Published online June 1978:171-171. doi:10.1145/800025.1198357
- 4.Perlis Alan J. The American side of the development of ALGOL. History of programming languages. Published online June 1978:75-91. doi:10.1145/800025.1198352
- 5.캠벨-켈리 마틴. 소프트웨어는 어떻게 밥벌이가 되었나: 소프트웨어 산업의 시작과 발전. 지식함지; 2021. https://knowledgebasin.com/archives/1104
- 6.스웨이드 도런. 톱니바퀴 컴퓨터: 최초의 컴퓨터를 만들기 위한 찰스 배비지의 도전. 지식함지; 2016. https://knowledgebasin.com/archives/286
- 7.Bhalerao Abhir H. An Interpreter for the Brooker’s Manchester Mark I Autocode, of 1955. Dept of Computer Science, Univ of Warwick; 1985:25.
- 8.Ridgway Richard K. Compiling routines. Proceedings of the 1952 ACM national meeting (Toronto) on – ACM ’52. Published online 1952. doi:10.1145/800259.808980
- 9.A. Nico Habermann. Introduction to ALGOL 60 for those who have used other programming languages. Carnegie Mellon University. Published online 2006. doi:10.1184/R1/6606608.V1
- 10.Wilkes Maurice V, Wheeler David J, Gill Stanley, Corbató FJ. The Preparation of Programs for an Electronic Digital Computer. Physics Today. Published online August 1958:28-28. doi:10.1063/1.3062687
- 11.Dijkstra EW. Recursive Programming. Numer Math. Published online December 1960:312-318. doi:10.1007/bf01386232
- 12.Newell Allen. Oral History Interview with Allen Newell. Charles Babbage Institute; 1991:175.
- 13.Perlis Alan J. Special Feature: Epigrams on programming. SIGPLAN Not. Published online September 1982:7-13. doi:10.1145/947955.1083808
(c) 이재범, 2022
이 콘텐츠는 대한민국 저작권법의 보호를 받습니다. 작성된 모든 내용의 권리는 저자에게 있으며, 저자의 동의 없는 사용은 금합니다. 본 콘텐츠의 일부 혹은 전체 내용을 무단으로 전재/복제/배포하거나 2차적 저작물로 재편집하는 경우, 법적 책임을 지게 됩니다.
답글 남기기