Review for Final Exam
- The final is comprehensive. Look through the other exams and make sure
you understand the problems you missed. Similar questions could show up on the
final.
- Read the book; look at the exercises to see if you understand what they
are getting at.
- Make sure you understand the assigned homework problems.
- Look through the notes from class
- Understand the programs that were demonstrated in class
Chapters 1-8: Look at the reviews for exam1
and exam2.
- Expect a couple of problems similar to those from the earlier tests.
- BNF grammars - writing the rules as well as derivations and parse trees
- Operator associativity and precedence
- Regular expressions
- Memory allocation for various types of variables - primitive, arrays,
structs, pointers
- Array slices
- Static vs. dynamic scope
Chapter 9 : Subprograms
- Sections 1-6 and 9
- Local referencing environments
- Parameter passing mechanisms
- by value
- by reference
- by value-result and by result
- by name
- Chapter 10 : Implementing Subprograms
- Semantics of call/return
- Activation records
- Static and dynamic chains
- Static and dynamic scope
- Chapter 15 : Functional Programming Languages
- Sections 1-5, 9-10
- Mathematical functions and functional forms
- Basic Ideas of functional languages
- Scheme
- Know how the list manipulation functions work - cons, car, cdr
- Be prepared to write a simple scheme function
- Be able to trace the execution of a scheme function
Interpreters
- Differences between interpreted and compiled languages
- Steps in interpretation
- Given a simple grammar, be able to identify and possibly write the functions needed for a
recursive descent parser.
- Think about how you might expand the capability of your interpreter. For
example how might you add new primitive types or represent structured data types.
Think about the languages we discussed during the semester as well as
those you heard about during the oral presentations. If you had to pick three
or four languages to study in detail that would illustrate the range of topics
covered in this course, which languages would you pick. Explain why you
picked those languages in terms of what concepts they are useful for
illustrating.