Design and Analysis of Programming Languages
ECS 240
ECS 240 Lecture 1
1
Administrivia
Who am I?
Websites:
http:/www.cs.ucdavis.edu/~su/teaching/ecs240-s13
http:/smartsite.ucdavis.edu
Will post there announcements, lectures, assignments, etc.
Office
Introduction to Lambda Calculus
Lecture 4
ECS 240
ECS 240 Lecture 4
1
Plan
Introduce lambda calculus
Syntax and operational semantics
Properties
Relationship to programming languages (later)
Study of types and type systems (even later)
ECS 240 Lectur
Proof Techniques for Language Analysis
Lecture 3
ECS 240
ECS 240 Lecture 4
1
Plan
Well study various flavors of induction
mathematical induction
well-founded induction
structural induction
ECS 240 Lecture 4
2
Induction
Probably the single most import
IMP and Operational Semantics
Lecture 2
ECS 240
ECS 240 Lecture 2
1
Plan
Well study a simple imperative language IMP
Abstract syntax
Operational semantics
Denotational semantics
Axiomatic semantics
and relationships between various semantics (with proof
Data Flow Analysis
Lecture 6
ECS 240
ECS 240 Data Flow Analysis
1
The Plan
Introduce a few example analyses
Generalize to see the underlying theory
Discuss some more advanced issues
ECS 240 Data Flow Analysis
2
Control-Flow Graphs
x := a + b;
y := a *
Abstract Interpretation
Non-Standard Semantics
Lecture 8-9
ECS 240
ECS 240 Lecture 8-9
1
The Problem
It is useful to predict program behavior statically
(without running the program)
For optimizing compilers
For software engineering tools
The semantic
Type Systems
Lecture 14
ECS 240
ECS 240 Lecture 14
1
Review
-calculus is as expressive as a Turing machine
We can encode a multitude of data types in the
untyped -calculus
To simplify programming it is useful to add types to
the language
We now start
Introduction to Model Checking
Lecture 12
ECS 240
ECS 240 Model Checking
1
Model Checking
Does model M satisfy property ?
What is M?
What is ?
What is satisfy?
ECS 240 Model Checking
2
Temporal Logic Model Checking
Does model M satisfy temporal property ?
Introduction to Axiomatic Semantics
Lecture 10-11
ECS 240
ECS 240 Lecture 10-11
1
Review
Operational semantics
relatively simple
many flavors
adequate guide for an implementation of the language
not compositional
Denotational semantics (didnt cover)
ma