코넬대학교 컴퓨터과학과(Cornell CS)의 박사 수준 강좌인 'CS 6120: 고급 컴파일러'가 온라인 자기주도 학습 버전으로 무료 공개되어 개발자들의 주목을 받고 있습니다. 이 강좌는 컴파일러와 프로그래밍 언어 구현에 대한 체계적인 지식을 제공하며, 중간 표현(intermediate representation), 데이터 흐름(data flow), 최적화(optimization), 병렬화(parallelization), JIT(Just-In-Time) 컴파일, 가비지 컬렉션(garbage collection) 등 핵심 주제를 폭넓게 다룹니다.
자기주도 버전은 실제 코넬대 수업과 유사하게 영상 강의, 필기 노트, 관련 논문 읽기, 그리고 구현 과제로 구성됩니다. 특히 실습에서는 업계 표준 컴파일러 인프라인 LLVM과 교육용 중간 표현(IR)인 Bril을 사용하여 추상적인 컴파일러 개념을 실제 코드로 구현하며 익힐 수 있도록 설계되었습니다. 수강생은 과제 마감일 없이 자유롭게 학습할 수 있지만, 실제 수업의 토론 스레드 참여는 제한됩니다. 모든 강좌 자료는 GitHub에 오픈소스(open source)로 공개되어 있어 누구나 접근하고 개선에 기여할 수 있습니다.
이 강좌는 단순히 컴파일러의 기초를 넘어, 연구 성격의 심화 주제까지 다루는 것이 특징입니다. 특히 동적 컴파일러(dynamic compiler) 부분에서는 트레이스 컴파일(trace compilation)과 같은 고급 기법을 깊이 있게 탐구합니다. 이는 파이토치(PyTorch)의 `torch.compile`이나 JAX와 같은 최신 프레임워크에서 활용되는 기술로, 현대 프로그래밍 언어 및 런타임 환경의 성능 최적화에 필수적인 지식입니다. 컴파일러 백엔드(backend) 구현에 대한 갈증을 느끼던 개발자들에게 이 강좌는 이론과 실무를 겸비한 귀중한 학습 기회가 될 것입니다.