CSCI 4570/6570 Compilers
|Professor:||Krys J. Kochut|
|Class Time:||T,R 9:30 - 10:45 and W 10:10 - 11:00 in 306 GSRC|
|Office Hours:||T 1:30 - 3:30 and W 9:00 - 10:00|
|TA:||BJ Wimpey (wimpey at cs dot uga dot edu)|
|Office Hours:||F 12:00 - 1:00 in 216 GSRC|
|Text:||Compilers: Principles, Techniques, and Tools, 2/E, by Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman, Addison-Wesley, 2007 .|
|Academic Honesty:||Read carefully the Academic Honesty Policy now.|
Read a short course description.
In this class the students will study the principles of compiler design and implementation. We will concentrate on the organization of a simple but complete compiler, including the initial phases of a typical front-end. We will begin with scanners, then go on to various parsing techniques, type checking, syntax-directed translation, and code generation. We will also talk about symbol tables, error recovery and runtime systems. Discussions will include compiler compilers (scanner and parser generators), as well code generation and optimization.
Each student is expected to design and implement a simple compiler (the details will be discussed later). All programming should be done in either C++ or C. Development in Java is also possible, but using compiler-compiler tools for Java may be more challenging. The programming project will be split into a few parts to make the development a large program manageable.
Each student is expected to do his/her own work. You are not allowed to work in teams. All suspected cases of academic dishonesty will be handled in strict accordance with department and university policy. The grade of I (incomplete) is reserved for special cases only, such as a serious illness, and will be decided on individual basis.
The course syllabus outlines a general plan for the course and deviations may be necessary.
|Project:||This semester, the students will be implementing a simple one-pass compiler for Micro Pascal, a small subset of the programming language Pascal.|
|Programming assignments:||Part 1 of the Micro Pascal project.
Part 2 of the Micro Pascal project.
Part 3 of the Micro Pascal project.
I have created a small page with a variety of information sources on Compiler Construction Tools.