Previous Chapter Next Chapter Table of Contents Glossary Index

Glossary of Terms


application bundle

A specially-structured directory that Mac OS X recognizes as a launchable Cocoa application. Graphical applications on Mac OS X are represented as application bundles.



The standard user-interface libraries and frameworks provided by Apple for development of applications on Mac OS X.

creator code

A four-character identifier used in Mac OS X to uniquely identify an application.


displaced array

An array with no storage of its own for elements, which points to the storage of another array, called its target. Reading or writing the elements of the displaced array returns or changes the contents of the target.


fasl file

A file containing compiled lisp code that the Lisp is able to quickly load and use. A "fast-load" file.



A text editor, written in Common Lisp, similar in features to Emacs. Hemlock was originally developed as part of CMU Common Lisp. A portable version of Hemlock is built into the Clozure CL IDE.



"Integrated Development Environment". In the context of Clozure CL, "the IDE" refers to the experimental Cocoa windowing development environment provided in source form with Clozure CL distributions.


The in-memory state of a running Lisp system, containing functions, data structures, variables, and so on. Also, a file containing archived versions of these data in a format that can be loaded and reconstituted by the Lisp kernel. A working Clozure CL system consists of the kernel and an image.


An application supplied by Apple with their developer tools that can be used to interactively build user-interface elements for Cocoa applications.



The binary executable program that implements the lowest levels of the Lisp system. A working Clozure CL system consists of the kernel and an image.


listener window

In the IDE, a Cocoa window that contains a pseudo-terminal session that communicates with a Lisp REPL.


memory-mapped file

A file whose contents are accessible as a range of memory addresses. Some operating systems support this feature, in which the virtual memory subsystem arranges for a range of virtual memory addresses to point to the contents of an open file. Programs can then gain access to the file's contents by operating on memory addresses in that range. Access to the file's contents is valid only as long as the file remains open.



A data file created by Apple's InterfaceBuilder application, which contains archived Objective-C objects that define user-interface elements for a Cocoa application. Under Mac OS X, Cocoa applications typically create their user interface elements by reading nibfiles and unarchiving the objects in them.



"Read-eval-print loop". The interactive shell provided by Clozure CL for interaction with Lisp.



The simplest, most general element of Lisp syntax. An s-expression may be an atom (such as a symbol, integer, or string), or it may be a list of s-expressions.

special variable

A variable whose binding is in the dynamic environment. Special variables are essentially equivalent to global variables in languages other than Lisp. A special variable binding is visible in any lexical environment, so long as a lexical binding has not shadowed it.

static variable

In Clozure CL, a variable whose value is shared across all threads, and which may not be dynamically rebound. Changing a static variable's value in one thread causes all threads to see the new value. Attempting to dynamically rebind the variable (for instance, by using LET, or using the variable name as a parameter in a LAMBDA form) signals an error.


toplevel function

The function executed by Lisp automatically once its startup is complete. Clozure CL's default toplevel is the interactive read-eval-print loop that you normally use to interact with Lisp. You can, however, replace the toplevel with a function of your own design, changing Clozure CL from a Lisp development system into some tool of your making.


An expression that denotes a type. Type specifiers may be symbols (such as CONS and STRING), or they may be more complex S-expressions (such as (UNSIGNED-BYTE 8)).

Previous Chapter Next Chapter Table of Contents Glossary Index