CS179E: Project in Computer Science - Compilers
Professor: Teodor Przymusinski
Discussions: Wednesday 4:10pm - 5:00pm, PHY 2104
TA: Vladimir Vacic
Labs: Monday, Wednesday 6:10pm - 8:10pm, SURGE 172
Consultations: Tuesday, Thursday 1:30pm - 3:00pm, SURGE 282, and by appointment
References:
- Modern compiler implementation in Java, 2nd ed. (ISBN: 0-521-82060-X) by Andrew W. Appel
- Compiler Design by
Thomas H. Payne, Department of Computer Science, UC Riverside
- Compiler Construction using Flex and Bison by Anthony Aaby, Computer Science Department, Walla Walla College
- Compiler Construction Slides by Peter H. Froehlich, Department of Computer Science, UC Riverside
Guidelines:
- Project proposal guidelines
- Design presentation guidelines
- Final submission guidelines
Lab 1
Topics:
- Introduction
- Project details
- Essentials of project management (Gantt charts)
- Project proposal discussion
Class presentation:
Lab 2
Topics:
- More project details
- Project proposal discussion
Lab 3
Topics:
- Language description and specification
- Project proposal discussion
- Compiler construction: front-end overview
Class presentation:
Lab 4
Topics:
- Discussion of past and possible projects
- Project proposal details
- Compiler construction: front-end overview
Past projects:
- Perelandra 3D graphical interpreter. Kevin Horan, Alvin Limando, Angie Cu. UC Riverside, 2003. A subset of Java enriched with support for 3D objects such as boxes and spheres. Implementation uses OpenGL.
- eMlab Interpreter. John Cortes, Lingchuan Guo, George Hsiao. UC Riverside, 2003.
An efficient interpreter for a subset of the Matlab language.
- Ephemeral programming language. Malcolm Mumme. UC Riverside, 2003. Programming language for massively parallel processors with simple interconnections and a small amount of memory per processor.
- The Tel programming language.Anthony Aaby. Walla Walla College, 2003. Based on the pseudo-code used by Gerard Tel to specify the algorithms in his book Introduction to Distributed Algorithms. Simple event-driven programming language for programming networking protocols, distributed algorithms, and reactive systems. http://cs.wwc.edu/~aabyan/464/Project/Tel.html
- Design and implementation of a Prolog compiler for Tiger. Anthony Aaby. Walla Walla College, 2003. http://cs.wwc.edu/~aabyan/LogicPgmg/CODE/COMPILER/Tiger/index.html
- Cool: A portable project for teaching compiler construction. Alexander Aiken. UC Berkeley.
Cool, the Classroom Object-Oriented Language, is a small programming language for teaching the basics of compiler construction to undergraduate computer science majors. http://www.cs.berkeley.edu/~aiken/cool/
Project proposal details:
Lab 5
Topics:
- Compiler construction: front-end overview (once again)
Lab 6
Topics:
- Presentation discussion
- Compiler construction: back-end overview (part 1)
Class presentation:
Lab 7
Topics:
- Flex and Yacc
- Compiler construction: back-end overview (part 2)
Class presentation:
Lab 8
Topics:
- Compiler construction: synthesis
Class presentation:
- Overview of the phases of a compiler
Lab 9
Topics:
Class presentation:
Lab 10
Topics:
Lab 11
Topics:
Lab 12
Topics:
Lab 13
Topics:
Class presentation:
Lab 14
Topics:
Lab 15
Topics: