리스프가 어떻게 달랐는가
## 리스프가 어떻게 달랐는가
주요 내용: 리스프(Lisp)는 1950년대 말 당시 기존 프로그래밍 언어와는 크게 다른 혁신적인 개념들을 도입하며, 차츰 주요 프로그래밍 언어의 발전에 지대한 영향을 미쳤다.
요약
조건문(Conditionals): 리스프는
if-then-else
조건문을 최초로 도입, 이후 모든 주요 언어로 확산됨.함수형 데이터 타입(Function as a first-class type): 함수도 숫자나 문자열처럼 변수에 저장하고 값으로 취급 가능.
재귀(Recursion): 수학적 개념으로 존재했던 재귀를 프로그래밍 언어에서 처음으로 구현.
포인터로서의 변수(Variables as pointers): 변수는 포인터로 동작, 값 자체가 아닌 참조를 저장.
가비지 컬렉션(Garbage Collection): 메모리 관리 자동화를 구현.
표현식 기반의 프로그램(Programs made of expressions): 모든 프로그램을 표현식으로 구성하여 자유롭게 조합 가능.
심볼 타입(Symbol type): 문자열과 유사하지만 비교는 포인터를 통해 수행하는 심볼 타입 도입.
트리 구조로 표현된 코드(Tree notation for code): 코드가 심볼 트리로 구성되어 읽고 수정하기 용이.
언제나 사용 가능한 언어(Language always available): 실행, 컴파일, 읽기를 언제든지 혼합 가능하며 이를 기반으로 매크로와 확장 언어 생성.
결론: 당시 하드웨어 제약과 포트란의 한계에서 출발했으나, 리스프의 주요 개념들은 차츰 확산되어 현대 언어들에 통합되었음.
What Made Lisp Different - (폴 그레이엄 에세이 요약)


