Program development by inductive stepwise refinement

A constructive method of program development is presented. It seeks to unify two important ideas about program development. Namely that programming is a goal‐oriented activity and that there should be a correspondence between data and program structures. The latter concept is seen to be extensible beyond the data processing context in which it was originally proposed. Induction provides the vehicle for program development by stepwise refinement, with the final program being constructed by application of a sequence of progressively more powerful generalizations. The design process employed guarantees the correctness of the final program provided that each of the refinement steps have been correctly taken. The method is illustrated by a number of samples.

[1]  Donald E. Knuth,et al.  The art of computer programming. Vol.2: Seminumerical algorithms , 1981 .

[2]  Cliff B. Jones,et al.  Software development - a rigorous approach , 1980, Prentice Hall international series in computer science.

[3]  Infotech,et al.  Structured analysis and design , 1978 .

[4]  Donald Ervin Knuth,et al.  The Art of Computer Programming, Volume II: Seminumerical Algorithms , 1970 .

[5]  W. B. History of the Theory of Numbers , Nature.

[6]  R. Geoff Dromey Forced termination of loops , 1985, Softw. Pract. Exp..

[7]  J. Wrench Table errata: The art of computer programming, Vol. 2: Seminumerical algorithms (Addison-Wesley, Reading, Mass., 1969) by Donald E. Knuth , 1970 .

[8]  David Gries,et al.  The Science of Programming , 1981, Text and Monographs in Computer Science.

[9]  Malcolm C. Newey,et al.  Programming language systems , 1978 .

[10]  G. Pólya Patterns of plausible inference , 1970 .

[11]  Peter Naur,et al.  An experiment on program development , 1972 .

[12]  Peter Henderson,et al.  An experiment in structured programming , 1972 .

[13]  Anthony I. Wasserman,et al.  Computer programming methodology , 1978, SOEN.

[14]  L. Dickson History of the Theory of Numbers , 1924, Nature.

[15]  Michael Jackson,et al.  Principles of program design , 1975 .

[16]  George Kingsley Zipf,et al.  Human behavior and the principle of least effort , 1949 .

[17]  George Polya,et al.  Induction and Analogy in Mathematics , 1954 .

[18]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[19]  Glenn D. Bergland,et al.  A Guided Tour of Program Design Methodologies , 1981, Computer.