Midterm Topics
I have tried to make a complete list of topics, but
I cannot guarantee that all questions will fall under your
interpretation of the ``scope'' of these topics!
- Language design goals, language implementation goals, and
how they interrelate
- Compilation vs. interpretation
- Compilation phases
- JIT compilers
- 4 concepts needed to express a context-free grammar
- How to write a grammar for a very simple language
- How to describe the language generated by a very
simple grammar
- Productions, non-terminals, terminals
- Context-free grammars
- Lexical vs. syntactic vs. semantic Errors
- Whitespace
- Parse trees
- Leftmost and rightmost derivations
- Bindings: what it is, and what is bound when
- Scope: what it means
- Static scope: what it is, and what languages have it
- Dynamic scope: what it is, and what languages have it
- Scope rules in C
- Scope rules in Java (hint: read handout!)
- Scope rules in Scheme
- Declaration order
- Shallow vs. deep binding of subroutines
- Modules: Parnas definition and Programming Language definition
- Modules: Closed and selectively open scopes
- Programming language support for Parnas' information-hiding modules