Contents || Index


I am often asked, “Why did you use LISP?” About 20 years ago, I was encouraged to use LISP by Russell Kirsch, then of the AI group at NIST, who had used LISP extensively for image processing on a PDP-10. I started out using LISP on a VAX computer, which then controlled an image processing package, in another process on the VAX, written in FORTRAN. The Macintosh Common Lisp environment then became, and still is now, a friendly and powerful development environment for prototyping code and delivering tools. I moved the LISP part of the system to the Mac. As the Mac got more powerful, I again moved the image processing part of the system to LISP on the Mac, so that the program ran entirely on a desktop computer.

This program was used over the years for various image processing tasks of the Microanalysis Group at NIST. Gradually, the Group shifted to using primarily Windows machines, Kevin Milans of CMU, and I moved MacLispix, as the image processing program was called then, to Allegro Common Lisp, ACL, on the PC. Like Macintosh Common Lisp, ACL is a good environment for rapid one person prototyping of computer tools, and for building executables for delivery. Now called Lispix, it is still used for image processing and analysis by the Microanalysis Group.

LISP and portability

Although Lispix runs on Windows, for the most part Lispix is written in Common LISP. The other part of Lispix is a small library written in Allegro Common Lisp for Windows, with graphics code specifically for the Windows operating system.

There are other small libraries with code for the Macintosh and Unix, but these libraries are now out of date.

I have tried to keep the portable (Common LISP) code separate from the machine specific code, and to keep the machine specific code to a minimum.

I have used LISP because the language and the development environment make it easier to implement and test special tools.

The source code is available on request.

Advantages of LISP

More Advantages of LISP

Common Lisp is well suited to large programming projects and explorative programming. The language has a dynamic semantics which distinguishes it from languages such as C and Ada. It features automatic memory management, an interactive incremental development environment, a module system, a large number of powerful data structures, a large standard library of useful functions, a sophisticated object system supporting multiple inheritance and generic functions, an exception system, user-defined types and a macro system which allows programmers to extend the language.

I lifted this from:


By selecting these links, you will be leaving NIST webspace. We have provided these links to other web sites because they may have information that would be of interest to you. No inferences should be drawn on account of other sites being referenced, or not, from this page. There may be other web sites that are more appropriate for your purpose. NIST does not necessarily endorse the views expressed, or concur with the facts presented on these sites. Further, NIST does not endorse any commercial products that may be mentioned on these sites. Please address comments about this page to

LISP documentation

Free LISP Versions

Note - to port Lispix into these LISP versions, a small library containing the graphics user interface must be adapted from Allegro Common Lisp to the new version of Lisp.

Allegro Common Lisp

Lispix is written in Common Lisp, except for functions that use the Windows graphics user interface.  For graphics, mouse clicks and the like, Lispix uses functions provided by Allegro Common Lisp*.  Lispix is also developed and distributed using Allegro Common Lisp, available from Franz Inc.

Franz Inc.
555 12th Street, Suite 1450 Directions
Oakland, CA 94607
1-888-CLOS-NOW or (510) 452-2000
Fax: (510) 452-0182