- 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)