Computer Language Engineering
Course Description
6.035 is a course within the department's "Computer Systems and Architecture" concentration. This course analyzes issues associated with the implementation of high-level programming languages. Topics covered include: fundamental concepts, functions, and structures of compilers, basic program optimization techniques, the interaction of theory and practice, and using tools in building software. The course features a multi-person project on design and implementation of a compiler that is written in Java® and generates MIPS executable machine code. This course is worth 8 Engineering Design Points.
Lecture Notes
In addition to downloadable lecture notes, video and audio files of select lecture (L) and recitation (R) sessions are provided below.
(S): Session taught by Professor Saman Amarasinghe
(M): Session taught by Professor Martin Rinard
(M): Session taught by Professor Martin Rinard
SES # | TOPICS | VIDEOS | AUDIO |
---|---|---|---|
L1 | Course Administration Information and Overview (S) (PDF) | (RM ‑ 56K) (RM ‑ 220K) | (MP3 ‑ 11.3MB) |
R1 | Scanner Parser Project (PDF) (Courtesy of Punyashloka Biswal. Used with permission.) | (RM ‑ 56K) (RM ‑ 220K) | (MP3 ‑ 11.2MB) |
L2 | Overview of Programming Languages (M) | ||
L3 | Regular Expressions, Language Specification by Formal Grammars (M) (PDF) | ||
L4 | Parse Table Construction (M) (PDF) | ||
L5 | Top-down Parsing (M) (PDF) | ||
L6 | Intermediate Representations (M) (PDF) | ||
L7 | Semantic Analysis (M) (PDF) | ||
L8 | Unoptimized Code Generation (S) (PDF) | (RM ‑ 56K) (RM ‑ 220K) | (MP3 ‑ 13.3MB) |
L9 | Unoptimized Code Generation (cont.) (S) (PDF) | (RM ‑ 56K) (RM ‑ 220K) | (MP3 ‑ 13.3MB) |
L10 | Introduction to Program Analysis and Optimization (M) (PDF) | ||
L11 | Data-flow Analysis (M) (PDF) | ||
L12 | Data-flow Optimizations (M) (PDF) | ||
L13 | Foundations of Data-flow Analysis (M) (PDF) | ||
L14 | Instruction Scheduling (S) (PDF) | (RM ‑ 56K) (RM ‑ 220K) | (MP3 ‑ 11.9MB) |
L15 | Instruction Scheduling (cont.) (S) (PDF) | (RM ‑ 56K) (RM ‑ 220K) | (MP3 ‑ 11.4MB) |
L16 | Register Allocation (S) (PDF) | (RM ‑ 56K) (RM ‑ 220K) | (MP3 ‑ 11.5MB) |
L17 | Putting it all Together (S) (PDF) | (RM ‑ 56K) (RM ‑ 220K) | (MP3 ‑ 9.1MB) |
L18 | Compiler Derby (S) |
No comments:
Post a Comment