리스프
위키백과 ― 우리 모두의 백과사전.
리스프 프로그래밍 언어(Lisp programming language)는 1958년 MIT의 존 매카시가 개발한 프로그래밍 언어다. 리스프 설계는 존 매카시가 1960년에 쓴 논문, "Recursive Functions of Symbolic Expressions and Their Computation by Machine"(기호로 나타낸 재귀 함수와 기계를 이용한 계산, CACM에 발표)에서 밝힌 이론에 바탕을 두고 있다. Lisp이란 이름은 LISt Processing(리스트 처리)란 말의 약자이다.
첫번째 Lisp (IBM 704에서 돌아가게 만든) 인터프리터는 존 매카시가 MIT 전자공학 실험실의 인공지능 그룹, 계산 센터에 있던 동료, (스티브 러셀을 비롯한) 여러 학생의 도움을 받아서 만들었다.
Lisp는 여러 가지 면에서 다른 언어와 많이 달랐다. 람다 계산법(Lambda Calculus)에 바탕을 두고, 처음부터 기호(이름) 데이터(Symbolic Data)를 다루는 문제 풀이에 알맞은 언어로 설계되었기 때문에 그 당시 다른 언어에서 볼 수 없었던 아톰(atom)이나 리스트(list)같이 새로운 데이터를 쓰고 있었다. 게다가 새로운 언어 기능을 실험하는 데 큰 목적을 두고 있었기에, 처음에는 산술 연산 따위를 빠르고 가볍게 처리하지 못했다. 하지만, 성능이 뛰어난 Lisp 컴파일러가 꾸준히 나오면서부터 이런 문제는 풀리게 되었다. 한편, 인공 지능을 중심으로 여러 다른 응용 분야에서는 제 몫을 톡톡히 해왔다. 운영체제 쉘 언어(Scheme을 바탕으로 하는 쉘 언어로 scsch 따위)라던가, 글 편집기(Emacs 편집기에서 Elisp 따위)나 설계 시스템(Computer-Aided Design,줄여서 CAD) 같은 소프트웨어의 기능을 늘리는 언어(AutoCAD 시스템에서는 AutoLisp 등)로 자리를 잡은 것이, 그 좋은 보기다.
Lisp는 여러 사람이 뜻을 모아 한 걸음에 설계한 언어가 아니다. 그때 그때 쓰는 사람의 바람에 맞추어 새로운 기능을 넣기도 하고, 어떤 기능을 쓸모있게 만들 수 있는지 따져가면서, 꾸준히 실험하는 과정을 거쳐 자라났다. 이런 까닭에, Lisp를 쓰는 사람들은 "공식적으로" 언어를 정의하여 널리 퍼뜨리기를 꺼리기도 한다. Lisp은 작고 부드럽게 설계된 언어라서 오랜 시간 실험을 거치면서 끝없이 새로운 프로그램 설계 방식을 받아들일 수 있었기에, 아직까지도 여러 분야에서 널리 쓰이고 있다. 이런 Lisp의 진화 과정에서 많은 변종이 생겼다. 보통 Lisp는 모든 변종을 통칭해서 이야기한다.
1970년대에 가장 많이 쓰던 Lisp 변종은, MIT의 프로젝트 MAC에서 만들었던 MacLisp과, Bolt Beranek & Newman 사와 Xerox Palo Alto 연구 센터가 같이 만든 Interlisp이다. Portable Standard Lisp은 여러 기계로 쉽게 옮겨 심을 수 있도록 설계한 Lisp 변종이다. 또한 MacLisp을 기반으로 한 여러 변종이 나왔는데, UC 버클리에서 만든 Franz Lisp이 있고, MIT의 인공지능 실험실에서 만든 Zetalisp이 있다. Zetalisp은 전용 프로세서를 통해 Lisp을 아주 효율 있게 돌리려고 만든 것이다. Lisp 변종 가운데 가장 널리 쓰고 있는 것으로는 커먼 리스프(Common Lisp)와 Scheme을 들 수 있다.
커먼 리스프는 그 때까지 여러 변종에 있던 기능을 한데 묶어서 Lisp 산업 표준을 정하려고 Lisp 공동체가 만든 것이다. 1994년에 커먼 리스프(Common Lisp)의 ANSI 표준이 정해졌다.
Scheme은 MIT 인공지능 실험실의 Guy Lewis Steele Jr., Gerald Jay Sussman이 1975년에 처음 내놓은 것을, 나중에 MIT에서 프로그램 짜는 법을 가르치는데 쓰려고 다듬은 것이다. (흔히 SICP 또는 Wizard book이라고도 하는 MIT 교과서, Structure and Interpretation of Computer Programs, Hal Abelson, Jerry Sussman and Julie Sussman, http://mitpress.mit.edu/sicp/ 가 바로 Scheme을 쓰고 있다.) 1990년에 Scheme의 IEEE 표준이 정해졌다.
[편집] 바깥 고리
- 한국 리습 사용자 모임
- "Recursive Functions of Symbolic Expressions and Their Computation by Machine," John McCarthy, Massachusetts Institute of Technology, Cambridge, Mass. April 1960
- "The Evolution of Lisp," Guy L. Steel Jr, Richard P. Gabriel
- "Lisp - Notes On its Past and Future," John McCarthy, 1980
- "Structure and Interpretation of Computer Programs," Hal Abelson, Jerry Sussman and Julie Sussman
- John McCarthy 홈페이지
- Paul Graham 홈페이지
이 문서는 컴퓨터에 관한 토막글입니다. 서로의 지식을 모아 알차게 문서를 완성해 갑시다. |
주요 프로그래밍 언어 (더 보기) |
산업용: 델파이 | 루비 | 리스프 | 비주얼 베이직 | 스몰토크 | 어셈블리 | 얼랑 | 에이다 | 오브젝티브-C | 자바 | 자바스크립트 | 코볼 | 파이썬 | Perl | 포트란 | ABAP | AWK | C | C++ | C# | PHP | PL/SQL | SAS | sh | VB.NET |
역사적 의미가 있는 언어: 베이직 | 시뮬라 | 클리퍼 | 파워빌더 | ALGOL | APL | MUMPS | PL/I |
분류: 컴퓨터 토막글 | 함수형 프로그래밍 언어 | 프로그래밍 언어