Structural Informatics Group (SIG) logo
Home | Projects | Demos | Downloads | Publications | Local Info | About Us | New site
Go to the first, previous, next, last section, table of contents.

Introduction

This manual documents slisp for programmers intending to write application lisp code and/or add new C-coded primitives to xlisp. This manual is not intended for nonprogrammers who only want to use the system.

Slisp (skandha-lisp) is an extensible version of David Betz's 76704.47@CompuServe.COM 'xlisp', a small lisp interpreter written in portable C.

The particular xlisp version used derives from Niels P Mayer's mayer@hplnpm.hpl.hp.com 'winterp' package for x-windows, and incorporates much work by Tom Almy toma@sail.labs.tek.com, among others. It has been modified by adding hooks which make it easy to add new functions to the interpreter without actually modifying the interpreter source files, turning xlisp into a generic application engine which can -- and is -- being used for a variety of applications. Within our own group slisp is the basis for skandha4, a 3-D graphics package; siserver, a lisp interface to a structural information database, and others. We hope that by providing the basic slisp environment many other similar applications will be developed.

Slisp uses the hybrid implementation strategy of emacs, winterp, xlispstat, the Nasa Panel Library, autocad and other recent packages, using a small portable lisp interpreter as a flexible high-level application programming language, together with application-specific C-coded primitives to provide speed and special facilities where needed.

Quick Overview of the chapters in this manual.

Slisp Tutorial
An introduction to Slisp, which becomes progressively more detailed. How to program in LISP using an existing slisp application, how to download a personal copy of slisp in order to add new c functions, the file organization of slisp, how to configure slisp for a new machine, how to create a new slisp application, how to create a new slisp c module that is to be part of an slisp application, and how to add new primitives.
Xlisp Tutorial
A simple introduction to LISP programming in xlisp. This is a fairly generic introduction to lisp programming suitable for programmers who haven't used the language before. Programmers new to lisp will want to read this chapter thoroughly and work the examples; Programmers who know lisp will probably want to skim it quickly to get a feel for what xlisp does and does not support.
Xlisp Objects Tutorial
A simple introduction to the object-oriented facilities of xlisp. These predate the common-lisp object oriented facilities, and unfortunately are quite different from the commonlisp approach. On the bright side, xlisp's facilities are *much* simpler, while still giving us what we really need. Programmers new to xlisp will want to read this chapter thoroughly.
Xlisp Reference
Exhaustive function by function and variable by variable documentation of the standard xlisp facilities, . It does *not* document facilities added to xlisp by application programs such as skandha4, since the same xlisp kernel is used by a number of different packages, and it is important to maintain a clear distinction between the invariant xlisp kernel and the application-specific stuff. The slisp file hierarchy is designed to allow application-specific documentation to be added as a separate top level in the emacs info directory, one for each separate application. However, every application will have access to the basic functions documented in this chapter. No sane person is likely to actually read this chapter end to end.
Xlisp Internals
The internal workings of the xlisp core interpreter. You certainly don't need to read this if you are just writing lisp code, and you shouldn't need to understand most of it even if you are adding new C primitives.

Go to the first, previous, next, last section, table of contents.