CS 541 Lecture -*- Outline -*- * Introduction to Standard ML ** context SML has essentially the notations used in denotational semantics we'll apply these notations to the semantics of OOPLs. ** advertisment our vehicle for learning functional programming, type checking and type inference lambda calculus modules and data abstraction (as in Ada but more powerful) useful for prototyping denotational semantic definitions gives full power of lambda abstraction (first-class functions) also has universal control structure (continuations) active research language many papers published with or about it ** History (omit) 1977 Meta Language of LCF (proof system), type inference algorithm 1980s many dialects 1983 start of standardization 1990 Standard ML formal definition published ** What to read in ML for the Working programmer essentials should be carefully read, so that you understand everything; skimed parts would be helpful to read, but don't have to be read very carefully. essential skim topic ch. 1 intro ch. 2, except: pages 35-38 basics pages 42-44 function call semantics ch 3 lists a few examples in ch 4 the rest trees and concrete data ch. 5 functionals and infinite data ch. 6 reasoning about functional progs ch. 7 modules sec 8.7 rest of ch. 8 I/O, imperatives ch. 9 lambda calculus interpreters the stuff that comes in chapters 7 and later will definitely be later in the course, so I wouldn't read those until I tell you again. It's not clear yet how much of chapter 9 we'll cover.