![]()
Course CSC 436 – Compiler Design
Description
A compiler is a program
that takes a source program in one language and translates it into a target
language. This is an
introductory course to the theory, design and implementation of compilers. A
typical compiler development includes programming languages, machine
architecture, language theory and algorithm and software engineering.
We will cover the following compiler topics, including lexical analysis,
Syntax Analysis, Syntax-Directed Translation, Semantic Analysis, Code
Generation, and Code optimization techniques. Compiler Generation tools and
XML parsers and tools may be covered as time permits.
Prerequisites CSC 310 and CSC 330
Time & Room T-Th 4:00pm-5:50pm, Nethken 243
Course URL www.latech.edu/~box/compiler
Instructor Dr. Chokchai (Box) Leangsuksun
Office Nethken 237
Office Hours M-W-F 8am-10:00am. T-Th 2:00pm-4:00pm or by an appointment
Phone 257-3291
e-mail box@coes.latech.edu
.NET passport leangsuksun@hotmail.com (IM, VOIP SIP phone)
Grader Sonal Dekhan, ssd002@latech.edu
Texts Compilers: Principles, Techniques, and Tools,
by Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman
Publisher: Addison-Wesley Pub Co; ISBN: 0201100886; (January 1986).
In addition to materials from the above main textbook, I’ll provide more references (URL or some books) when we discuss on some particular topics in the programming projects..
Grading Policy 3-4 Programming Projects 40%
3-4 Homework assignments 10%
Midterm Examination 20% Tuesday, January 21
Final Examination (comp.) 25% Thursday, February 27
Class Participation 5%
Term Paper (Grad student) 5% (Grad student grading scale is 105/100)
Programming There will be three programming projects and objective. I will explain
Projects more detail for each project and my expectation. Additional references will be provided in the class.
Class Materials
| Date | Topics |
| 12/5/2002 | Class syllabus and Introduction to Complier design. Ant XML build tool and sample configuration |
| 12/10/2002 | chapter 2 one pass compiler |
| 12/12/2002 | chapter 2 one pass compiler & Java StreamTokenizer example |
| 12/17/2002 | chapter 3 Lexical Analysis & project 1 Tokenizer in Java |
| 12/19/2002 | JLex and JLex library jar file & Class presentation (originally from wisc u) |
| 1/7/2003 | Chapter 4 Syntax analysis and ant build sample file & directory structure |
| 1/9/2003 | Chapter 4 Syntax analysis (top-down parsing) and Homework 1 |
| 1/14/2003 | Chapter 4 Syntax analysis (Bottom-up), java based Constructor for Useful Parsers, minimal guide how to run and javacup.jar |
| 1/16/2003 | Midterm Review |
| 1/21/2003 | Midterm Exam |
| 1/23/2003 | Exam solutions & Chapter 4 Syntax analysis |
| 1/28/2003 | Chapter 5 Syntax Directed Translation |
| 1/30/2003 | Chapter 5 Syntax Directed Translation |
| 2/4/2003 | Chapter 6 Type Checking |
| 2/6/2003 | Chapter 6 Type Checking & Chapter 7 Runtime Environments |
| 2/11/2003 | Chapter 7 Runtime Environments and Chapter 8 Intermediate Code Gen |
| 2/13/2003 | Chapter 8 Intermediate Code Gen, XML parser with DOM (Krithi's presentation and samples) |
| 2/18/2003 | XML with SAX (Cliff's Sax presentation and examples) and Pull parser. Project No.3 Code gen using XML |
| 2/20/2003 |
XSL tutorial 1 and
2.
Here is XALAN
zip file with my sample files (i.e. proj3.xml, p1,p2,p3.xsl in
samples/SimpleTransForm. Make sure to include xlan.jar and xml-apis.jar in
your classpath. They can be found in xlan/bin directory. Sample test files from Brandon |
| 2/25/2003 | code optimization, final review and class evaluation |
| 2/27/2003 | Final Exam |
News