ECE 59500 - Introduction to Compilers I: Compiler Basics
This is a 5-week course for fully online students. On-campus student will take ECE 57300.
Lecture Hours: 3 Credits: 1
Areas of Specialization:
- Computer Engineering
Requisites by Topic:
Comfort with programming, especially data structures and recursion. Experience with object-oriented programming is also beneficial.
This course is an introductory course on compilers. We will cover the full path that a compiler takes in translating high-level source code (e.g., in a language like C) to assembly code that can be run on a machine. We will cover the processes of translating source code into a compiler's intermediate representation, then generating code from that intermediate representation. Students will also build a basic compiler that translates C code into RISC-V assembly.
- Engineering a Compiler , Second Edition , Cooper, Keith, Linda Torczon , Safari, an O'Reilly Media Company , 2011
A student who successfully fulfills the course requirements will have demonstrated an ability to:
- Explain regular expressions and lexing procedures
- Explain context-free grammars and LL(1) parsing
- Explain semantic actions and AST construction
- Explain how to translate ASTs into executable code
- Build a basic compiler that can translate a program into executable code
|4||Type checking in compilers|
|6||Optimization: Common subexpression elimination|
|7||Optimization: Dead code elimination|
|8||Local register allocation|
|9||Global register allocation|
Problem sets, programming assignments, final exam. (11/2021)