1 Language Structure

The EULISP definition comprises the following items:

Level-0:
comprises all the level-0 classes, functions, defining forms and special forms , which is this text minus §17. The object system can be extended by user-defined structure classes, and generic functions.
Level-1:
extends level-0 with the classes, functions, defining forms and special forms defined in §17. The object system can be extended by user-defined classes and metaclasses. The implementation of level-1 is not necessarily written or writable as a conforming level-0 program.

A level-0 function is a (generic) function defined in this text to be part of a conforming processor for level-0. A function defined in terms of level-0 operations is an example of a level-0 application.

Much of the functionality of EULISP is defined in terms of modules . These modules might be available (and used) at any level, but certain modules are required at a given level. Whenever a module depends on the operations available at a given level, that dependency will be specified.

EULISP level-0 is provided by the module level-0. This module imports and re-exports the modules specified in table 1.

Modules comprising eulisp0:



Module Section(s)


character 16.1
collection 16.2
compare 16.3
condition 12.8
convert 16.4
copy 16.5
double 16.6
fpi 16.9
formatted-io16.8
function 12.2
keyword 16.11
list 16.12
lock 15.2
mathlib ??
number 16.14
telos0 11
stream 16.15
string 16.16
symbol 16.17
table 16.18
thread 15.1
vector 16.19


This definition is organized in three parts:

Sections 912:
describes the core of level-0 of EULISP, covering modules, simple classes, objects and generic functions, threads, conditions, control forms and events. These sections contain the information about EULISP that characterizes the language.
Section 16:
describes the classes required at level-0 and the operations defined on instances of those classes. The section is organized by module in alphabetical order. These sections contain information about the predefined classes in EULISP that are necessary to make the language usable, but is not central to an appreciation of the language.
Section 17:
describes the reflective aspects of the object system and how to program the metaobject protocol and some additional control forms.

Prior to these, sections 28 define the scope of the text, cite normative references, conformance definitions, error definitions, typographical and layout conventions and terminology definitions used in this text.