CS 641 meeting -*- Outline -*- * Semantics Overview ** Semantic description techniques 3 kinds: axiomatic, denotational, operational Q: what does a denotational semantics tell you about a statement? mathematical model (state transformation as a function) Q: an operational semantics? how to compute the next state from given state (algorithm or rewrite rule) axiomatic semantics: property satisfied by that statement (pair of predicates, true of pre and post states) --------------------- { x >= 3 } x := x + 1 { x > 3 } --------------------- ** remark about models, presentations, and theories def: a model is mathematical entity usually an abstraction of syntactic aspects, capturing essentials, leaving out inessentials e.g., the naturals as model of arithmetic (peano axioms) note that the axioms themselves are not a model, but a presentation of the theory def: a presentation is a syntactic description of something true e.g., peano axioms for naturals def: a theory is the set of all facts true about a theory e.g., all theorems of arithmetic all axioms and inference rules are true in a model, hence also all theorems most theories have lots of models... Q: What's the theory that a denotational semantics constructs a model for? one answer is the language, another the axiomatic semantics... This course is "semantic models of programming languages" but the whole point of axiomatic semantics is to NOT give a model, rather to present the theory (hence it should be faster) but we'll see models anyway when we connect to other kinds Compare this idea with the idea of logic programming.