CSC 450 Programming Languages and Compilers I

Fall 2009 -- TR 11:50-1:20

Larry Ragland, (651) 487-9086, ragland@augsburg.edu

Text: Compiler Construction: Principles and Practice, by Kenneth C. Louden

This course covers the principles that govern the design and implementation of programming languages. The topics include formal languages, programming language syntax and semantics, parsing, interpretation, and code generation.

The course will include homework, examinations, and a compiler project. You should expect to devote considerable time to the compiler project.

Students are expected to be familiar with Augsburg College policies regarding academic honesty and will be required to sign a statement indicating an understanding of these policies. Programs that you hand in must represent your own work. I encourage you to exchange design ideas on programs, but what you hand in must be your own. Copying of programs is not permitted.

Students who have any disability for which some accomodation would be helpful are urged to contact me.

Date Topics Project (approximate dates)
Sep 10 Ch 1 Introduction -- Go over project



15 Ch 1 Introduction
17 Ch 2 Scanning -- Start scanner



22 Ch 2 Scanning
24 Ch 2 Scanning



29 Ch 3 Context-Free Grammars and Parsing
Oct 1 Ch 3 Context-Free Grammars and Parsing



6 Ch 3 Context-Free Grammars and Parsing
8 Ch 3 Context-Free Grammars and Parsing -- Start parser



13 Ch 3 Context-Free Grammars and Parsing
15 Ch 4 Top-Down Parsing -- Scanner due



20 Exam I Chapters 1-3
22 Ch 4 Top-Down Parsing



27 Ch 4 Top-Down Parsing
29 Ch 4 Top-Down Parsing



Nov 3 Ch 5 Bottom-Up Parsing
5 Ch 5 Bottom-Up Parsing



10 Ch 5 Bottom-Up Parsing
12 Symbol Table Handler and Type Checking -- Start symbol table handler



17 Symbol Table Handler and Type Checking
19 Symbol Table Handler and Type Checking



24 Symbol Table Handler and Type Checking
26 Thanksgiving



Dec 1 MIPS
3 MIPS -- Parser due



8 MIPS
10 MIPS -- Symbol table handler due



21 10:15-12:15 Exam II Chs 1-5, Symbol Table



Grading
50% Exams
50% Homework and programs
The course grade can not be more than 1.0 higher than the project grade.