---
title: "C 언어 서브셋으로 셀프 컴파일링 컴파일러 만들기 — 64파트 실습 여정"
published: 2026-03-24T23:44:47.000Z
canonical: https://jeff.news/article/977
---
# C 언어 서브셋으로 셀프 컴파일링 컴파일러 만들기 — 64파트 실습 여정

Warren Toomey가 C 언어 서브셋용 셀프 컴파일링 컴파일러를 만들어가는 과정을 64개 파트로 정리한 GitHub 저장소. 렉서부터 파서, 타입, 포인터, 구조체까지 단계적으로 구현하며 트리플 테스트까지 통과한다.

- Warren Toomey가 C 언어의 서브셋을 위한 **셀프 컴파일링 컴파일러**를 직접 만들어가는 과정을 64개 파트로 정리한 GitHub 저장소임. 이론보다는 실전 중심이라 따라 만들면서 배울 수 있는 구조

- 렉서(lexical scanning) → 파서(parsing) → 연산자 우선순위 → 실제 컴파일러 → 변수, 제어문, 함수, 타입, 포인터, 배열, 구조체/유니온/열거형, 전처리기까지 차근차근 진행됨. Part 60에서 **트리플 테스트(자기 자신을 컴파일하는 컴파일러가 다시 자기를 컴파일)**를 통과함

- 특히 인상적인 건 Part 14에서 **ARM 어셈블리 코드 생성**, Part 63에서 **QBE 백엔드**, Part 64에서 **6809 CPU 백엔드**까지 다룬다는 점. 단순 토이 프로젝트가 아니라 멀티 아키텍처까지 확장함

- Nils M Holm의 SubC 컴파일러에서 코드와 아이디어를 빌려왔다고 밝히고 있고, 소스 코드는 GPL3, 문서는 CC BY-NC-SA 4.0 라이선스

- 저자는 이 프로젝트를 마치고 현재 **alic**이라는 새 언어를 처음부터 새로 만들고 있다고 함

> [!TIP]
> 컴파일러에 관심 있지만 드래곤 북이 너무 무겁게 느껴졌다면, 이 저장소가 훨씬 실용적인 진입점이 될 수 있음. 64개 파트를 다 따라가면 셀프 컴파일링까지 도달함.

## 핵심 포인트

- 64파트 단계별 실습으로 셀프 컴파일링 컴파일러 완성
- ARM, QBE, 6809 CPU 등 멀티 아키텍처 백엔드 지원
- Part 60에서 트리플 테스트 통과
- 이론보다 실전 중심 구성

## 인사이트

드래곤 북 같은 이론서가 부담스러웠다면, 실전 코드와 함께 단계별로 따라갈 수 있는 이 저장소가 컴파일러 입문에 최적.
