
- Characterize the differences between control abstractions and data abstractions. Explain how these two kinds of abstractions may be embodied in programming language constructs.
- How can you model the meaning of abstract data types in a mathematical way? Do you know any alternative ways?
- Explain how types may affect object-oriented programming.
- 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?
- How would you characterize the differences between the realization of abstract data types by modules and by objects? Discuss the trade-offs involved.
- How would you characterize the distinction between types and classes? Mention three ways of specifying types. How are these kinds related to each other?
- How would you characterize behavior compatible modifications? What alternatives can you think of?