Historical Note Home

The name "MacLispix": LISP + Lispix -> MacLispix

LISP is a symbolic programming language used extensively by the Artificial Intelligence community. It was developed for research in functional programming (thus a good theoretical Mathematical base) and is used for symbolic programming (e.g.. developing languages, symbolic calculations), and Artificial Intelligence programming where both the algorithms and data structures tend to be very complex.

LISP has all the advantages of an interpreted language (although it is actually compiled incrementally for computation speed)

Lispix was probably the first image processing language. (Refs) It was written by Russ Kirsch, Don Orser, Ida Rhodes, and consisted of machine code implementation of image processing functions imbedded in the LISP environment.

Lispix was implemented again by David Bright, first as a LISP-FORTRAN combination system running on a VAX. LISP, was used for higher level control and the user interface. FORTRAN held the images, displayed them, and operated on them directly. Later, a LISP became available which was far less expensive, faster, and which took advantage of the MacÕs graphical user interface. The LISP half of the system was moved to a Macintosh running ÒMacintosh Allegro Common LispÓ (MACL). Allegro LISP was written by Franz Inc., which sold the Macintosh product to Apple.

Finally, with the evolution of MACL to MCL, or ÒMacintosh Common LispÓ, which had good support from Apple, good foreign function capability and reasonably fast array operations, the FORTRAN part of Lispix which handled the arrays was moved over to the Macintosh so that all of the system could now run in LISP on the Macintosh, thus the name ÒMacLispixÓ. The main disadvantage of this scheme was that the computation load was now back again all on one computer. There are many advantages, however:

 

  1. Only a Mac is required to run the system, rather than a VAX workstation and a Mac communicating by a serial link, thus making the system available to a much wider audience. Also, the hardware required to run MacLispix is cheaper and more ÔstandardÕ.
  2. The MCL development environment on the Mac has many advantages over the FORTRAN development environment on the VAX, for example array operations could be developed and tested in much less time.
  3. The Mac graphics user interface (GUI) could be applied directly to the images.
  4. Real and complex numbers, fractions, tuples or vectors and more complex data types can be stored directly as image array elements.
  5. The image arrays can now be made on the fly and deleted as necessary, making better use of computer memory.

The MacLispix environment is built on the Macintosh Common Lisp environment. This is described in an article for programmers by Mike Engber (Engber 1993). The MCL environment is in turn built on the Common Lisp environment and language, which is an object oriented standard programming language (Steel 1990, Booch 1991)

An advantage of the MacLispix environment for image processing is the ready access to the image arrays. For example, the value of image *mydata* at location (3,5) is obtained with the LISP expression (aref *mydata* 3 5). Functions can be written quickly and tested immediately on array *mydata*. The MacLispix tools are then available to display and examine the result.

Unlike many other programming languages, LISP Òknows what it knowsÓ. For example, (array-dimensions *mydata*) will give the dimensions of the image array, and (array- element-type *mydata*) will tell if the elements are bytes, words, etc. The apropos menu item can search for functions, image arrays and other things by a part of the name. {ctrl x}{ctrl d} on the function name (in an editor window)will bring up the documentation.

Another advantage to the LISP environment involves dynamic memory. Arrays need not be dimensioned ahead of time, and the space is reclaimed for reuse when the image arrays are cleared.