CS 641 meeting -*- Outline -*- * Introduction write the name of the course on the board. ** Who introduce self and meet everyone have them write names on board ** the big picture of type systems (course spec) ------------------------------------------ informal formal language design <-> semantics ^ ^ | | v v examples soundness (ease of use) compositionality (other principles) ------------------------------------------ ** focus on types (static type systems) for OOP *** Why it's exciting active area of research needed for safety (Java) a simple kind of specification helps programmers by automatically checking for consistency *** operational semantics state transitions of an interpreter supports concurrency better than other semantic techniques subject reduction proofs seem to be easier than other proofs of types soundness. can be used as a prototype Excited about Abadi and Cardelli's book: they are the recognized experts on the subject specialized theory for object-oriented languages is quite new other approaches didn't seem to work so well use of operational semantics, depth gets into advanced aspects at end (higher order) *** applications and projects BeCecil (multimethod OO languages) avoiding aliasing CORBA, COM, OLE, music scripting, game playing, ... specification or verification of some small 00 language ** Plan of course (syllabus) overview, operational semantics Abadi and Cardelli's book as far as we can go... summary and evaluation at the end Q: Would you make any changes to the plan? ** Objectives *** meta - get you to think critically Q: What kind of questions should you be asking? limitations? utility? - teach you some semantics and type theory *** normal - Design (parts of) programming languages - Explain and semantics of major features in object-oriented languages. - Explain type systems for object-oriented languages and how they relate to language design and logic. - Read and write formal semantic descriptions for small object-oriented languages and type systems, use these to evaluate designs - Prove a type system is sound - State the goals and problems of programming language semantics, , what solutions are known and what the various research directions are, especially in the areas of operational semantics and type systems. ** How I'll run the course *** overview informal and friendly, I'm going to try not to lecture too much lecture meetings: get old homework back (you keep it), discuss homework, if any (some put on board), hand in homework discuss next topic homework: you'll do a term project, perhaps get a paper out of it. term project will be some language design, and a Haskell or lambda Prolog program to go with it. Can work alone or with others. grading: based on evidence, participation, project, final oral exam I'll give comments on homework, grades if you want them pace: we'll try to uncover and explore carefully want deep understanding of that material (semantics) for homework, we'll be flexible, *** red tape prerequisites (ok to not have 531 this offering, but need 541 or math) books: Abadi and Cardelli's book on reserve also other books are on reserve also note the literature intro. newsgroup: isu.coms.641 Q: everyone have all the handouts? ** summary Q: any other questions about the course?