Topics for Midterm Exam
The midterm exam will cover basically the same material as the homework assignments. The one exception is that you are not going to be expected to write any substantial Perl programs as in exercise 5 of Homework 2. The exam will also not include any questions on C++ or object-oriented programming.
Here is a copy of the Midterm Exam from Fall 1996.
Here are links to the first three assignments and the posted answers from last term, in case you want more practice.
- Fall 1996, Assignment 1 (answers)
- Fall 1996, Assignment 2 (answers)
- Fall 1996, Assignment 3 (answers)
Here are a list of topics that I will expect you to be familiar with for the midterm:
- BNF/EBNF
- given a grammar in (E)BNF, describe the language it defines
- given a grammar in (E)BNF decide whether certain words are in the set defined by the grammar
- convert an EBNF grammar to BNF
- given a description for a simple language construct, write an EBNF description for it
- Structure of a Programming Language
- Syntax
- Static Semantics
- Dynamic Semantics
- Dynamic vs. Static Properties of a Programming Language Definition
- Interpreted vs. Compiled Programming Languages
- Type coercion
- Operator precedence
- Associativity (right vs. left)
- Data structures
- Reading Simple Perl programs
- Scoping
- binding/bound/free occurences
- scope of a declaration
- visibility of a declaration
- lifetime of a declaration
- dangling references
- Parameter passing methods
- call-by-value
- call-by-reference
- call-by-value-result
- macro expansion
- Lexical vs. Dynamic Scoping
- Memory management: heap/stack
- Activation Records
- In a given program, what activation records will be on the stack
- The basic elements of an activation record