gjc@mga.COM (George J. Carrette) (12/15/89)
Suffice it to say that lisp intepreters are popular as extension languages and/or applications glue/prototyping mechanisms. Problem 1: There are usually a truckload of build-in subroutines which may or may not reflect how you want to program *your* application. Problem 2: Size and complexity. Even the so-called "small" lisps tend to be multi-source-file things, with their own idea of "main-program" structure. Problem 3: Adding new lisp callable subroutines is usually a royal pain, because of having to deal with garbage-collection related issues. Problem 4: A lisp callable subroutine is usually not callable from C without passing arguments in some strange ideosyncratic manner. To illustrate that these problems can be solved I present SIOD: (Scheme in One Day). Read/Eval/Print/Load/Save/GC are all in a single small source file without a main program. The source is less than 40 Kbytes, and on a VAX/VMS system compiles into 14 Kbytes of executable code. (The optional main program in a different file is but a few lines long). You may try it out for yourself by anonymous ftp to bu-it.bu.edu, cd src/gjc, get siod-v2.3-shar. -gjc