노틀담 대학교(University of Notre Dame)의 더글러스 테인(Douglas Thain) 교수가 컴퓨터 과학 학부생들을 위한 '컴파일러 및 언어 설계 입문(Introduction to Compilers and Language Design)' 온라인 교재를 무료로 공개했습니다. 이 교재는 학생들이 C언어와 유사한 고급 언어를 X86 또는 ARM 어셈블리어(assembly language)로 번역하는 간단한 컴파일러(compiler)를 직접 구축할 수 있도록 설계되었습니다. 컴파일러 제작은 컴퓨터 과학의 이론적, 실용적 측면을 깊이 이해하는 데 필수적인 과정으로 여겨집니다.
이 교재는 C 프로그래밍 경험과 자료 구조, 컴퓨터 아키텍처(computer architecture) 과목을 수강한 학부생에게 가장 적합합니다. 스캐닝(scanning), 파싱(parsing), 추상 구문 트리(Abstract Syntax Tree), 의미 분석(Semantic Analysis), 코드 생성(Code Generation) 등 컴파일러 구축의 모든 주요 단계를 다루며, 각 장별 PDF 파일로 제공됩니다. 또한, 교재와 연동되는 GitHub 저장소에는 스캐너 및 파서 예시, 프로젝트 시작 코드, 테스트 케이스 등 풍부한 자료가 포함되어 있어 학생들이 실습을 통해 학습할 수 있도록 돕습니다. 2020년에 2판이 발행되었으며, 저작권은 개인 및 학술적 용도로 PDF 다운로드 및 사용을 허용하고 있습니다.
이번 무료 교재 공개는 컴퓨터 과학 교육에 대한 접근성을 높이고, 학생들이 컴파일러와 같은 복잡한 시스템의 내부 작동 원리를 직접 체험하며 깊이 있는 지식을 습득할 수 있는 중요한 기회를 제공합니다. 컴파일러 설계는 단순히 코드를 번역하는 기술을 넘어, 프로그래밍 언어의 구조와 컴퓨터 시스템의 동작 방식을 이해하는 데 필수적인 '통과의례'로 불립니다. 이러한 실질적인 경험은 미래 소프트웨어 개발자 및 연구자들에게 견고한 기초를 마련해 줄 것입니다.