CS-415: Compilers


01:198:415  	Compilers

Offered in:     SPRING ONLY

Credits:        4

Objectives: 	To reveal the general concepts and theoretical 
		foundations of programming language translation 
		and implementation.  Emphasis will be placed on 
		imperative languages.

                Recommended for all students interested in 
		programming languages and techniques used to 
		build software tools (i.e., debuggers, browsers).

Prerequisites:  01:198:211 Computer Architecture (or 14:330:337)
                01:198:314 Programming Languages 

Outline:        Compilers
                Methods of language specification
                Lexical analysis
                Top-down (recursive descent) and bottom-up (LR) 
			parsing methods
		Semantics-driven translation
                Code generation
                Symbol tables and intermediate code forms
                Procedures and run time stacks
                Recursion implementation
		Code Optimization

Expected Work: 	Work will consist primarily of a large 
		programming project, usually the implementation 
		of a working compiler for a simulated abstract 
		machine.  Some additional written homework will 
		be assigned.  Previous knowledge of C or C++ 
		will be useful.

Examinations:  	A midterm and a final examination.

Texts:          Aho, Sethi & Ullman
                ''Compilers: Principles, Techniques, and Tools"
                Addison-Wesley, 1986