[Paper Contents] [Previous] [Eclipse Home Page]

Notes

1. This is in contrast to ``interface'' style approaches such as Xerox's Inter-Language Unification (ILU).[Janssen] The tight integration is not only compatible with interface approaches, but may make interface implementation easier.

2. When LINT is defined as a C preprocessor definition, clObject is actually a union of these, so that no warnings are issued with respect to casts. On some platforms, these two representations are the same anyway.

3. float, double, (char *) and (wchar_t *) primitive C data are accessible directly in their usual C format (i.e., without conversion) from SINGLE-FLOAT, DOUBLE-FLOAT, BASE-STRING and EXTENDED-STRING Lisp data. This includes null termination for strings.

4. Of course, that's how they are used in Lisp, too.

5. Currently, using COMPILE-FILE on a DEFGENERIC form does not create a named C function as it does for DEFUN forms. Thus generic functions must be called by funcalling their Lisp closure object or symbol instead of by calling a named C function directly. This restriction will be lifted in future versions.

6. These temporary variables should not effect performance, as a good C compiler should be able to eliminate them. They do effect readability/maintainability, however.

7. The design of the interpreter and integration with the compiler is outlined in the last section of this paper.

References

[Ansi] ANSI X3. ``X3.226:1994, American National Standard for Programming Language Common LISP.'' American National Standards Institute, New York, NY, 1994. (http://www.elwood.com/alu/table/references.htm#ansi)

[Attardi] Attardi, Giuseppe. ``Overview of the ECL Compiler.'' Unpublished. (ftp://ftp.di.unipi.it/pub/lang/lisp/)

[Boehm] Boehm, H., and M. Weiser, ``Garbage Collection in an Uncooperative Environment,'' Software Practice & Experience, September 1988, pp. 807-820. (See DEMERS, below.)

[Demers] Demers Alan, Hans Boehm and Carl Hauser. ``Posix Portable Common Runtime (PPCR) Documentation.'' Unpublished, 1994. (ftp://parcftp.xerox.com/pub/ppcr/)

[Haible] Haible, Bruno and Michael Stoll. ``CLISP Documentation.'' Unpublished. (ftp://ma2s2.mathematik.uni-karlsruhe.de/pub/lisp/clisp)

[Harbison] Harbison, Samuel P. and Guy L. Steele Jr. ``C, A Reference Manual,'' 4th Ed. Prentice-Hall, Englewood Cliffs, NJ, 1995.

[Hennessey] Hennessey, Wade. ``WCL: Delivering Efficient Common Lisp Applciations under Unix.'' Unpublished. (ftp://cdr.stanford.edu/pub/wcl/)

[Hoffmann] Hoffmann, Ulrich. ``Using C as Target Code for Translating Highlevel Programming Languages.'' Unpublished, 1993. (ftp.informatik.uni-kiel.de:/pub/kiel/apply/)

[Janssen] Janssen, Bill, Mike Spreitzer, Dan Larner, Chris Jacobi. ``Inter-Language Unification 2.0 Reference Manual.'' Xerox, Palo Alto, CA, 1998. (ftp://ftp.parc.xerox.com/pub/ilu/ilu.html)

[Kernighan] Kernighan, Brian W. and Dennis M Ritchie. ``The C Programming Language,'' 1st Ed. Prentice-Hall, Englewood Cliffs, NJ, 1978.

[Kiczales] Kiczales, Gregor, Jim des Rivieres and Daniel G. Bobrow. ``The Art of the Metaobject Protocol.'' MIT Press. Cambridge, MA, 1992. (http://www.elwood.com/alu/table/references.htm#mop)

[Schelter] Schelter, William. ``GCL Documentation.'' Unpublished, 1994. (ftp://ftp.cli.com/pub/gcl/)

[Stearns] Stearns, Howard. ``Elwood Eclipse Common Lisp Product Documentation.'' Elwood, Oak Creek, WI, 1997. (http://www.elwood.com/eclipse-info)

[Steele] Steele, Guy L., Jr. ``Common Lisp: The Language,'' 1st Ed. Digital Press, Beford, MA, 1984.

[Yuasa] Yuasa, Taiichi. ``Design and Implementation of Kyoto Common Lisp.'' Journal of Information Processing, Vol. 13, No. 3, 1990.


[Paper Contents] [Previous] [Eclipse Home Page]