Subject: Re: Doing mini-languages in CL
From: rpw3@rpw3.org (Rob Warnock)
Date: Sun, 15 Feb 2004 07:01:42 -0600
Newsgroups: comp.lang.lisp
Message-ID: <7N2cnUTHm_cr8LLdXTWc-g@speakeasy.net>
Greg Menke  <gregm-news@toadmail.com> wrote:
+---------------
| cstacy@news.dtpq.com (Christopher C. Stacy) writes:
| > ... If you're going to implement a subset Lisp compiler
| > as a teaching example, be sure to strongly highlight: the fact that
| > it's not anything like a complete Common Lisp, people don't normally
| > program in this subset...
| 
| ...  A mini-pseudo-lisp gives vastly improved syntax and a lot of
| features the rom basic doesn't have. ... It is not intended to be
| a large part of CL, or comprehensive in any particular way, its more
| of a pain reduction tool.
+---------------

In that case, you might want to piggyback on a classical acronym from
the old days: LAP, for Lisp Assembly Program. You can call your compiler
"LAP with some convenience Lisp macros", if you want to be really safe.  ;-}


-Rob

p.s. I've been musing off & on for some time about a "LAP-C"
[double pun intended], which would be an S-expr representation
of C source that would allow "convenience Lisp macros" for doing
all the neat compile-time stuff that "#define" is so terrible at.
Does anyone know of any past projects along those lines...?

Note: I am quite familiar with Aubrey Jaffer's "Schlep", a simple
Scheme-subset to C transliterator, but it uses a kind of Hungarian
mangling of symbols [though with suffixes instead of the more common
prefixes] to convey type information to the C output, and for some
time now I've felt that a CL-subset to C transliterator would be more
perspicuous, since one could use normal CL declaration syntax to capture
the type info instead of Hungarian. [A couple of years ago I hacked
on "Schlep" for a while trying to add CL declaration syntax, and got
bogged down. But that was before I started programming in anger in CL...
Hmmm... Maybe now...]

In any case, those interested in Lispy mini-languages for hardware work
might find it interesting to read the following:

	<URL:http://swiss.csail.mit.edu/~jaffer/Work/>
	<URL:http://swiss.csail.mit.edu/~jaffer/Work/scm95-1>
	<URL:http://swiss.csail.mit.edu/~jaffer/Work/scm95-2>
	<URL:http://swissnet.ai.mit.edu/~jaffer/Docupage/schlep.html>
	<URL:http://swissnet.ai.mit.edu/~jaffer/Docupage/schlep.scm>

Older version:
	<URL:http://swissnet.ai.mit.edu/ftpdir/users/jaffer/schlep.scm>

-----
Rob Warnock			<rpw3@rpw3.org>
627 26th Avenue			<URL:http://rpw3.org/>
San Mateo, CA 94403		(650)572-2607