The Computer Journal · 1969 · 327 citations · 3 references
ComputingComputer ScienceData StructuresProgramming LanguagesTheory Of ComputationCompiler ConstructionData-flow AnalysisFunctional ProgrammingRecursion TheorySyntax AnalysisTheorem ProvingCompiler DesignInduction PrinciplesInductive DefinitionsInductive ProofsInductive Theorem ProvingRecursionSortingStructural Induction
This paper discusses the technique of structural induction for proving theorems about programs. This technique is closely related to recursion induction but makes use of the inductive definition of the data structures handled by the programs. It treats programs with recursion but without assignments or jumps. Some syntactic extensions to Landin's functional programming language ISWIM are suggested which make it easier to program the manipulation of data structures and to develop proofs about such programs. Two sample proofs are given to demonstrate the technique, one for a tree sorting algorithm and one for a simple compiler for expressions.
3
The Mechanical Evaluation of Expressions
P. J. Landin · The Computer Journal · 1964 · 932 citations · Full text
The next 700 programming languages
P. J. Landin · Communications of the ACM · 1966 · 581 citations · Full text
The Equivalence of Certain Computations
D. C. Cooper · The Computer Journal · 1966 · 56 citations · Full text