Fall 2004

Arthur C. Fleck; Office: 201D MLH; Hours:
10-11 AM M-W-F, or by arrangement;
Ph. 335-0718; email: fleck@cs.uiowa.edu

TA: Bob Arens, Office: 201N MLH; Hours: 1:30-2:20 PM M-W, or by arrangement;
Ph.: 353-2547; email: rarens@cs.uiowa.edu

22C:19, 31, 111

- K. Slonneger & B. L. Kurtz,
*Formal Syntax and Semantics of Programming Languages,*http://www.cs.uiowa.edu/~slonnegr/plf/Book - SICStus Prolog Homepage/Manual
- Class directory: /group/class/c185

- develop understanding of the accepted mechanisms for providing precise and implementation independent definitions of programming languages
- form deeper insights into key facilities and paradigms in programming
- investigate methods for rigorously proving properties of programs

- chapter 1: syntax/BNF (primary topic)
- appendix A: Prolog
- chapter 2: lab activities
- chapter 3: attribute grammars (primary topic)
- chapter 7: translation, briefly
- chapter 5: lambda calculus, briefly
- chapter 6: interpreters, briefly
- chapter 9: denotational semantics (primary topic)
- chapter 10: fixed-point concepts & recursion (primary topic)
- chapter 11: axiomatic semantics/program proving (primary topic)
- chapter 12: algebraic semantics, (primary topic, time permitting)

There will be mid-term (10/11/04) and final exam (9:45 AM, Friday 12/17/04), plus regular homework assignments. The weighting of these items in grade determination is as follows:

homework | 30% |

mid-term exam | 25% |

final exam | 40% |

subjective | 5% |

You are encouraged to consult sources other than our texts (even if there is no
directed reading assignment), including both reserve books and on-line material.
You should also feel free to discuss the course topics with your classmates (even
*general approaches* to homework problems) since it is a genuinely helpful learning
activity to formulate your own thoughts about the material sufficiently to express
them to others. But since the homework counts as a significant portion of your grade,
it is expected that submitted work will be *strictly* your own; the department
has explicit procedures for cheating that are described in the Graduate Handbook.

- Fall '04 scores
- Fall '04 homework assignments
- Reserve (2 hour) list
- Recursive descent overview (PDF)
- Prolog Syntax Summary (PDF)
- Running SICStus Prolog
- Running SWI-Prolog
- Attribute grammar example (PDF)
- Definite clause grammar (DCG) translation
- Alternative calculator description (PDF)
- Pelican execution example (PDF)
- Sample mid-term (PDF)
- Fall '04 mid-term solutions(PDF)
- Fixedpoint study problem (PDF)
- Solution to fixedpoint problem (PDF)
- Computational rules and fixed points (PDF)
- Program proof example from 11/8/04 (PDF)
- Array proof rules (PDF)
- Semantic consistency theorem (PDF)
- Infamous ADT example (PDF)
- ADT vs. BNF example (PDF)
- OBJ Algebraic Semantics
- Denotational O-O Semantics (PDF)
- Algebraic O-O Semantics (PDF)
- Final Exam Study Guide
- Sample Final Exam (PDF)
- Javascript 2.0 -- an example practical formal definition
- Attribute Grammar survey
- Action Semantics homepage
- A Prolog tutorial
- WWW Virtual Library: Logic Programming
- CafeOBJ homepage
- Electronic homework submission