Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
LISP: a portable implementation
Hekmatpour S., Prentice-Hall, Inc., Upper Saddle River, NJ, 1989. Type: Book (9789780135374900)
Date Reviewed: Mar 1 1990

Have you ever wanted well-documented source code for a LISP interpreter? If so, then LISP--A portable implementation could be for you. This text takes its reader routine-by-routine through the implementation of a moderate-sized LISP interpreter written in the C language. The text is organized along the lines of the source code; it contains chapters on storage management, input/output, expression evaluation, and flow of control. The appendix includes a table that maps LISP functions to the C module that implements them. The complete source is available on a 51-4--inch floppy diskette. As delivered, the interpreter runs on MS-DOS and is easily compiled on UNIX systems.

The author assumes that the reader is familiar with both the LISP and C languages. The target audience consists of practitioners who want a detailed look at a LISP implementation. Also, since the text is packed with logically organized and well-written C code, it could be used in a course on software engineering.

Unfortunately, there is little discussion of the decisions made during the design. The book contains descriptions of how Kernal (as the interpreter is called) works but no discussion of why particular algorithms were chosen nor of alternative algorithms. For example, in the presentation of the hashed symbol table, the author presents the data structures clearly, but does not mention alternate schemes nor does he discuss why the particular hash algorithm was chosen.

The text would benefit from a more complete index, especially if it listed each of the LISP functions. Since the description of each function is presented along with its implementation, to get details on a function, the reader must determine where the function is implemented and then scan the chapter describing that module. This is a real nuisance, particularly since Kernal “is not based on any particular LISP dialect; it has its own dialect.” Alternatively, a reference manual for Kernal would be a boon.

On the whole, the text does a good job of presenting an interpreter for LISP, but unfortunately, it goes no further.

Reviewer:  A. R. Feuer Review #: CR113795
Bookmark and Share
 
Lisp (D.3.2 ... )
 
 
Interpreters (D.3.4 ... )
 
Would you recommend this review?
yes
no
Other reviews under "Lisp": Date
LISP
Foderaro J. Communications of the ACM 34(9): 271991. Type: Article
Dec 1 1992
Lisp systems in the 1990s
Layer D., Richardson C. Communications of the ACM 34(9): 48-57, 1991. Type: Article
Dec 1 1992
The architecture of Lisp machines
Pleszkun A., Thazhuthaveetil M. Computer 20(3): 35-44, 1987. Type: Article
Aug 1 1988
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