Program development by stepwise refinement
Communications of the ACM · 1971 · 924 citations · 2 references
The creative activity of programming--to be distinguished from coding--is usually taught by examples serving to exhibit certain techniques. It is here considered as a sequence of design decisions concerning the decomposition of tasks into subtasks and of data into data structures. The process of successive refinement of specifications is illustrated by a short but nontrivial example, from which a number of conclusions are drawn regarding the art and the instruction of programming.
2
A constructive approach to the problem of program correctness
E. Dijkstra · BIT Numerical Mathematics · 1968
238 citations
Programming by action clusters
Peter Naur · BIT Numerical Mathematics · 1969
100 citations