Chapter 5 Types
- Define the term type as used in describing a programming language and give an example.
- Explain the difference between static and dynamic type systems.
- Briefly explain how (single precision) floating point numbers are stored on binary computers (following IEEE 754 standard).
- Describe some of the basic differences between ASCII encoding and Unicode.
- Briefly describe the following data types: enumeration, pointer, array, string
- How are C and Java different in their use of pointers & dereferencing?
- What are two ways to define type equivalence? Given a block of code similar to that on 125-126, determine which variables have the same type under each of the definitions of type equivalence.
Chapter 6: Type Systems
- What is the purpose of a type system?
- What is the relationship between the Declarations section of a CLite program and the Block body?
- Given Type Rules 6.4 and 6.5 from the text (pp. 140-141), explain how type checking would apply to a program segment (c.f. the examples in the slides, such as this structure -- credits to Bethany)
Chapter 7: Semantics
- different models of semantic representation
- associativity & precedence; Polish prefix & postfix notation; preorder traversal, postorder traversal
- short-circuit evaluation
- program state
- assignment as statement v. expression
- assignment by copy or by reference
- control flow, structured programming
- exception handling
Chapter 8: Semantic Interpretation
- States, transformations
- compositionality, compositional semantics
- Describe the model of CLite semantics in chapter 8. According to this model, what is the "meaning" of a program? the meaning of a Statement? the meaning of an Expression?
Chapter 9 Functions
Be prepared to define / distinguish the following pairs of terms. Examples are effective in clarifying.
- function, procedure
- argument, parameter
- parameter passing mechanisms: by-value, by-reference, by-value/result
- activation records, run-time stack
- recursion
Make sure you understand code in figure 9.1 of the text
Chapter 12 Imperative Programming
- Imperative paradigm
- von Neumann machine
- procedural abstraction
- copy and reference semantics
- associative array
