
- How would you characterize inheritance as applied in knowledge representation? Discuss the problems that arise due to non-monotony.
- How would you render the meaning of an inheritance lattice? Give some examples.
- What is the meaning of a type? How would you characterize the relation between a type and its subtypes?
- Characterize the subtyping rules for ranges, functions, records and variant records. Give some examples.
- What is the intuition underlying the function subtyping rule?
- What is understood by the notion of objects as records? Explain the subtyping rule for objects.
- Discuss the relative merits of typed formalisms and untyped formalisms.
- What flavors of polymorphism can you think of? Explain how the various flavors are related to programming language constructs.
- Discuss how inheritance may be understood as an incremental modification mechanism.
- Characterize the simple type calculus , that is the syntax, type assignment and refinement rules. Do the same for and .
- Type the following expressions: (a) , (b) , and (c) .
- Verify whether: (a) , (b) , and (c) .
- Explain how you may model abstract data types as existential types.
- What realizations of the type can you think of? Give at least two examples.
- Prove that .
- Prove that , for .