Unix spell: 64KB RAM의 기적
2025-01-19

1970년대, Unix 스펠 체커는 믿을 수 없는 과제에 직면했습니다. PDP-11 컴퓨터의 고작 64KB RAM에 250KB 사전을 저장하는 것이었습니다. Douglas McIlroy의 독창적인 해결책은 다단계 접근 방식이었습니다. 처음에는 Bloom 필터가 빠른 조회를 제공했지만, 사전이 커짐에 따라 그는 새로운 해시 압축 스키마를 개발했습니다. 정렬된 해시 코드 간의 차이가 기하 분포를 따른다는 것을 인식하고 Golomb 부호화를 사용하여 거의 이론적 한계에 가까운 압축률을 달성했습니다. 마지막으로, 압축된 데이터를 분할하여 검색 속도를 더욱 향상시켰습니다. 이 이야기는 제약 조건이 있는 최적화에 대한 마스터 클래스이며, 영리한 알고리즘이 어떻게 불가능해 보이는 한계를 극복할 수 있는지 보여줍니다.
개발
압축