기타 Hacker News · 6일 전

단 64KB 메모리 시절엔 LISP를 어떻게 돌렸을까? (10톤 컴퓨터의 추억)

핵심 요약
  • 1960년 MIT의 10톤짜리 IBM 704 컴퓨터부터 소형 모델까지, 극도로 제한된 메모리 환경에서 LISP가 동작하던 구조를 설명합니다.
  • 현대의 Kilo LISP는 불과 64KB 메모리 환경(PCDOS 소형 모델)에서도 엔진과 8,192개의 cons cell을 구동할 수 있습니다.
  • 오늘날 저가 스마트폰으로도 수십 배 빠르게 에뮬레이트 가능한 초창기 컴퓨터들의 메모리 극한 활용법을 조명합니다.
요약 1960년대 초반 컴퓨터 역사의 초창기 시절, 단 64KB의 메모리 환경에서 LISP(리스프) 프로그래밍 언어를 구동하던 시절의 흥미로운 기술적 배경이 소개되었습니다. 1960년 MIT에서 LISP가 최초로 구현된 컴퓨터인 IBM 704는 약 10톤에 달하는 무게와 강화된 바닥, 대형 산업용 에어컨이 완비된 전용 대형 룸이 필요했습니다. 이 기계는 페라이트 코어 링으로 이루어진 36비트 32K 워드 메모리(총 1,183,608개의 링)를 탑재했는데, 시스템 자체가 12K 워드를 차지하고 나머지 약 2만 개 미만의 cons cell 공간을 LISP 작업에 할당할 수 있었습니다. 당시엔 코드가 천공 카드나 텔레타이프 종이에 직접 출력되었기 때문에 최대한 줄 수를 줄여서 코딩해야 했습니다. 반면 1964년 등장한 DEC의 소형 컴퓨터 PDP-1에서는 단 4096워드(18비트) 메모리 환경에서도 약 2000개의 셀을 활용해 LISP를 돌리기도 했습니다. 현대에 개발된 C89 기반 이식형 시스템인 '키로 리스프(Kilo LISP)'는 단 64KB 메모리의 PCDOS 환경에서도 실행되도록 설계되었습니다. 시스템 엔진이 약 13KB를 차지하고, 남은 공간에 셀당 5바이트(car 16비트, cdr 16비트, 태그 3비트)를 할당해 총 8192개의 cons cell을 운용할 수 있습니다. 이는 거대한 IBM 704의 절반 수준이자 초소형 PDP-1의 4배에 달하는 용량입니다. 과거 IBM 704(40kHz)와 PDP-1(150kHz)은 오늘날 보급형 스마트폰으로 모바일 게임을 하면서도 수십 배 빠르게 에뮬레이트할 수 있을 정도로 느렸지만, 어셈블리어로 정교하게 짜인 초창기 LISP 시스템은 지극히 제한된 메모리 속에서도 놀라운 컴퓨팅을 가능하게 했습니다.
Sponsored · 광고