picol: 500줄 코드로 구현한 Tcl 인터프리터
발행: (2026년 2월 16일 오후 05:04 GMT+9)
3 분 소요
원문: Hacker News
Source: Hacker News
Picol은 약 500줄의 C 코드로 작성된 Tcl‑유사 인터프리터입니다(파서만 해도 대략 250줄 정도). 2007년 3월 15일에 처음 출시되었으며 원본 기사 주요 내용을 함께 GitHub에 보관하고 있습니다.
Rules
코드를 만들 때 다음과 같은 목표를 염두에 두었습니다:
- 익숙한 들여쓰기와 주석을 사용한 일반적인 C 코딩 스타일을 사용합니다.
- 인터프리터를 실제 Tcl 구현과 유사하게 설계하여 인터프리터 작성에 처음 도전하는 사람들에게 유용한 학습 예제가 되도록 합니다.
- 인터프리터가 단순히 “변수를 설정하고 hello world를 출력”하는 수준을 넘어, 비 trivial한 프로그램을 실행할 수 있도록 보장합니다.
The resulting interpreter: Picol
파서는 Tcl과 매우 가깝고, Picol은 보간을 지원합니다:
set a "pu"
set b {ts}
$a$b "Hello World!"
Picol은 대화형 셸을 제공합니다; 인자를 주지 않고 실행 파일을 실행하면 됩니다.
Compilation
gcc -O2 -Wall -o picol picol.c
Running a script
picol filename.tcl
Supported features
- 문자열 보간 (예:
"2+2 = [+ 2 2]"또는"My name is: $foobar"). return이 있는 프로시저;return을 생략하면 마지막 명령의 결과가 반환됩니다.- 제어 구조:
if,if … else …,while(break와continue포함). - 재귀.
- Tcl과 마찬가지로 호출 프레임을 통한 적절한 변수 스코핑.
- 내장 명령:
set, 산술 연산자 (+,-,*,/), 비교 연산자 (==,!=,>,=).
“거대한 프로그램 안에는 탈출하려는 작은 프로그램이 있다.” – Sir Tony Hoare