46바이트 Forth부터 122줄 J 인터프리터까지, 작은 프로그램 예찬
- Dave Ratfactor가 Forth 구현 글에 대한 반응을 계기로 작은 프로그램과 언어의 매력을 정리한 카드 글을 2026-07-28에 게시함
- Philippe Brochard의 46바이트 Forth 구현을 hexdump 그대로 실어, 이 크기라면 누구나 뜯어볼 수 있다고 말함
- Roger K.W. Hui가 부록에 옮긴 Arthur Whitney의 J 인터프리터 Incunabulum은 하루 만에 한 페이지, 122줄의 C로 작성됨
- kOS는 Whitney의 k 언어와 kdb, GUI와 창 관리자를 합쳐 90KB 부팅 이미지에 담았고 GUI 부분은 60줄의 C로 구현됨
- William Byrd가 '가장 아름다운 프로그램'이라 부른 짧은 Lisp 인터프리터와 콜모고로프 복잡도를 들어, 작은 프로그램이 최소 복잡도에 관한 사실이라고 주장함
Hacker News 의견들
이거 진짜 재밌게 읽었음. 요즘 소프트웨어 개발이 좀 시들했는데 오랜 관심이 되살아나는 느낌이더라.
t3x.org도 좋아. JimTCL도 있음.
거기 정보 진짜 많더라. 공유 고마워.
난 uxn으로 쓸만한 거 몇 개 만들었음. 16진 디코더가 39바이트, JSON을 NDJSON으로 바꾸는 게 125바이트, DER을 TER 일부로 바꾸는 게 220바이트, BLAKE2s가 1024바이트(정렬 패딩 때문에 딱 1024로 떨어짐), 그래픽에 사운드, 폰트, 점수까지 넣은 카드게임이 1853바이트.
짧은 이유 중 하나는 에러 검사를 안 해서임. 카드게임은 합법적인 수인지 정도는 확인함. 아타리 2KB 게임 이야기도 기억나는데, 맵을 대칭으로 만드는 식으로 용량을 줄인 방법을 설명했더니 그때는 이미 4KB 카트리지가 있어서 퇴짜 맞았다더라.
작은 언어 얘기 나온 김에 Jon Bentley의 Little Languages랑 Randy Kaplan의 Constructing Language Processors for Little Languages도 봐봐.