ICS 142 Winter 2004
Midterm Study Guide


Introduction

This study guide is a summary of the material covered in lecture thusfar. I've estimated where we would end up by the conclusion of Wednesday's lecture. Material we haven't covered by the end of Wednesday's lecture (and the readings that correspond to it) will not be included on the Midterm, even if it's listed below. (This is the hazard presented by posting a study guide early, but I thought you'd rather have an estimated version earlier than a perfect version later.)

While I don't intend to include questions on the Midterm testing tiny details from the textbook that were not covered in lecture, you are responsible for the assigned readings. Broad ideas and important points from the readings are fair game for the exam, even if we didn't cover them in lecture. I haven't included this material in the study guide. However, there are a few things that I've specifically listed below as off-limits for the exam (e.g. the DFA minimization algorithm), which will slightly reduce the amount of reading material you'll need to study.


The study guide

The big picture: What does a compiler do?

Desirable properties of a compiler

More details about the front end of a compiler

Scanning

Regular expressions

Converting regular expressions to DFA's

Constructing an automated scanner

Will you be covering JFlex on the exam?

Parsing

Top-down parsing

Recursive descent parsing

Table-driven LL(1) parsing

Bottom-up parsing

Shift-reduce parsing

LR(1) parsing

A subset of the following topics will be covered in lecture on Wednesday, February 11. These topics will be covered on the Midterm in whatever detail we cover them in that lecture.