Announcements

Programming Project 4 due Tonight

The final programming project is due tonight at 11:59PM. I will be holding extra office hours today from 1 - 4 instead of the usual 1 - 3, and Hrysoula will be holding office hours from 4 - 6. As always, feel free to email us or ask questions on Piazza. Congratulations on completing the final project of the quarter! How does it feel to have a working compiler?

More on Dataflow Analysis

For those of you interested in learning more about data flow analysis and the history of the technique, you can read Kildall's original paper describing this framework here. Enjoy!

Programming Assignment 3 Due, Programming Assignment 4 Out

Programming Assignment 4 (TAC generation) went out today. The assignment is the final piece of your compiler, and by the time you're finished you'll have written a complete compiler in just 8 weeks! It's due Wednesday, August 10 at 11:59PM. You may use up to four late days on this assignment. Programming Assignment 3 is due tonight at 11:59PM. Good luck!

Practice Midterm Available

A practice midterm has been posted to the handouts section of the course webpage. This is a (slightly longer) version of a midterm given a few years back. The questions on the actual midterm don't necessarily correspond directly to the topics covered in the practice midterm, but they will be on similar material and I strongly suggest taking the time to work through these problems. As mentioned in class, there will be a midterm review session next Monday in class.

Programming Assignment 2 Due, Programming Assignment 3 Out

Programming Assignment 3 (semantic analysis) went out today. This assignment has two parts to it, a scoping component and a typing component, each with a separate deadline. Scoping is due Saturday, July 23 at 11:59PM, and the entire assignment is due on Wednesday, July 27 at 11:59PM. The scoping deadline is a hard deadline and no late days may be used, whereas the overall assignment is subject to the standard late day rules. This assignment is substantially larger than both of the previous assignments combined, so be sure to start early. As always, if you have questions, please ask on Piazza, drop by office hours, or email the course staff list. Programming Assignment 2 is due tonight at 11:59PM. Good luck, and happy semantic analyzing!

Problem Set 2 Out, Due Monday, July 18

Problem Set 2 is out and is due Monday, July 18 at 5:00PM. This written assignment will give you a chance to explore the parsing techniques we've covered in the last few weeks in more detail, and hopefully will make you feel much more comfortable with LL and LR parsing. Good luck!

Programming Assignment 1 Due, Programming Assignment 2 Out

Programming Assignment 2 is out and is due Wednesday, July 13 at 11:59PM. It should be a great way to learn how to use the bison tool and will give you a feel for harnessing the parsing techniques from class in the real world. I hope you have a lot of fun with this one - after all, once you've completed it, you'll know how to parse all sorts of languages! Programming Assignment 1 is due tonight at 11:59PM. If you have any questions, be sure to let us know. Good luck!

Submission Instructions

I've posted submission instructions for the first programming assignment. You can submit either using the Paperless submission site, or through the command-line using our provided tool. Please let us know if you have any trouble submitting, and best of luck on the assignment!

Office Hours and Piazzza

We have set up our office hours for the quarter. There are six two-hour slots each week: Keith (Gates 160): Monday/Wednesday, 1:00PM - 3:00PM

Hrysoula (Gates 24A): Thursday 7:00PM - 9:00PM, Friday 1:00PM - 3:00PM

Riddhi (Gates 24A): Tuesday 7:00PM - 9:00PM, Sunday 12:00PM - 2:00PM Additionally, we've set up CS143 on Piazzza, so feel free to ask questions there as well.

Problem Set 1 Out, Due July 6

Problem Set 1 is out and is due at 5:00PM on July 6. This will give you a chance to play around with the automata constructions we talked about in class, and with the limitations of the scanning algorithm we'll be using. Good luck, and have fun!

Logging in Remotely

Several of you have asked how to log in to the Stanford machines remotely. To do so, you will need an SSH client. On Linux or Mac computers, you can do this from the command-line with ssh . On Windows, you will need to download a SSH client such as PuTTY or SecureCRT (available with your SUNetID here). From there, you will want to connect to either myth.stanford.edu or corn.stanford.edu . You will probably get a warning about a RSA key not matching, which is perfectly fine; these above hostnames will forward you to a free machine on the cluster. From there, you should be good to go! If you're having trouble logging in, or if you have any other questions, as always feel free to contact us. Hope this helps!

Programming Assignment 1 Out

Assignment 1: Lexical Analysis is out and is due Friday, July 1 at 11:59 PM. This will be a great way to show off your scanning skills and is the first step toward getting a full Decaf compiler up and running. You will probably want to read over the first section of the Decaf specification before starting this assignment. You'll also certainly want to read our introduction to flex to learn more about the tool you'll be using. As always, feel free to email us if you have any questions! Good luck!

Office Hours Preferences

Our excellent TA Riddhi put together a Doodle form where you can submit times that do not work for you for office hours. Feel free to fill out this form over the next few days so that we can try to find good times for office hours. We're hoping to ensure that there are always office hours you can attend, so if you have some hard conflicts please let us know via the form. The Doodle can be found here

Welcome to CS143!