더글러스 매킬로이
1. 개요
더글러스 매킬로이는 미국의 컴퓨터 과학자이다. 매크로 프로세서의 선구자이며, 유닉스 운영 체제 개발에 기여했다. 벨 연구소에서 근무하며 유닉스 관련 프로그램들을 개발했고, 유닉스 파이프라인 아이디어를 도입했다. 또한, 프로그래밍 언어 설계에도 참여했으며, 알고리즘 개발에도 기여했다. 미국 과학 진흥 협회 회원이며, USENIX 평생 공로상 등을 수상했다.
이미지 준비중입니다.
| 출생일 | 1932년 4월 24일 |
|---|---|
| 출생지 | 뉴버그, 뉴욕 |
| 국적 | 미국 |
| 분야 | 컴퓨터 과학 수학 공학 |
| 모교 | 코넬 대학교 (B.S., 1954) 매사추세츠 공과대학교 (Ph.D., 1959) |
| 학위 논문 제목 | 원추 껍질의 미분 방정식 해법에 관하여 (On the Solution of the Differential Equations of Conical Shells) |
| 지도교수 | 에릭 라이스너 |
| 알려진 업적 | 매크로 유닉스 파이프라인 유닉스 철학 소프트웨어 컴포넌트 echo diff sort join RUNOFF tr 유닉스 매뉴얼 |
| 웹사이트 | 더글러스 매킬로이 개인 웹사이트 |
| 직장 | 벨 연구소 |
|---|---|
| 고용주 | 다트머스 대학교 |
| 수상 | USENIX STUG 상 |
|---|
-
유닉스 관계자 -
켄 톰프슨
켄 톰프슨은 미국의 컴퓨터 과학자로, 데니스 리치와 함께 유닉스 운영 체제를 개발하고 B 및 Go 프로그래밍 언어 개발에 참여했으며, 정규 표현식 구현과 톰프슨 구성 알고리즘 발명에 기여하여 1983년 튜링상을 수상했다. -
유닉스 관계자 -
브라이언 커니핸
브라이언 커니핸은 프린스턴 대학교 컴퓨터 과학과 교수이자 벨 연구소에서 유닉스 철학을 대중화하고 "유닉스" 용어를 만든 컴퓨터 과학자로, "Hello, World!" 프로그램을 통해 프로그래밍 교육에 기여했으며 AWK 개발 및 C 프로그래밍 언어 저술에도 참여했다. -
다트머스 대학교 교수 -
존 매카시 (컴퓨터 과학자)
존 매카시는 LISP 프로그래밍 언어를 개발하고 '인공지능'이라는 용어를 처음 사용하는 데 기여한 인공지능 분야의 선구적인 컴퓨터 과학자로서, 가비지 컬렉션 기법 발명, 유틸리티 컴퓨팅 개념 제시 등 컴퓨터 과학 발전에 혁신적인 공헌을 했다. -
다트머스 대학교 교수 -
호세 도노소
호세 도노소는 1924년 칠레에서 태어나 칠레 가톨릭대학교 교수, 잡지 편집자 등을 역임했으며, 상류층의 몰락과 퇴폐를 고발하는 작품을 통해 국제적인 명성을 얻은 칠레의 소설가이다. -
1932년 출생 -
피터 아이젠먼
피터 아이젠먼은 탈구조주의 건축과 CAD의 선구적인 미국 건축가이자 이론가이며, 뉴욕 5인조의 일원으로서 활동했고, 유럽 유대인 학살 기념관 등의 프로젝트를 수행했으며, 미국 디자인 어워드와 울프상을 수상했다. -
1932년 출생 -
박봉식 (정치학자)
박봉식은 대한민국의 정치학자이자 교육자로, 서울대학교 교수 및 총장, 부산외국어대학교와 금강대학교 총장을 역임하며 국가보위입법회의 위원 활동, 총선 무소속 출마, 토지매입 알선 사기 사건 연루, 서울대학교 본부 점거 사태 관련 발언 등으로 논란이 있었다.
2. 생애 및 경력
매킬로이는 1958년 벨 연구소에 입사하여 1965년부터 1986년까지 컴퓨팅 기술 연구 부서(유닉스 운영 체제의 발상지)의 책임자로 있었으며, 1997년 벨 연구소 은퇴후 다트머스 대학교 컴퓨터 과학과의 겸임 교수로 임명되었다. 그는 컴퓨터 협회 전국 강사, 튜링상 위원장, 출판 계획 위원회 위원, ACM 통신, ACM 저널, ACM 프로그래밍 언어 및 시스템 거래의 부편집자로 활동했고, CSNET의 집행 위원회에서도 활동했다.
2.1. 학력
코넬 대학교에서 공학 물리학 학사 학위를 받았고, 1959년 MIT에서 원뿔 껍질의 미분 방정식 해법에 관하여(지도교수 에릭 레이스너)로 응용수학 철학 박사 학위를 받았다. 1954년부터 1958년까지 MIT에서 가르쳤다.
2.2. 주요 경력
3. 연구 및 업적
매킬로이는 매크로 프로세서의 선구자로, 1959년 벨 연구소에서 더글러스 E. 이스트우드와 함께 SAP 어셈블러에 조건부 및 재귀 매크로를 도입하여 매크로 SAP를 만들었다. 1960년 논문은 (고급 프로그래밍 언어를 포함한) 모든 프로그래밍 언어를 확장하는 매크로 프로세서 분야의 핵심 기여로 평가받으며, 벨 연구소에서 매크로 언어 전통("L6와 AMBIT에서 C까지 모든 것")을 시작했다. 그의 매크로 처리 아이디어는 TRAC 매크로 프로세서 개발에 주요 영감을 주었다. 그는 또한 FORTRAN IV용 M6 매크로 프로세서를 공동 저술했으며, 이는 ALTRAN에서 사용되었고 나중에 초기 유닉스에 포함되었다.
1960년대와 1970년대에 걸쳐 매킬로이는 멀틱스(Multics) 운영체제(예: RUNOFF)와 유닉스 운영체제(예: diff, echo, tr, join 및 look)를 위한 프로그램을 기여했으며, 이러한 프로그램들은 POSIX 표준과 유닉스 계열 운영체제의 채택을 통해 오늘날까지 널리 사용되고 있다. 그는 유닉스 파이프라인의 아이디어를 도입했다. TMG 컴파일러-컴파일러를 PDP-7 및 PDP-11 어셈블리로 구현하여 유닉스에서 실행되는 최초의 고급 프로그래밍 언어가 되었고, 켄 톰슨의 B 프로그래밍 언어와 스티븐 존슨의 Yacc 파서-생성기에 영향을 미쳤다. 매킬로이는 데니스 리치로부터 유닉스 매뉴얼 컴파일을 넘겨받아 버전 7 유닉스 매뉴얼 페이지의 1권을 편집했다. 샌디 프레이저에 따르면, "매뉴얼이 존재한다는 사실, 즉 그가 매뉴얼에 높은 기준을 고집했다는 것은, 문서화된 모든 프로그램에 대해 높은 기준을 고집했다는 것을 의미한다."
매킬로이는 SNOBOL 프로그래밍 언어 설계 및 구현에 영향을 미쳤다. 그의 문자열 조작 매크로는 1962년 SNOBOL 초기 구현에 광범위하게 사용되었으며, 이후 작업에서도 두드러지게 나타났고, 결국 기계 독립적인 구현 언어 SIL로 이어졌다. 1969년 매킬로이의 주장에 따라 SNOBOL4에 테이블 형식(연관 배열)이 추가되었다. 1960년대에 그는 PL/I 프로그래밍 언어 설계에 참여했다. 그는 언어를 설계한 IBM–SHARE 위원회 멤버였으며, 로버트 모리스와 함께 Multics 프로젝트를 위해 TMG로 초기 PL/I(EPL) 컴파일러를 작성했다. 1965년경, 매킬로이는 W. 스탠리 브라운과 함께 IBM 7094 컴퓨터용 ALTRAN 프로그래밍 언어 초기 버전을 구현했다. 매킬로이는 또한 프로그래밍 언어 C++ 설계에도 상당한 영향을 미쳤다(예: 그는 스트림 출력 연산자 `<<`를 제안했다).
매킬로이는 1969년 그래프에서 모든 신장 트리를 생성하는 효율적인 알고리즘 개발에 기여했다. 이 알고리즘은 1965년 조지 J. 민티가 처음 발견했다. 1990년대에는 정렬 기술 개선 작업을 진행했으며, 존 벤틀리와 함께 최적화된 qsort를 공동 개발했다.
3.1. 매크로 프로세서
매킬로이는 매크로 프로세서의 선구자로 여겨진다. 1959년, 벨 연구소의 더글러스 E. 이스트우드와 함께 조건부 및 재귀 매크로를 널리 사용되는 SAP 어셈블러에 도입하여 매크로 SAP라고 알려진 것을 만들었다. 그의 1960년 논문은 (고급 포함) 모든 프로그래밍 언어를 확장하는 매크로 프로세서 분야의 핵심적인 기여로 평가받는다. 이러한 기여는 벨 연구소에서 매크로 언어 전통("L6와 AMBIT에서 C까지 모든 것")을 시작했다. 매킬로이의 매크로 처리 아이디어는 TRAC 매크로 프로세서 개발에 주요 영감을 주었다.
그는 또한 FORTRAN IV용 M6 매크로 프로세서를 공동 저술했으며, 이는 ALTRAN에서 사용되었고 나중에 초기 유닉스에 포함되었다.
3.2. 유닉스에 대한 기여
매킬로이는 1960년대와 1970년대에 걸쳐 멀틱스(Multics) 운영체제(예: RUNOFF)와 유닉스 운영체제(예: diff, echo, tr, join 및 look)를 위한 프로그램을 기여했으며, 이러한 프로그램들은 POSIX 표준과 유닉스 계열 운영체제의 채택을 통해 오늘날까지 널리 사용되고 있다. 그는 유닉스 파이프라인의 아이디어를 도입했다. TMG 컴파일러-컴파일러를 PDP-7 및 PDP-11 어셈블리로 구현했으며, 이는 유닉스에서 실행되는 최초의 고급 프로그래밍 언어가 되었고, 켄 톰슨의 B 프로그래밍 언어와 스티븐 존슨의 Yacc 파서-생성기에 영향을 미쳤다.
매킬로이는 데니스 리치로부터 유닉스 매뉴얼 컴파일을 넘겨받았다. 그는 버전 7 유닉스 매뉴얼 페이지의 1권을 편집했다. 샌디 프레이저에 따르면, "매뉴얼이 존재한다는 사실, 즉 그가 매뉴얼에 높은 기준을 고집했다는 것은, 문서화된 모든 프로그램에 대해 높은 기준을 고집했다는 것을 의미한다."
3.3. 프로그래밍 언어 설계
매킬로이는 SNOBOL 프로그래밍 언어 설계 및 구현에 영향을 미쳤다. 그의 문자열 조작 매크로는 1962년 SNOBOL 초기 구현에 광범위하게 사용되었으며, 이후 작업에서도 두드러지게 나타났고, 결국 기계 독립적인 구현 언어 SIL로 이어졌다. 1969년 매킬로이의 주장에 따라 SNOBOL4에 테이블 형식(연관 배열)이 추가되었다.
1960년대에 그는 PL/I 프로그래밍 언어 설계에 참여했다. 그는 언어를 설계한 IBM–SHARE 위원회 멤버였으며, 로버트 모리스와 함께 Multics 프로젝트를 위해 TMG로 초기 PL/I(EPL) 컴파일러를 작성했다.
1965년경, 매킬로이는 W. 스탠리 브라운과 함께 IBM 7094 컴퓨터용 ALTRAN 프로그래밍 언어 초기 버전을 구현했다.
매킬로이는 또한 프로그래밍 언어 C++ 설계에도 상당한 영향을 미쳤다(예: 그는 스트림 출력 연산자 `<<`를 제안했다).
3.4. 알고리즘
매킬로이는 1969년 그래프에서 모든 신장 트리를 생성하는 효율적인 알고리즘 개발에 기여했다. 이 알고리즘은 1965년 조지 J. 민티가 처음 발견했다.
1990년대에는 정렬 기술 개선 작업을 진행했으며, 존 벤틀리와 함께 최적화된 qsort를 공동 개발했다.
4. 수상 및 인정
1995년, 미국 과학 진흥 협회(AAAS) 회원으로 선출되었다. 2004년에는 USENIX 평생 공로상 ("The Flame")과 소프트웨어 도구 사용자 그룹(STUG) 상을 모두 수상했다. 2006년에는 미국 공학 한림원(NAE) 회원이 되었다.
5. 컴퓨팅에 대한 관점
맥킬로이는 "프로그래밍의 진정한 영웅은 '음수 코드'를 작성하는 사람이다"라는 말을 남긴 것으로 알려져 있다. 여기서 '음수 코드'란 소스 코드 변경을 통해 프로그램의 품질, 가독성, 속도를 향상시키면서 코드 라인 수를 줄이는 것을 의미하며, 이는 애플 개발자 빌 앳킨슨의 유명한 일화와 유사하게 이해된다.
6. 참고 문헌
* 데이비드 C. 브록(David C. Brock), 맬컴 D. 매킬로이(Malcom D. McIlroy), McIlroy, Malcom (Doug) Douglas oral history, part 1 of 2, 컴퓨터 역사 박물관, 59쪽, 2019년 9월 30일.
* 데이비드 C. 브록(David C. Brock), 맬컴 D. 매킬로이(Malcom D. McIlroy), McIlroy, Malcom (Doug) Douglas oral history, part 2 of 2, 컴퓨터 역사 박물관, 52쪽, 2019년 11월 6일.
* 피터 H. 살러스, 『UNIX의 1/4세기』, 애디슨-웨슬리, 1994년 5월 31일 (ISBN 0-201-54777-5, ISBN 4756136591)