 
Summary: calculus and types
Lecture notes
Midland Graduate School / APPSEM Spring School 2004
Thorsten Altenkirch
School of Computer Science and Information Technology, Nottingham University
txa@cs.nott.ac.uk
1 Introduction
1.1 A short history
The calculus was introduced by Alonzo Church in the 40ies. The initial goal
was formalisation of mathematical reasoning, I believe. Then Turing showed that
the definable functions on encodings of natural numbers are the same as the
ones definable by Turingmachines. This lead to the ChurchTuring thesis that
all notions of computations are equivalent in power.
Realizing the potential of calculus for programming, in the 50ies, McCarthy
used notation in the design of the programming language LISP (for LISt Pro
cessing). This started the tradition of functional programming languages, which
lead to languages such as ML in the 80ies and Haskell in the 90ies. Both language
are based on typed versions of the calculus. ML following the LISP tradition is
an impure functional languages, allowing effects such that updates of the mem
ory to occur during evaluation and further computation depend on this, while
