본문으로 건너뛰기
0
r/jeffnews HN 약 3분

C 언어 서브셋으로 셀프 컴파일링 컴파일러 만들기 — 64파트 실습 여정

general

요약

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

기사 전체 정리

C 언어 서브셋으로 셀프 컴파일링 컴파일러 만들기 — 64파트 실습 여정

  • 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이라는 새 언어를 처음부터 새로 만들고 있다고 함

💡

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

핵심 포인트

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

인사이트

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

댓글

댓글

댓글을 불러오는 중...

general

버티컬 SaaS 만들려고 해충방제 기사 취직했던 썰.txt

SaaS 창업 아이디어 검증하려고 실제로 해충방제 업체에 취직해버린 미친 사람 등장. 13일 만에 자격증 따고 21일 만에 $30k ARR 클로징하는 레전드 행보. 결국 직접 회사 인수해서 처음부터 만들겠다는 결론.

general

Apple, 버그 안 고치고 '확인해봐' 요청 후 닫아버리는 거 실화?

개발자가 3년 전에 신고한 버그를 Apple이 묵묵부답으로 방치하다가, 갑자기 베타 버전에서 '버그 고쳐졌는지 확인해줘'라고 요청함. 근데 실제론 안 고쳤고, 확인 안 하면 그냥 닫겠다고 협박한 레전드 상황. Hacker News 터지고 나서야 Apple이 반응했는데 그것도 별 쓸모없는 sysdiagnose 요청임 ㅋㅋ

general

미국의 이란 전쟁, 왜 처음부터 망한 도박이었나 - 군사사학자 분석

군사사학자 브렛 데버로우가 미국의 이란 전쟁을 전략적 관점에서 분석했는데 결론은 '개망한 도박'임. 초기 정권붕괴 시나리오는 실패했고, 호르무즈 해협이 사실상 봉쇄되면서 미국은 진퇴양난에 빠진 상황. 전술적으론 이기고 있지만 전략적으론 얻은 게 없다는 게 핵심 주장임.

general

충돌 사고 테슬라 부품으로 내 책상 위에 Model 3 컴퓨터 올려놓기 ㄷㄷ

테슬라 버그바운티 참여하려고 eBay에서 사고 차량 부품 긁어모아서 Model 3 MCU+터치스크린을 책상 위에서 부팅시키는 데 성공한 개발자 이야기임. 케이블 하나 구하려다 PCB 태워먹고, 수리하고, 결국 차량 전체 배선 하네스까지 구매하는 험난한 여정 ㅋㅋ

general

AI 코딩 에이전트 때문에 소프트웨어가 개판 됐는데 아무도 모름

코딩 에이전트 등장 1년 만에 소프트웨어 품질이 심각하게 떨어지고 있다는 경고. 에이전트한테 다 맡기다 보니 코드베이스가 감당 안 되는 복잡성 덩어리로 변해가는 중. 필자는 '속도 좀 줄이고 인간이 다시 주도권 잡아야 함'이라고 주장함.