I will be available in my office (OHS 306) 11:30-12:20 and 1:30-3:20 on Wednesdays as well as by appointment. Or try your luck: just stop by and see whether my door is open. You may send me electronic mail at max@gustavus.edu or call me at 507-933-7466. I'll try to put any updates to my office hours on my web page, so check there if in doubt. Already I know that I won't be holding my regular office hours on March 6 and March 13.
You are expected to be familiar with the college academic honesty honor code policy and to comply with that policy. In particular, any substantive contribution to your lab projects or homework solutions by another person or taken from a publication should be properly acknowledged in writing. Failure to do so is plagiarism and will necessitate disciplinary action. If you have any questions about the policy, please ask.
If you are too sick to complete an assignment on time, you will not be penalized. Simply label your assignment as late due to illness. Other circumstances will be evaluated on a case-by-case basis.
Please see the separate homework policy linked to the web version of this syllabus.
Please see the separate homework policy linked to the web version of this syllabus.
Gustavus Adolphus College is committed to ensuring the full participation of all students in its programs. If you have a documented disability (or you think you may have a disability of any nature) and, as a result, need reasonable academic accommodation to participate in class, take tests or benefit from the College's services, then you should speak with the Disability Services Coordinator, for a confidential discussion of your needs and appropriate plans. Course requirements cannot be waived, but reasonable accommodations may be provided based on disability documentation and course outcomes. Accommodations cannot be made retroactively; therefore, to maximize your academic success at Gustavus, please contact Disability Services as early as possible. Disability Services (https://gustavus.edu/advising/disability/) is located in the Advising and Counseling Center.
Support for English Language Learners (ELL) and multilingual students is available via the College's ELL Support staff person, Andrew Grace (agrace@gustavus.edu or x7395). He can meet individually with students to consult about academic tasks and to help students seek other means of support. In addition, ELL and multilingual students can seek help from peer tutors in the Writing Center. Please let me know if there is any accommodation in the course that would enable you to more fully show your abilities; for example, I would consider allowing extra time on tests, as well as allowing a dictionary in an otherwise closed-book test.
The two topics or activities shown for each date correspond approximately to the two halves of the class period with a brief stretching break in between. However, we will divide the time to meet our needs rather than necessarily at the halfway point.
In the reading column, section 0 means the material at the beginning of a chapter before the first section. Similarly, subsection 0 means the material at the beginning of a section before the first subsection.
This is my best guess as to the rate at which we will cover material. However, don't be shocked if I have to revise the schedule.
Date | Reading | Topic | Due |
---|---|---|---|
2/12 | 1 | Introduction | |
2/14 | 2.2 | Syntax definition | |
2.3-2.4 | Syntax-directed translation | ||
2/19 | 3.0-3.1, 3.3, 3.5 | Lexical analysis | |
Lab 1: Generating Code from ASTs | |||
2/21 | 4.0-4.2 | Context-free grammars | HW 1 |
4.3 | Writing a grammar | ||
2/26 | 4.4.0-4.4.3 | Top-down parsing | |
Lab 1 (continued) | |||
2/28 | 4.4.4-4.4.5 | More on predictive parsing | |
4.5 | Bottom-up parsing | ||
3/5 | 4.6 | SLR parser generation | HW 2 |
Lab 1 (continued) | |||
3/7 | 4.7.0-4.7.4 | Canonical LR and LALR parser generation | Lab 1 |
4.8-4.9 | Using ambiguous grammars; parser generators | ||
3/12 | 5.0-5.4.3 | Syntax-directed definitions | |
Lab 2: Scanning and Parsing | |||
3/14 | No class | ||
3/19 | 6.0-6.2 | Intermediate code | HW 3 |
Lab 2 (continued) | |||
3/21 | 6.3 | Types and declarations | |
Lab 2 (continued) | |||
3/26 | 6.4, 6.5.2 | Array access; type conversions | Lab 2 |
Lab 3: Adding Variables | |||
3/28 | 6.6 | Control flow | HW 4 |
Lab 3 (continued) | |||
4/9 | 8.0-8.3 | Code generation | |
Lab 3 (continued) | |||
4/11 | Preview of lab 4 | ||
Lab 3 (continued) | |||
4/16 | 8.4 | Basic blocks and flow graphs | Lab 3 |
Lab 4: Control Flow and Scoping | |||
4/18 | 9.0-9.1 | Optimization | |
Lab 4 (continued) | |||
4/23 | 9.2 | Data-flow analysis | HW 5 |
Lab 4 (continued) | |||
4/25 | Data-flow analysis, continued | ||
Lab 4 (continued) | |||
4/30 | Preview of lab 5 | Lab 4 | |
Lab 5: Procedures | |||
5/2 | 9.5, notes | Partial redundancy elimination | |
Lab 5 (continued) | |||
5/7 | 9.3, notes | Foundations of data-flow analysis | |
Lab 5 (continued) | |||
5/9 | Hack 1-2 | Interference graphs | HW 6 |
Lab 5 (continued) | |||
5/14 | Hack 4.1-4.4 | Register allocation | Lab 5 |
Lab 6: Wildcard Lab | |||
5/16 | Catch up | ||
Lab 6 (continued) | |||
5/21 | Synthesis and evaluation | ||
Lab 6 (continued) | |||
5/22 | Lab 6 |