Next: LISP Options On The
Up: Introduction
Previous: Why not an Integrated
Much care has been taken to ensure the source code is self-documented and
easy to understand. To achieve readability and consistency a number of
conventions and organizations have been used in formulating the code.
These are as follows.
- All the LISP source codes are in files with extension L .
- These files (files with extension .l \) are not ready to compile.
For details see the chapter on compilation.
- Macro-defined constants are appearing in upper case only.
- LISP data structures are all conventionally named to start
with a capital letter X.
- typedef keywords of LISP data structures are all
appearing in upper case only. Throughout the source code
these keywords are used mostly and not the ones with X.
File organization and description of the files are given below.
- big-n.l
- contains the arbitrary precision integer arithmetic
support functions.
- errors.l
- Contains the error messages of the LISP interpreter.
- flags.l
- System dependent flag macros are defined in this file.
- fnames.l
- Contains the names, internal names, number of arguments,
and types of the STD-LISP functions of the interpreter.
- hd.l
- Contains all the global static declarations and initializations
of LISP interpreter.
- lisp-fn.l
- Contains the implementations of the STD-LISP functions
of the interpreter.
- lisp-zfn.l
- Contains the support functions.
Here the function names always begin with the letter z.
- sysid.l
- List of predefined identifiers of STD-LISP,
their flags, print
names,and values. Used when BITF flag is zero.
- sysids.l
- Contains the list of predefined identifiers of LISP,
their attributes, print names,and values. Used when BITF flag is one.
- type.l, types.l
- Contain the macro definitions, structure
definitions, and type definitions of the implementation.
- yylex.l
- Contains the parser support functions for LISP.
- zfnames.l
- Contains the names of functions that are defined in
lisp-zfn.l
Following utility programs are used to prepare the LISP file system.
- cr1.c
- Hashtable of the predefined LISP
identifiers is generated, and identifiers are declared statically.
- cr2.c
- Prepares support functions for compilation.
- crc.c
- Prepares compiler generated functions for compilation.
- cri.c
- Prepares the initialiation file.
- size.c
- Program which calculates PAGESIZE
In addition to these files you will find some other files related to
the LISP C compiler. They are grouped under the subdirectory
compiler in distribution. Here you will find the following files:
- compiler.lsp
- The LISP code of A.C. Hearn's Portable
LISP compiler[4].
- lap.lsp
- The LISP code that is the front end for the compiler.
The job of this code is to convert the
output of Hearn's compiler (which are LISP expresions
corresponding to macro calls of a lisp-machine) to
C function definitions and an initialization environment
(we name this environment urwelt in rememberance
of W.Heisenberg, meaning whatever existed
before history started).
- comp*
- These files are the outcome of the compilation of the
compiler itself. How they are used is explained in details
in the ``Compiler'' chapter.
Next: LISP Options On The
Up: Introduction
Previous: Why not an Integrated
Gokturk UCOLUK
Fri Nov 1 21:52:13 EET 1996