6.035 Computer Language Engineering - Fall 2004

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.

Handouts

  1. [pdf] [ps] Group Sign-up
  2. [pdf] [ps] General Info
  3. [pdf] [ps] Project Overview
  4. [pdf] [ps] Athena, Tools
  5. [pdf] [ps] Decaf Spec
  6. [pdf] [ps] Scanner/Parser Project
  7. [pdf] [ps] Semantic Analysis Project
  8. [pdf] [ps] Code Generation Project
  9. [pdf] [ps] ASM Toolkit
  10. [pdf] [ps] MIPS Handout
  11. [pdf] [ps] SPIM Interface
  12. [pdf] [ps] Practice Quiz 1
  13. [pdf] [ps] Dataflow Project
  14. [pdf] [ps] Practice Quiz 2
  15. [pdf] [ps] Instruction Optimization Project

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

Late penalty for projects is TBD.

Lectures

  1. [pdf] [ps] [ppt] Course Overview
  2. [pdf] [ps] [ppt] Introduction to Compilation
  3. [pdf] [ps] [ppt] Regular Expressions and Grammars
  4. [pdf] [ps] [ppt] Introduction to Shift Reduce Parsing
  5. [pdf] [ps] [ppt] Parse Table Construction
  6. [pdf] [ps] [ppt] Top Down Parsing
  7. [pdf] [ps] [ppt] Intermediate Formats
  8. [pdf] [ps] [ppt] Semantic Analysis
  9. [pdf] [ps] [ppt] Conversion to Low Level IR
  10. [pdf] [ps] [ppt] Analysis Transformation
  11. [pdf] [ps] [ppt] Dataflow Analysis
  12. [pdf] [ps] [ppt] Loop Optimizations
  13. [pdf] [ps] [ppt] Register Allocation

Tools Documenation

Staff

Faculty
Martin Rinard
32-G744

Course Secretary
Mary McDavitt
32-G764

Teaching Assistants
Sam Larsen
32-G888


Brian Demsky
32-G730

To email the entire course staff:

Location

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

Course Calendar

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.