6.035 Computer Language Engineering - Fall 2005

Prerequisite: 6.170 and proficiency in Java
U (1)
4-4-4

Analyzes issues associated with the implementation of higher-level programming languages. Fundamental concepts, functions, and structures of compilers. Basic program optimization techniques. The interaction of theory and practice. Using tools in building software. Includes a multi-person project on design and implementation of a compiler written in Java that generates MIPS executable machine code. 8 Engineering Design Points.

Wiki

Check the class wiki for FAQs and team updates.

Handouts

  1. [doc] Schedule
  2. [pdf] Group Sign-up
  3. [pdf] General Info
  4. [pdf] Project Overview
  5. [pdf] Paper Discussion
  6. [pdf] Athena, Tools
  7. [pdf] Decaf Spec
  8. [pdf] Scanner/Parser Project
  9. [pdf] Semantics Project
  10. [pdf] Code Generation Project
  11. [html] Appendix to Handout 9: X86-64 Architecture Guide
  12. [pdf] Practice Quiz 2
  13. [pdf] Dataflow Optimization Project Handout
  14. [pdf] Low-Level Optimization Project Handout
  15. [pdf] Practice Quiz 3

All projects should be submitted by 5pm on the due date. Hard copies must be turned in to 32-G764 by 5pm, and online submissions must have timestamps before 5pm.

Late penalty for projects is TBD.

Lectures & Recitations

Paper readings

Tools Documenation

Staff

Faculty
Martin Rinard
32-G744


Saman Amarasinghe
32-G778

Course Secretary
Mary McDavitt
32-G746
Tel: x3-9620

Teaching Assistant
Punyashloka Biswal
[TBA]

To email the entire course staff:

Location

Monday, Tuesday, Wednesday, and Thursday
11:00am - 12:00noon
32-124

Optional Textbooks

You should be able to find these at the Coop, Quantum Books, or Amazon.

Modern Compiler Implementation in Java (Tiger book)
A.W. Appel
Cambridge University Press, 1998
ISBN 0-52158-388-8
A textbook tutorial on compiler implementation, including techniques for many language features

Compilers: Principles, Techniques and Tools (Dragon book)
Aho, Sethi and Ullman
Addison-Wesley, 1986
ISBN 0-20110-1947
The classic compilers textbook, although its front-end emphasis reflects its age.

Advanced Compiler Design and Implementation (Whale book)
Steven Muchnick
Morgan Kaufman Publishers, 1997
ISBN 1-55860-320-4
Essentially a recipe book of optimizations; very complete and suited for industrial practitioners and researchers.

Engineering a Compiler (Ark book)
Keith D. Cooper, Linda Torczon
Morgan Kaufman Publishers, 2003
ISBN 1-55860-698-X
A modern classroom textbook, with increased emphasis on the back-end and implementation techniques.



Visit last year's website.