Com S 541 units -*- Outline -*- What was done in 1990-1992 * Introductory ** introduction what the course is about ** general-review what is a programming langauge, review of general terms used in '90 and '91 only * Lambda-Calculus via some functional language ** scheme as intro to functional programming, dialect of LISP used in '90-'91 only *** standard-ML as intro to functional programming includes concrete data used in '92 only ** lambda-calculus simply typed lambda calculus, untyped lambda calculus, * Static semantics used in '91-92 ** axiomatic-sematics pre and postconditions, the language Euclid, Hoare logics used in '90 ** types basics, data abstraction, polymorphism, type reconstruction module types used in '92 only ** Dynamic semantics ** operational-semantics relation to compilers, rewrite rules, terminal transition systems ** denotational-semantics fundamentals, domains, small examples *** naming environments, modules, scope rules *** fixed-points semantics of recursive definitions, continuity, fixed points *** state mutation in objects and the store *** control control constructs, call/cc, continuations, streams * paradigms a tour of the major paradigms ** functional might also want lambda calculus or type checking here ** functional-advanced functional programming techniques not covered above: streams and lazy data structures, reasoning ** object-oriented *** smalltalk *** object-oriented-semantics formal semantics of message passing and inheritance ** declarative overview of various forms of declarative languages, *** obj3 used in '90 only *** prolog used in '91 and more fully in '92 ** parallel-processing used in '92 only ** expressive-power what is meant by expressive power, can it be formalized? * review * course-evaluations