Unit 5 Study Guide
- Understand what names and variables are in the
context of programming languages, and explain the difference between the
two.
- Recognize the conventions governing naming in programming languages.
- State the difference between keywords and reserved
words.
- List and briefly define the six attributes of a variable.
- Distinguish between l-value and r-value uses of a
variable.
- Explain the basic concept of a binding and explain why
binding times are relevant to variables. Give examples of important
bindings and binding times.
- Distinguish between static and dynamic bindings.
- Distinguish between static and dynamic typing, and explain
their relative advantages and disadvantages. Give examples of languages in
either category.
- Explain what memory allocation is and how it relates to a
variable's lifetime.
- Distinguish the four variable lifetime categories: static,
stack-dynamic, explicit heap-dynamic, and implicit heap-dynamic. Give
examples of variables with each of the four variable lifetime categories.
- Describe the regions where memory is allocated for each of the four
variable lifetime categories.
- Explain the difference between static and dynamic scoping, and
how these concepts relate to syntactic blocks and runtime call stacks.
- Define a statement's referencing environment.
- Explain the utility and advantages of named constants.