The University of Arizona
banner image

CSC 453: Compilers & Systems Software

Schedule

DateTopicReading before classClass NotesNotices
Tuesday Aug 23IntroductionSyllabus, Assignments, and this Schedule.01-Intro.pdf
Thursday Aug 25The MeggyJava Programming LanguageChapter 1 in Wirth book02-MeggyJava.pdf
Friday Aug 26Recit: Meggy Jrs and revision controlGetting Started with Meggy NotesDUE Mon Aug 29th: HW1 - Syllabus , compiler intro, and MeggyJava
Tuesday Aug 30AVR assembly and Meggy Jr Simple runtime03-AVR.pdf, 03-AVR.txt
Thursday Sept 1Haskell Intro and Lexing Symbols and KeywordsChapters 2 and 3 in Wirth book and Getting Started with Haskell04-Haskell.pdf
Friday Sept 2Recit: Haskell basics and regression testingHaskell RecitationDUE Tues Sept 6th: HW2 - Haskell Exercises (Sept 5th is labor day)
Tuesday Sept 6Regular languages, finite automata, and scanning05-LexicalAnalysis.pdf
Thursday Sept 8Lexing with tables in Haskell06-LexicalAnalysis.pdf
Friday Sept 9Recit: Lexing with tables labLexing with tables recitation formDUE Mon Sept 12th: PA1 - MeggyJava and AVR, DUE Thursday Sept 15: PA1 Peer Reviews
Tuesday Sept 13Context Free Grammars08-Lexer-finish-CFG-Intro.pdf (NOTE: there is no 07 set of notes)
Thursday Sept 15Recursive descent parsing09-predictive-parsing.pdf
Friday Sept 16Recit: Haskell lexer and parser exercisesLexer and parser recitation formDUE Sunday Sept 18th HW3 - Online exercises to help study for midterm, no late period
Tuesday Sept 20First midterm in classPlease note that old midterms do not cover all the same material. This midterm will cover all material through the Friday 16th recitation. 2010 Midterm, 2011 midterm, 2012 midterm, 2015 midterm
Thursday Sept 22Code generation while parsing in Haskell10-predictive-parsing-n-code-gen.pdf
Friday Sept 23Recit: 15 minute compiler with recursive descent parsing in Haskell15min-compiler.htmlDUE Mon Sept 26th: PA2 - setPixel, DUE Thursday Sept 29: PA2 Peer Reviews
Tuesday Sept 27Abstract Syntax Trees (ASTs)11-AST-codegen.pdf, MainOnePass.hs, MainTwoPass.hs
Thursday Sept 29Type checking and overall strategy for implementing new language features12-type-checking.pdf, TreeTraversal.hs, TreeTraversal-updated.hs
Friday Sept 30Recit: Visualizing ASTs with dot in Haskellast-viz-with-dot.htmlDUE Mon Oct 3rd: HW4 - programming exercise for ASTs
Tuesday Oct 4Expression grammars and ambiguityEliminating Ambiguity in Expression Grammars13-exp-parsing.pdf
Thursday Oct 6Any remaining code generation for PA3 features14-control-flow-code-gen.pdf
Friday Oct 7Recit: CanceledDUE Mon Oct 10: HW5 - online exercises
Tuesday Oct 11Derivative-based parsing16-parsing-with-derivs-intro.txt
Thursday Oct 13Derivative-based parsing17-parsing-with-derivs.txt
Friday Oct 14Recit: Derivative-based parsingParseWD.hs,Dictionary.hsDUE Mon Oct 17: PA3 - checkButton, DUE Monday Oct 24: PA3 Peer Reviews
Tuesday Oct 18Midterm reviewVideo, 15-left-assoc-in-LL1.txt, 18-HW5-notes.txt, 18-midterm2-review-notes.txt
Thursday Oct 20LR Parsing (will be on final)19-LR-parsing-Debray.pdfDr. Saumya Debray leading class
Friday Oct 21Recit: Review session for midtermmidterm-review-lucky-charms.txtDUE Wed 26th: HW6 - Online exercises to help study for midterm, NO LATE PERIOD!
Tuesday Oct 25Symbol tables (needed for PA4 and will be on final)20-SymbolTables-Sethi.pdfDr. Ravi Sethi leading class
Thursday Oct 272nd Midterm
Friday Oct 28Recit: Symbol table examples in HaskellEvaluating expressions using a kind of symbol table.DUE Mon Oct 31: HW7 - NOTICE, HAS BEEN CANCELED, SEE PIAZZA POST
Tuesday Nov 1Symbol table implementation in Haskell and error handling21-midterm-n-PA3-post-mortem.txt, 22-symbol-tables-n-Haskell.txt
Thursday Nov 3Symbol table cont.22-symbol-tables-n-Haskell.txt
Friday Nov 4Recit: More Haskell exercisesDUE Mon Nov 7: HW8 - programming exercise for symbol tables
Tuesday Nov 8Implementing functions with a run-time stack23-RTS-n-other-code-gen-PA4.pdf
Thursday Nov 10RTS and recursion24-RTS-n-other-code-gen-PA4.pdf
Friday Nov 11Veterans Day!! No discussion sections.DUE Mon Nov 14: PA4 - methods, <, tones, DUE Saturday Nov 19: PA4 Peer Reviews
Tuesday Nov 15Register allocationDr. Todd Proebsting leading class
Thursday Nov 17Compilation for objects, arrays, and assignments25-classes-arrays-assign.pdf
Friday Nov 18Recit: Memory model for RTS and heapRecitFall16.javaDUE Mon Nov 21: HW9 - Memory models exercise
Tuesday Nov 22Compilation for objects, local variables, and assignments cont.26-arrays.pdf, PA5PaddleBall.java, PA6rainbow.java
ThanksgivingNo Thursday class or Friday recitation
Tuesday Nov 29Review: LR parsing, scopes and symbol tables, and expression register allocation.27-LR-parsing-and-other-review.pdf
Thursday Dec 1Using Haskell monads to simplify compiler implementation28-IO-monads-shorter.pdf, MonadForCompilerExample.hs, SymTab.hs, MonadForCompilerExample2.hs
Friday Dec 2Recit: Final review29-final-review-notes.txtDUE Mon Dec 5th: PA5 - Objects and Arrays, No PA5 Peer Reviews
Tuesday Dec 6Compilation for lambda functions30-implementing-lambda-functions.pdf, closure.c, closure2.c
Monday December 12 (3:30-5:30pm)Final