Com S 641 Lecture -*- Outline -*- * first-order typing for imperative languages (chapter 11) ** typing (11.1) Q: what is different between this type system and the one in chapters 7-8? Q: can you explain the rules for clone and let? ** examples of typings (11.2) Q: is there any type that can be used like "void" in C? look at the move methods on page 143 Q: is the subtyping more flexible for movable points in an imperative language? Q: why is it useful for typing that clone is built-in? ** classes and global behavior change (11.3) Q: what happens to instances when methods of a class are modified? Q: when methods of a superclass are modified? ** subject reduction (11.4) Q: what's the basic problem in determining types for values ("results")? Q: what invariant is being maintained by the type system? Q: why do result typing need a store type? Q: how are stores and store types connected to stacks and their types? Q: can you give a simple example of a store type and a store that has it? Q: of a stack type and a stack that has it? Q: can you explain Lemma 11.4-1? They will need to read through the proof on their own, but ask for questions.