About this book
A small program is presented to motivate the concerns for programmer productivity and program quality that are the central issues of this set of essays. The example is one which demonstrates the performance aspect of programming. In order to achieve program quality, where a program is understood and known to be correct, we need a primary program description. This primary program description not only describes the program but is also used to generate the program. The method of applying primary program descriptions to produce programs is called metaprogramming and is described in Chapter 3. In the later chapters, we show how the method can be analyzed from an economic point of view to address the issues of productivity as well. 1 Introduction In thinking about programming over the last decade, I have concluded that very little is known about the process of programming or the engineering of software . The consequence of having very little established truth to use as a basis for thinking about programming is that almost every conclusion must be reasoned out from first principles. Also, you cannot rely solely on textbooks but must use experimentation and direct observation to gain some experience with which to proceed.
calculus design language productivity programming software software engineering