Also, I wanted to share some of the cool extensions our students worked hard to build this quarter. PP4 had many of these. Three people submitted fun Decaf applications including games like Video Poker and Monopoly, as well as a neat simulation which you have probably heard of - Conway's Game of Life.
Other impressive extensions included various optimizations (dead code elimination, temporary variable reuse, constant folding, etc.) and support for interfaces and non-standard Decaf constructs like Switch and For Each. There was also a pass-by-reference implementation and another which supported non-virtual methods!
In earlier assignments, the most impressive extensions included two successful Decaf-to-C++ compilers which created impressively well-formatted and semantically correct C++ code.
I hope everyone learned a lot; you've certainly worked very hard and in many cases exceeded our expectations!
Awesome work! Thanks for a wonderful summer quarter!
All the best,
- Programming Project: PP4: TAC Generation
- PP4 Generic Feedback
- Lecture #13 (Mon 04-Aug): Code Optimization Overview
- Midterm results: Midterm feedback
- Lecture #10 (Mon 28-Jul): Intermediate Rep. and Three-Address Code
- Section #05 (Tue 29-Jul): TBD
- Lecture #11 (Wed 30-Jul): Processor Architectures
- Lecture #12 (Fri 01-AUG): Final Code Generation
- Lecture #13 (Mon 21-Jul): Midterm Exam
- Section #04 (Tue 22-Jul): Semantic Analysis + PP3
- Lecture #14 (Fri 25-Jul): Runtime Environments
- Programming Project: PP3: Semantic Analyzer (generic feedback [a subset of the feedback given to each student])
- Diff From Previous Project: Complete Diff (List of Changed Files)
- Section #3: LR(0) and NDFA Lambda Removal (solution)
- Grading codes: Problem Set 1 Grading Codes
- Practice and Guidelines: Practice Midterm
- Lecture #10 (Mon 14-Jul): Syntax Directed Translation
- Section #03 (Tue 15-Jul): LR(0) and NDFA Lambda Removal (solution)
- Lecture #11 (Wed 16-Jul): Semantic Analysis
- Lecture #12 (Fri 18-Jul): Semantic Analysis, cont.
- Decaf Specification
- Programming Project: PP2: Parser (generic feedback [a subset of the feedback given to each student])
- Supplement #01 (Mon 07-Jul): NDFA to DFA Conversion
- Lecture #07 (Mon 07-Jul): SLR-SR Parsing + Introduction to Yacc/Bison
- Section #02 (Tue 08-Jul): Precedence in Yacc and Bison and code
- Lecture #08 (Wed 09-Jul): LALR Parsing
- Lecture #09 (FRI 11-Jul): Miscellaneous Parsing
- Problem Set (Wed 02-JuL): Problem Set 1
- Lecture #04 (Mon 30-Jun): Formal Grammers, cont. + Top-Down Parsing
- Section #01 (tue 01-Jul): Regular Expressions and Grammars (and code)
- Lecture #05 (Wed 02-Jul): Top-Down Parsing, cont. + Bottom-Up Parsing
- Lecture #06 (Thu 03-Jul): Bottom-Up Parsing, cont.
- Programming Project: PP1: Lexer (generic feedback [a subset of the feedback given to each student])
- Lecture #01 (Tue 24-Jun): Overview
- Lecture #02 (Thu 26-Jun): Lexical Analysis and Flex
- Lecture #03 (Fri 27-Jun): Formal Grammars
- Announcements
- Schedule and Handouts
- Staff Info / Office Hours
- Email Archive
- Project FAQs
- Coding Guidelines
- Submission Instructions
- Lecture Videos