Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Lisp style and design
Miller M., Benson E., Digital Press, Newton, MA, 1990. Type: Book (9781555580445)
Date Reviewed: Dec 1 1991

If programming as a discipline is to be viewed seriously, it must be possible to recognize its fundamental questions, principles, and methods. The formulation of this body of knowledge about programming can occur on a formal or an informal level. This book is a contribution to formulating such knowledge. The book consists of seven chapters and three appendices. The topics discussed roughly correspond to the most important activities in the process of program creation (specifying the program, choosing the best constructs, putting the pieces together, commenting and organizing the files, debugging, and programming efficiently).

The major theme of the book, as the title indicates, is the style of programming in LISP. The authors consider style “not an attribute but a process.” Their approach to style comprises “efficient algorithms, good organization, appropriate abstractions, well-constructed function definitions, useful commentary and effective debugging.” The notion of style is thus closely connected to the notion of programming methodology. Programming methodology is a more general idea, and not only because style is devoted to a specific programming language. While many significant elements of programming style are certainly specific to LISP programming, one could definitely build up a notion of programming style abstracted from a particular language and formulated in terms of abstract language constructs. This would give rise to at least four different programming styles--for procedural, functional, logic, and object-oriented programming. Some common guidelines of an even more abstract programming style could be extracted. This would still not be identical to programming methodology, which deals with a far broader process than the creation of program text.

On the other hand, the authors have touched a subject that has great importance in the context of programming methodology. From the practical point of view, program text formation can still be considered the core of the whole process of software development. From a more theoretical viewpoint, the book tries to formulate a specific kind of knowledge that an experienced LISP programmer possesses, when that is related to the style of his or her programs. The strength of the book lies in creating a body of programming knowledge. The movement toward explicit formulation of what belongs to the roots of the programmer’s profession could ultimately help give this art the status of a science. The nature of programming would require, however, that this knowledge be expressed in a formal way using some mathematical or knowledge representation formalism. The lack of formalism could be considered the weakness of the book. All the elements of programming style are presented informally, sometimes by means of examples. While this approach is certainly appropriate and aids readability, the book would become a substantial contribution if the material were also expressed as a system of program schemata. It must be stated clearly, however, that the authors have not declared any such goal.

I find the book excellent, from the original idea to the example program implemented and documented in an appendix. The ideas presented in the book could stimulate further research in fruitful directions. For example, with respect to the role of personal idioms within the programming style, a more systematic approach to devising personal idioms could be sought, or system support for devising and maintaining personal idioms could be developed.

The book is well prepared in terms of the index, references, and typography (although one typographic error, the atom “end 2” on page 144, unfortunately proves that the program texts printed in the book either would not run or are not those that have been run). The book is intended for people who have written LISP programs before. It is not intended as a classroom textbook. It might prove useful as supplementary reading for students with some LISP experience, however. Anyone confronted with this book will probably think about his or her programming style and might even improve it.

Reviewer:  P. Navrat Review #: CR123831
Bookmark and Share
 
Lisp (I.2.5 ... )
 
 
Language Constructs and Features (D.3.3 )
 
Would you recommend this review?
yes
no
Other reviews under "Lisp": Date
The elements of artificial intelligence: an introduction using LISP
Tanimoto S., Computer Science Press, Inc., New York, NY, 1987. Type: Book (9789780881751130)
Oct 1 1987
The death of creativity: is Common LISP a LISP-like language?
Allen J. AI Expert 2(2): 48-61, 1987. Type: Article
Nov 1 1987
LISP: a gentle introduction to symbolic computation
Touretzky D., Harper&Row Publishers, Inc., New York, NY, 1984. Type: Book (9789780060466572)
Feb 1 1985
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy