Instructor:
Wim Bohm
Office: 344 CS Building
Office Hours in 344: Mon 1-2pm
Email: bohm@cs.colostate.edu
GTA:
Andy Stone
Lab Hours in CS 130: Thu 9-11am
Email: aistone@gmail.com
Lecture Time and Place:
12:30-1:45, Tuesday and Thursday, Forestry 107
Recitation Time and Place:
9:00-9:50 am, Friday, CSB Room 215

This course is an introduction to compiler construction. Students write a compiler for a subset of Java called MeggyJava. We compile MeggyJava down to the assembly language for the ATmega328p microcontroller in the Meggy Jr RGB devices.

Course topics include the following: scanning, parsing (top-down and bottom-up), abstract syntax trees, semantic analysis, code generation, and data-flow analysis.

News:

PA6:

Your PA6 due date has been pushed back to Tuesday May 1st.

PA5:

You'll have a chance to get some points back on the "Functionality" portion of your PA5 grade. I will regrade this portion of PA5 using what you submit for PA6. You will gain back 75% of the added points on the regrade. So, for example, if you originally received 40/80 points on your PA5 functionality, and then make 30 points worth of fixes in your PA6, your new PA5 grade will be (40 + 0.75 * 30) = 62.5 out of 80 possible points. Important:
  • In order to receive these points your compiler must build when I run 'make' on a department Linux machine.
  • I must be able to pass your resulting .s files through MJSIM.

PA4:

  1. Notice that Times only works on byte operands and generates ints. Type check this.
  2. The AST for Byte.java in PA4Empty is WRONG. It was fixed in the PA4 write up. Make sure you check the PA4 assignment page for the correct Byte.ast

The picture of the Meggy Jr RGB has been used with permission from the Evil Mad Scientists Laboratories.