CIS 705 — Programming Languages — Spring 2007
Resources
Class Sessions
In the following, TAPL stands for the book
Types and Programming Languages, and
DAWOC stands for the book
Developing Applications With Objective Caml.
The OCaml programs referred to below can also be found in the directory
~stough/705 (/home/faculty/stough/705) on the CIS
Linux system.
- Session 1: Jan 12
- Reading: Chapter 1 of TAPL
- Course Syllabus (view/print)
- Tour of course WWW page
- TAPL Chapter 1: Introduction
(view/print)
- Session 2: Jan 17
- Reading: Chapters 1 and 2 of TAPL
- TAPL Chapter 1: Introduction
(view/print)
- TAPL Chapter 2: Mathematical Preliminaries
(view/print)
- Session 3: Jan 19
- Reading: Chapter 3 of TAPL
- TAPL Chapter 2: Mathematical Preliminaries
(view/print)
- TAPL Chapter 3: Untyped Arithmetic Expressions (A)
(view/print)
- Session 4: Jan 22
- Reading: Chapter 3 of TAPL
- TAPL Chapter 3: Untyped Arithmetic Expressions (A)
(view/print)
- Session 5: Jan 24
- Reading: Chapter 3 of TAPL
- TAPL Chapter 3: Untyped Arithmetic Expressions (A)
(view/print)
- Session 6: Jan 26
- Reading: Chapter 3 of TAPL
- TAPL Chapter 3: Untyped Arithmetic Expressions (A)
(view/print)
- TAPL Chapter 3: Untyped Arithmetic Expressions (B)
(view/print)
- Session 7: Jan 29
- Reading: Chapter 3 of TAPL
- TAPL Chapter 3: Untyped Arithmetic Expressions (B)
(view/print)
- Session 8: Feb 2
- Reading: Chapter 3 of TAPL
- TAPL Chapter 3: Untyped Arithmetic Expressions (B)
(view/print)
- Session 9: Feb 5
- Reading: Up through "Presenting Part I" of DAWOC
- TAPL Chapter 3: Untyped Arithmetic Expressions (B)
(view/print)
- Assignment 1
- Session 10: Feb 7
- Reading: Up through page 33 of DAWOC
- TAPL Chapter 3: Untyped Arithmetic Expressions (B)
(view/print)
- Recursive and iterative versions of factorial in OCaml
(fact1.ml,
fact2.ml)
- Session 11: Feb 9
- Session 12: Feb 12
- Session 13: Feb 14
- Session 14: Feb 16
- Session 15: Feb 19
- Session 16: Feb 21
- Reading: Chapters 4 and 5 of TAPL
- Implementation of Untyped Arithmetic Expressions
(see syntax.ml and core.ml)
(arith,
arith.tar.gz)
- Tail-Recursive Implementation of Untyped Arithmetic Expressions
(see syntax.ml and core.ml)
(arith-tail,
arith-tail.tar.gz)
- Session 17: Feb 23
- Reading: Chapter 5 of TAPL
- TAPL Chapter 5: Untyped Lambda Calculus
(view/print)
- Session 18: Feb 26
- Reading: Chapter 5 of TAPL
- TAPL Chapter 5: Untyped Lambda Calculus
(view/print)
- Session 19: Feb 28
- Session 20: Mar 2
- Reading: Chapter 5 of TAPL
- TAPL Chapter 5: Untyped Lambda Calculus
(view/print)
- Untyped Lambda Calculus Implementation
(see syntax.ml and core.ml)
(untyped,
untyped.tar.gz)
- Session 21: Mar 5
- Reading: Chapter 5 of TAPL
- TAPL Chapter 5: Untyped Lambda Calculus
(view/print)
- Untyped Lambda Calculus Implementation
(see syntax.ml and core.ml)
(untyped,
untyped.tar.gz)
- Session 22: Mar 7
- Reading: Chapter 6-7 of TAPL
- TAPL Chapter 5: Untyped Lambda Calculus
(view/print)
- Definition of factorial using functional
(fact3.ml)
- TAPL Chapter 6: Nameless Representation of Terms
(view/print)
- Session 23: Mar 9
- Reading: Chapter 6-7 of TAPL
- TAPL Chapter 6: Nameless Representation of Terms
(view/print)
- Session 24: Mar 12
- Reading: Chapter 8 of TAPL
- TAPL Chapter 6: Nameless Representation of Terms
(view/print)
- Untyped Lambda Calculus Implementation
(see syntax.ml and core.ml)
(untyped,
untyped.tar.gz)
- TAPL Chapter 8: Typed Arithmetic Expressions
(view/print)
- Session 25: Mar 14
- Session 26: Mar 16
- Session 27: Mar 26
- Reading: Chapter 9 of TAPL
- TAPL Chapter 8: Typed Arithmetic Expressions
(view/print)
- TAPL Chapter 9: Simply Typed Lambda Calculus
(view/print)
- Session 28: Mar 28
- Reading: Chapter 9 of TAPL
- TAPL Chapter 9: Simply Typed Lambda Calculus
(view/print)
- Session 29: Mar 30
- Reading: Chapter 9 of TAPL
- TAPL Chapter 9: Simply Typed Lambda Calculus
(view/print)
- Session 30: Apr 2
- Reading: Chapter 10 of TAPL
- Model answer to Assignment 4
(fib-untyped.txt)
- TAPL Chapter 9: Simply Typed Lambda Calculus
(view/print)
- Session 31: Apr 4
- Reading: Chapter 10 of TAPL
- TAPL Chapter 9: Simply Typed Lambda Calculus
(view/print)
- Simply Typed Lambda Calculus Implementation
(see syntax.ml and core.ml)
(simplebool,
simplebool.tar.gz)
- Session 32: Apr 6
- Reading: Chapter 11 of TAPL
- TAPL Chapter 11: Simple Extensions (A)
(view/print)
- Session 33: Apr 9
- Reading: Chapter 11 of TAPL
- TAPL Chapter 11: Simple Extensions (A)
(view/print)
- Session 34: Apr 11
- Session 35: Apr 16
- Reading: Chapter 11 of TAPL
- TAPL Chapter 11: Simple Extensions (A)
(view/print)
- TAPL Chapter 11: Simple Extensions (B)
(view/print)
- TAPL Chapter 11: Simple Extensions (C)
(view/print)
- Session 36: Apr 18
- Session 37: Apr 20
- Session 38: Apr 23
- Reading: Chapters 12 and 13 of TAPL
- Normalization of the Simply Typed Lambda-Calculus
- Session 39: Apr 25
- Reading: Chapters 12 and 13 of TAPL
- Normalization of the Simply Typed Lambda-Calculus
- Assignment 6
- Session 40: Apr 27
- Reading: Section References of Chapter Imperative Programming of DAWOC
- Reading: Chapter 13 of TAPL
- Assignment 6
- Imperative version of factorial in OCaml, using references
(fact4.ml)
- Do-it-yourself objects in OCaml, using references
(object.ml)
- Session 41: Apr 30
- Reading: Chapter 13 of TAPL
- TAPL Chapter 13: References
(view/print)
- Session 42: May 2
- Reading: Chapter 13 of TAPL
- TAPL Chapter 13: References
(view/print)
- Session 43: May 4
Assignments
Final Examination
Alley Stoughton
(stough@cis.ksu.edu)