본문으로 건너뛰기
피드

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

general 약 2분
vote
0
댓글
북마크

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

  • 1

    64파트 단계별 실습으로 셀프 컴파일링 컴파일러 완성

  • 2

    ARM, QBE, 6809 CPU 등 멀티 아키텍처 백엔드 지원

  • 3

    Part 60에서 트리플 테스트 통과

  • 4

    이론보다 실전 중심 구성

  • 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개 파트를 다 따라가면 셀프 컴파일링까지 도달함.

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

댓글

댓글

댓글을 불러오는 중...

general

존 카맥이 돌아본 초기 id 소프트웨어의 실수들

존 카맥이 퀘이크 개발 당시의 기술적 과욕, 팀 운영, 지분 구조 문제를 직접 돌아봤다. 퀘이크 자체는 엄청난 성취였지만, 그 과정에서 회사와 사람들에게 너무 큰 부담을 줬다는 반성에 가깝다.

general

정부, 공공부문을 ‘AI 민주정부’로 바꾸겠다는 전략 공개

행정안전부가 전자정부의 날 행사에서 공공 인공지능 전환 전략인 ‘세계 최고의 AI 민주정부 실현 전략’을 발표했다. 핵심은 행정 효율화에 그치지 않고 국민 의견 수렴, 정책 참여, 행정 역량 강화를 AI로 밀어보겠다는 구상이다.

general

워드 빨간 밑줄을 만든 토니 크루거를 기억하며

마이크로소프트 워드의 빨간 맞춤법 밑줄과 초록 문법 밑줄을 처음 만든 개발자 토니 크루거를 기리는 글이다. 예전에는 사용자가 직접 맞춤법 검사를 실행하고 기다려야 했지만, 토니는 이 기능을 백그라운드에서 덜 거슬리게 만들고 오류를 즉시 화면에 표시하는 방식으로 바꿨다. 지금은 거의 모든 문서 편집기와 개발 도구에 비슷한 표시가 들어갔다는 점에서, 조용하지만 엄청나게 널리 퍼진 사용자 경험 개선 사례다.

general

삼성전자, AI 모듈러 홈 3년 안에 1만 채 팔겠다고 선언

삼성전자가 공장에서 80% 이상 제작되는 AI 모듈러 홈을 3년간 누적 1만 채 판매하겠다는 목표를 밝혔다. 스마트싱스 기반 보안, 화재·누수 알림, 에너지 절감, 방문자 맞이 자동화까지 주거 솔루션을 패키지로 묶는 전략이다.

general

중기부, 딥테크 7개 팀에 예비연구 티켓 줬다

중기부가 생태계혁신형 딥테크 챌린지 프로젝트 예비연구팀 7곳을 출범시켰다. 206개 컨소시엄 중 7개가 뽑혀 41대 1 경쟁률을 통과했고, 최종 5개 과제에는 4년간 최대 200억 원의 연구개발 지원이 붙는다.