A Structured Programming Approach to DataMuch of current programming practice is basically empirical and ad hoc in approach. Each problem is tackled without relation to those that have gone before; experiences are made and stored as a series of fragments. Now, under the pressure of events, this unsatisfactory state of affairs is coming to an end. Programming is becoming a technology, a theory known as structured programming is developing. The purpose of a theory is to categorise and explain existing practice, thus enabling it to be improved through the development of new and sharper techniques. The resulting experiences have then to be fed back into the theory so that the process of enrichment may continue. This dialectical relationship between theory and practice is essential to a healthy programming technology. The lack of such a relationship in the 1950s and 60s and the accompanying software crisis certainly confirm the converse of this proposition. My aim in writing this book has been to explain the current state of the theory of structured programming, so that it may be used to improve the reader's practice. The book deals with two facets of programming - how to design a program in terms of abstract data structures and how to represent the data structures on real and bounded computers. The separation between program design and data structure representation leads to more reliable and flexible programs. |
Contents
Program Design Notation | 6 |
Arrays | 23 |
On Program Design | 36 |
Copyright | |
12 other sections not shown
Other editions - View all
Common terms and phrases
abstract program accessed Algol 60 algorithm assignment average search length binary search tree binary tree binarytree C. A. R. Hoare consider contains defined deletion directory entries directory p].key dynamic data structure efficient elements empty end end entry with key error example false found boolean function goto graph hashing hashing function implementation infotype initialise input file insert integer intsetclass isinlist iterative keytype Kleene star left.tag linear linked list linear probing linear search maxposn method mode(n neworderno node nominal code nonempty operating system order number output overflow parameter PERFORM pointer polynomial probes problem procedure entry programming language queue Quicksort record type recursive procedures remove representation runtime set structures shown in figure sieve Sieve of Eratosthenes simple solution sorted sparse array specify stack stepwise refinement stock code storage string Structured Programming structured type subtree target techniques terminal transaction updating value.key variable