About CS 3020 A
Covers the design and construction of compilers and translation of high-level programming languages to assembly language. Topics include code representation, register allocation, optimization, static analysis, mutable data, garbage collection, and compilation of higher-order language features. Prerequisites: CS 2240, CS 2250.
Notes
Prereqs enforced by they system: CS 2240 & CS 2250; Open to Degree and PACE students
Section URL
Section Description
This course covers the design and construction of compilers. You'll learn learn how to translate a series of high-level programming languages all the way into Intel x86 assembly language. The course will be taught using Python and Intel x86 assembly language. Instead of learning about each phase of the compilation process sequentially, we'll start by compiling a tiny language directly into assembly code. Each week, we'll add a new feature to our language, and learn about all the phases needed to compile that feature into assembly. At each step, you'll have a functioning compiler that can run real code; by the end of the course, your compiler will work on a realistic programming language including first-class functions. Topics covered include: 1. representation and analysis of code 2. register allocation 3. static type checking 4. garbage collection 5. code generation 6. optimization
Section Expectation
This course will be structured around lectures and a weekly programming assignment. Each lecture will cover a new language feature and the techniques needed to compile it; in the corresponding programming assignment, you will implement support for the new feature in your own compiler. Students should expect to spend 5-6 hours per week outside of class on the weekly programming assignments. Programming assignments will be completed in Python. The required materials for this course are all freely available online.
Evaluation
Your grade will be based on weekly programming assignments, in-class exercises, and a final project.
Important Dates
Note: These dates may change before registration begins.
Note: These dates may not be accurate for select courses during the Summer Session.
Courses may be cancelled due to low enrollment. Show your interest by enrolling.
Last Day to Add | |
---|---|
Last Day to Drop | |
Last Day to Withdraw with 50% Refund | |
Last Day to Withdraw with 25% Refund | |
Last Day to Withdraw |
Resources
There are no courses that meet this criteria.
Interest Form
Remind yourself about CS 3020 A.
We'll send you a reminder before Spring 2025 registration begins.