I. overview of semantics (Schmidt's: The structure of typed Prog Langs) A. introduction (preface) ------------------------------------------ STRUCTURE OF TYPED PROG LANGS Goals: - structuring techniques - design principles - role of type theory CONNECTION OF LANGUAGE AND LOGIC (CURRY-HOWARD ISOMORPHISM) language logic type system ~ propositions programs Examples: ------------------------------------------ B. outline ------------------------------------------ OUTLINE 1: core language (data, ops, control) tools: abstract syntax, type checking laws (rules) denotational semantics 2. Abstraction principle (naming, declarations) explains: procedures, functions, consts, modules, classes evaluation strategies how variable decls affect language. 3. Parameterization principle explains: parameter transmission Correspondence principle (how should declarations relate to parameters) 4. Qualification principle (encapsulation) explains: scope, extent, encapsulation, objects, subtyping, inheritance 5. Records and lambda abstraction explains previous principles as record and function constructions higher-order features lazy vs. eager evaluation Orthogonality principle 6. Lambda calculus ------------------------------------------