Objectives
Test 2 -- Sebesta
Chapters 5-10
Be able to (with the help of
one page hand-written notes)
- articulate at
least 2 design issues surrounding names (identifiers)
- characterize
variables by six attributes
- discuss the
positive and negative aspects of aliasing
- articulate
different binding times with program actions
- distinguish static
and dynamic binding and cite language exemplars, advantages and
disadvantages
- categorize scalar
variable by their lifetimes
- distinguish among
static, stack-dynamic, explicit heap-dynamic and implicit heap-dynamic
variables
- give examples of
strong typing and counter examples and discuss the merits of each
- show that you
understand static and dynamic scoping by identifying the visibility of
variables in sample programs
- define
initialization and give examples
- discuss named
constants
- discuss
fundamental semantic issues of variables, and binding times : static
variables, stack-dynamic variables, explicit heap-dynamic variables,
implicit heap-dynamic variables
- discuss and
produce examples of coercion, declarations, elaboration
- discuss pointer
issues: pointer variables issues, allocation, deallocation,
dangling pointers, dangling references, tombstones, garbage
collection
- identify
characteristics and implementation issues surrounding user-defined
types, sets, arrays, records, etc., array component selection
mechanisms, variant (discriminant
and non-discriminant)
records
- define and apply
precedence, evaluation order, side effectsassociativity,
complex assignment statements (multiple target, multiple targets,
conditional targets), short circuit evaluation, operator oeverloading
- discuss control
mechanisms for selection and repetition (including
implementation issues)
- distinguish
between procedures and functions, flat files
- parameter passing,
techniques -- call by reference, call by value, call by value result,
and semantic construct in, out and in out
- discuss main ideas
of Dijkstra's
"GOTO
Considered Harmful" from CACM
- describe issues
surrounding generic subprograms;
- disguish shallow versus deep
binding
- describe corroutines;