Lisp Glossary

prev next

site map



This is not a general Lisp glossary. It only has terms used in the text of this site. The ANSI Standard for Common Lisp has an extensive glossary.

Common Lisp Object System (CLOS)
The object-oriented features of Common Lisp. These are introduced on this site and defined in the Common Lisp and Meta Object Protocol references.

An object-oriented exception handling mechanism.

First Class
A language supports some data type as first-class when the objects of the type can be created and used as data at run time. First-class data can be kept in variables, and passed to and returned from functions. In dynamically typed languages, first-class data can also have its type examined at run-time.

A set of objects which are of different types. For example, any element of a heterogenous array might contain integers or floating point numbers, or another array, or any kind of data.

A set of objects that are required to all be of the same type. For example a homegenous array of integers can contain only integers.

The mechanism for repeatedly performing a series of actions. Common Lisp provides a number of constructions for performing iteration, as well as support for recursion.

Meta Object Protocol (MOP)
In general, an object oriented program, accessible to programers, which defines the internals of a supported system in such a way as to allow programmers to tailor the system to better meet their particular needs. Such needs might include efficiency or expressive power.

In particular, a MOP has been defined for the Common Lisp Object System, which is implemented using this particular MOP. Often, when people refer to "the MOP" as opposed to "a MOP", they are refering to the CLOS MOP. However, AMOP is short for The Art of the Metaobject Protocol, which defines "the MOP". See the MOP references.

Pretty Printing
An object-oriented, programmer-definable, formatted printing system.

Symbolic Processing
The processing of information, as opposed to the mere crunching of numbers. Information may indeed be numeric, but may also include arbitrary, heterogeneous objects.

Usually, it is convenient in such processing to assign names to things which can themselves be accessed as first class data, and to be able to determine the type and internal representation of objects at run time.

A specification for the number and types of arguments to a function, and the number and types of return values. A function with optional or named (keyword) arguments can still have a signature.