- To develop a universal programming language.
- To define a theory of equivalence of computation processes. This would be
the basis for a theory of equivalence preserving transformations. - To represent algorithms by symbolic expressions in such a way that significant
changes in the behavior represented by the algorithms are represented by
simple changes in the symbolic expressions. - To represent computers as well as computations in a formalism that permits
a treatment of the relation between a computation and the computer that
carries out the computation. - To give a quantitative theory of computation. For example to find a quantitative
measure of the size of a computation analogous to Shannon’s measure
of information
(Referencing a paper by McCarthy, quoted from a summary here)