순수 셸 스크립트로 구현한 C89 컴파일러 'C89cc.sh' 공개...외부 도구 없이 x86-64 바이너리 생성...임베디드 시스템 활용 기대
2026년 4월 3일
1분

[한국정보기술신문] 셸 스크립트만을 사용해 완전한 C89 컴파일러를 구현한 'C89cc.sh' 프로젝트가 공개됐다. 이 컴파일러는 외부 명령어나 컴파일된 도구 없이 셸 인터프리터만으로 x86-64 ELF64 바이너리를 생성할 수 있다.
최소주의 접근법의 극한
C89cc.sh는 POSIX 호환 셸 스크립트로만 작성된 독립형 C89 파서 겸 컴파일러다. ISC 라이선스 하에 2026년 출시된 이 프로젝트는 복잡한 컴파일 도구체인을 외부 의존성 없이 구현할 수 있음을 증명했다. 내장된 libc 지원 기능을 포함하거나 외부 라이브러리와 연결할 수 있다.
컴파일러는 정교한 다단계 구조를 채택했다. 표준 입력에서 어휘 분석과 추상 구문 트리 구성을 수행한다. 188개 이상의 파서 상태를 가진 상태 기계 기반 파싱을 사용한다. 표현식 평가를 위한 우선순위 클라이밍 알고리즘도 구현했다.
코드베이스는 셸 환경의 제약 내에서 전문화된 모듈들을 통합했다. 문자열 조작, 입출력 처리, 위치 추적, 오류 보고, 추상 구문 트리 관리 등이 모두 셸 기능만으로 구현됐다. 이는 전통적 컴파일러 이론을 최소한의 도구로 실현한 사례다.
자원 제약 환경의 혁신
이 프로젝트는 자원 제약 환경에서도 정교한 컴파일러 인프라가 가능함을 보여준다. 전통적 빌드 체인에 대한 기존 가정에 도전하며 최소한의 도구로 가능한 한계를 확장했다. 임베디드 시스템처럼 도구 가용성이 제한된 환경에서 특히 의미가 크다.
컴파일러 설계의 교육적 탐구와 최소주의적 접근을 통한 언어 구현 이해에 활용할 수 있다. 전통적 빌드 체인에 접근할 수 없는 시스템에서도 컴파일 기능을 제공한다. 정확성과 완전성을 성능보다 우선시해 교육 목적과 호환성 확보에 중점을 뒀다.
임베디드 시스템 활용 전망
도구 가용성이 제한된 임베디드 시스템에서 C 코드 컴파일이 필요한 상황에 직접 활용할 수 있다. 부트스트래핑이나 최소 환경에서의 개발 도구 구축에도 응용 가능하다. 특히 마이크로컨트롤러나 실시간 운영체제 환경에서 유용할 것으로 예상된다.
이번 프로젝트는 컴파일러 구현에 대한 새로운 관점을 제시한다. 복잡한 도구 없이도 완전한 언어 처리기를 만들 수 있음을 증명하며, 컴파일러 교육과 연구에 새로운 방향을 제시할 것으로 보인다.
한국정보기술신문 정보기술분과 유상헌 기자 news@kitpa.org



