Questions

  1. Characterize the differences between control abstractions and data abstractions. Explain how these two kinds of abstractions may be embodied in programming language constructs.
  2. How can you model the meaning of abstract data types in a mathematical way? Do you know any alternative ways?
  3. Explain how types may affect object-oriented programming.
  4. What is a signature? What distinction can you make between the various functions specified in a signature?
  5. What is an initial model? What properties does such a model satisfy?
  6. How would you characterize the meaning of an object with dynamic state changes in an algebraic fashion?
  7. Explain how you may characterize an abstract data type by means of a matrix with generator columns and observer rows. What benefits does such an organization have?
  8. How would you characterize the differences between the realization of abstract data types by modules and by objects? Discuss the trade-offs involved.
  9. How would you characterize the distinction between types and classes? Mention three ways of specifying types. How are these kinds related to each other?
  10. How would you characterize signature compatible modifications? Explain its weaknesses. What alternatives can you think of?