Homework 5: Fun With System F
Out: November 10
Due: November 17, classtime
Programming with types
One objective of this assignment is to get across the idea that the types you are using can guide
the programs you are writing. For this first part of this a
Lecture 4: Logic and Hypothetical Judgments
September 17
How do we define the "meaning" of a proposition?
o
o
Denotational - 27x37 and 999 denote the same integer
Problem: 27x39 = 999, true, and FORALL n>z FORALL x,y,z != 0 x^n +
y^n != z^n (i.e. Fermat's
Homework 1: Steps
Out: September 10
Due: September 17, at the beginning of class
Bring the homework to class or email it to rjsimmon@cs. Writing up this assignment (LaTeX,
Word, ASCII, whatever) is HIGHLY ENCOURAGED. If you think you have perfect handwrit
Homework 2: Safety and Logic
Out: September 29
Due: October 6, at the beginning of class
Part 1: Extending the language
The following language has been discussed in class:
e := n | tt | ff | e1 + e2 | e1 < e2 | if e1 then e2 else e3
Your job is to extend
Lecture 10: Algebraic Types
September 10
Pairs
To the language of natural numbers and booleans and functions that we have been developing,
we want to add the following:
:= . | x
e := . | <e1, e2> | &pi1 e | &pi2
Dynamic semantics
e1 value
e2 value
- v-p
Lecture 8: The Simply-Typed Lambda Calculus & The
Substitution Lemma
October 1
The Simply-Typed Lambda Calculus
Review and finish progress & preservation for the new additions to the languages
(lambda abstraction and application)
The patterns for progress
Lecture 12: Standard ML II
October 15
Clarification: ML has expressions (which are like the kinds of expressions e we have
encountered in class) and patterns and declaration
An example of an expression is fn x => x + 1 or (x + 4 + y, true andalso
false)
A
Lecture 11: Standard ML
September 13
Simple examples
$ sml
Standard ML of New Jersey v110.67 [built: Thu Nov 15 10:18:08 2007]
- 1;
val it = 1 : int
- it;
val it = 1 : int
- it + 4;
val it = 5 : int
- fn x => x + 1;
val it = fn : int -> int
- fn x => x +