Objectives Test 2 -- Sebesta Chapters 5-10

Be able to (with the help of one page hand-written notes)

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