syllabus - ECE 468: Intro to Compilers and Translation...

Info iconThis preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon
ECE 468: Intro to Compilers and Translation Systems Engineering Fall 2011 Lectures: Mondays, Wednesdays and Fridays, 12:30–1:20, EE 115 Course web page: https://engineering.purdue.edu/~milind/ece468/2011fall/ Instructor: Milind Kulkarni ( [email protected] ) Of±ce: EE 324A Of±ce Hours: Mondays and Wednesdays, 2:30–3:30 and by appointment. TA: Eric Villasenor TA Of±ce Hours: TBD Course Description: This course covers the tools and techniques required to build a compiler for computer programs. The basics of compiler front ends (which translate a source program into an internal representation) will be covered in the ±rst third of the course. The remainder of the course will discuss “back-end” compiler techniques, such as register allocation, instruction scheduling and program analysis. Students will implement a full, front-to-back compiler for a simple programming language. Prerequisites: A solid grounding in C++, Java or some other high level programming language, as well as of data structures. Familiarity with assembly language and computer architectures is recommended, but not required. Note that the course project in this class is a large programming project—comfort with programming is a must! Textbook: Fisher and LeBlanc, Crafting a Compiler in C . Lectures and class notes will supplement the textbook. Course Outcomes: At the end of the course, a student who has successfully met the course objectives will be able to: 1. Describe and explain the terminology, representation and use of formal languages and grammars; 2. Describe and explain the terminology and techniques of lexical analysis, parsing, semantic actions and code generation; 3. Design and implement a compiler for a small language based on their knowledge of the previous two points. More speci±cally, at the end of the course, you will be able to: Explain the various passes of a compiler (scanners, parsers, semantic actions and code generation, register allocation and basic optimizations) and how they relate to the overall compilation process.
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Explain and implement the algorithms for each of these processes. Be able to implement each of these passes and integrate them into a full compiler. Explain program analysis techniques that are used for code optimization, such as dataFow analysis, def-use analysis, liveness analysis, etc. Describe basic code transformations and their application to program optimization. Course assessment: The achievement of course objectives will be assessed through a combination of problem sets (~1 a week), tests (2 midterms and a ±nal) and a substantial course project. The problem sets and tests will assess students ʼ achievement of the ±rst two outcomes, while the project will assess students ʼ achievement of the third outcome. Course grading:
Background image of page 2
Image of page 3
This is the end of the preview. Sign up to access the rest of the document.

This note was uploaded on 02/19/2012 for the course ECE 468 taught by Professor Test during the Fall '08 term at Purdue University.

Page1 / 6

syllabus - ECE 468: Intro to Compilers and Translation...

This preview shows document pages 1 - 3. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online