CPSC460
Spring 2008
Final Review

The final will be comprehensive concentrating on the areas where you have not been tested. It will have problems and short answer questions about concepts that we have covered. The first part of the course is reviewed on test1review. The final will have material from this first test.

Since the last test, we have covered Chapters 5, 6, 8, and 9.1 including these topics:

  1. Paul Johnson's lecture. Here and here are his handouts.
  2. Be able to generate syntax trees, postfix code from the syntax tree, 3 address code in the form of DAGs, triples, indirect triples, and quadruples.
  3. Be able to produce 3 address code given syntax-directed definitions or semantic translation schemes.
  4. What is intermediate code? What are the advanatages of using intermediate code? Are there any disadvantages or issues to be careful of?
  5. What is the input and output to each part of the compiler?
  6. Be able to calculate the cost of an instruction given some parameters
  7. Be able to calculate basic blocks and flow graphs for intermediate code.
  8. Be able to do some optimizations on intermediate code (dead code elimination, common subexpression elimination, reduction in strength).
  9. Be able to translate 3 address code into the target code that we covered in class
  10. Be able to determine the variables used, defined, and live in a basic block.