고급 컴파일러: 자기 주도 온라인 코스
출처: 해커 뉴스
CS 6120: 고급 컴파일러: 셀프가이드 온라인 강좌
CS 6120은 프로그래밍 언어 구현을 다루는 박사 수준의 코넬 CS 교수인 애드리언 샘프슨 과정입니다.
이 과목은 중간 표현, 데이터 흐름, 그리고 “전통적인” 최적화와 같은 보편 컴파일러 주제를 다루며, 병렬화, JIT 컴파일레이션, 가비지 컬렉션과 같은 연구 지향적인 주제도 포함합니다.
과제는 논문 읽기와 오픈소스 해킹 과제를 포함하며, 이 과제들은 LLVM와 이 수업 전용 교육용 IR을 사용합니다.
이 페이지는 상상의 대학에서 이 과정을 수강하는 커리큘럼을 네 학점(성적 미반영)으로 정리한 것입니다.
수업과 논문으로 구성된 선형 타임라인이 있습니다.
각 수업에는 영상과 작성된 노트가 있으며, 일부는 구현 과제가 포함되어 있습니다.
과제는 모두 개방형이며, 다양한 정도에서 열린 형태로 구성되어 있으며, 실제 코드로 변환함으로써 추상적인 개념에 대한 이해를 강화하도록 설계되었습니다.
이 순서는 영상 시청과 논문 읽기를 적절히 섞는 것을 제안하는 순서입니다.
실제 CS 6120과 차이점으로는 과제 마감일을 무시할 수 있고, Zulip 토론 스레드에 참여할 수 없다는 점이 있습니다.
실제 CS 6120은 학기 말 프로젝트가 있지만, 셀프가이드 버전에서는 컴파일의 마법을 통해 세상을 바꾸는 과제를 수행합니다.
강사는 영상 제작 초보라서 초기 수업의 품질이 낮을 수 있으니 양해 부탁드립니다.
CS 6120은 오픈소스이며 GitHub에 게시되어 있으니 문제가 발견되면 보고해 주세요.
과정을 마치면 이 피드백 양식을 작성해 주세요.
[수업 1: 소개 및 개요](https://www.cs.cornell.edu/courses/cs6120/2025fa/lesson/1/)환영 및 개요
아무것도 명백히 잘못하지 않은 채 잘못된 데이터 생성!
Todd Mytkowicz, Amer Diwan, Matthias Hauswirth, and Peter F. Sweeney. ASPLOS 2009.
[수업 2: 프로그램 표현](https://www.cs.cornell.edu/courses/cs6120/2025fa/lesson/2/)프로그램 표현
[수업 3: 지역 분석 및 최적화](https://www.cs.cornell.edu/courses/cs6120/2025fa/lesson/3/)지역 분석 및 최적화
[수업 4: 데이터 흐름](https://www.cs.cornell.edu/courses/cs6120/2025fa/lesson/4/)데이터 흐름
[수업 5: 전체 분석](https://www.cs.cornell.edu/courses/cs6120/2025fa/lesson/5/)전체 분석
[수업 6: 정적 단일 할당](https://www.cs.cornell.edu/courses/cs6120/2025fa/lesson/6/)정적 단일 할당
[수업 7:](https://www.cs.cornell.edu/courses/cs6120/2025fa/lesson/7/)LLVM
[수업 8:](https://www.cs.cornell.edu/courses/cs6120/2025fa/lesson/8/)루프 최적화
[수업 9:](https://www.cs.cornell.edu/courses/cs6120/2025fa/lesson/9/)인터프로시널 분석
[수업 10:](https://www.cs.cornell.edu/courses/cs6120/2025fa/lesson/10/)별칭 분석
[수업 11:](https://www.cs.cornell.edu/courses/cs6120/2025fa/lesson/11/)메모리 관리
[수업 12:](https://www.cs.cornell.edu/courses/cs6120/2025fa/lesson/12/)동적 컴파일러
[수업 13:](https://www.cs.cornell.edu/courses/cs6120/2025fa/lesson/13/)동시성과 병렬성