Re: GNU Extension Language Plans

Bill Janssen (janssen@parc.xerox.com)
22 Nov 1994 07:43:58 GMT

In article <LGM.94Nov20184218@polaris.ih.att.com> lgm@polaris.ih.att.com (Lawrence G. Mayka) writes:

In article <DAVIDM.94Oct24193229@halfdome.prism.kla.com> davidm@prism.kla.com (David S. Masterson) writes:

Doesn't this argue for not embedding *any* extension language in a program but
instead defining a request/reply API that programs must conform to? ...

Having faced and fought this "solution" only too often, I can say that
it has two fatal flaws. One is data. An API must certainly pass data
back and forth; indeed, often, internal state (i.e., data) is
precisely what the API is principally concerned with. (Many "APIs"
I've dealt with are merely collections of 'set' and 'get' routines,
which don't fool anybody.) Once you recognize the need for data, you
must define datatypes and their behavior, means of constructing new
datatypes which may inherit behavior from previous ones, etc. You may
have to pass executable data (i.e., functions) across the API.

These problems can be overcome with considerably less effort than
building a new programming language, assuming that you are using an
appropriate technology to overcome them. The ILU system from PARC is
our attempt at building that technology. It allows API's to be
defined in a language-neutral way that provides considerably more
functionality than a vanilla ``C API'' standardization could. It also
allows API's expressed in this way to be called from a number of
programming languages, currently including ANSI C, C++, Modula-3,
Python, and Common Lisp. Emacs-Lisp and Tcl are currently being
added. (Adding support for a particular new language takes between a
week (for people experienced in ILU internals and the new language)
and a month (for people somewhat experienced in the new language)).
ILU also allows libraries in one address space to be called via
networking from another address space, so a distributed computing
mechanism is also included. Thus ILU can be used for both library and
network APIs.

ILU documentation and code is freely available via anon FTP. See the
document ftp://ftp.parc.xerox.com/pub/ilu/ilu.html for details.

Bill

--
 Bill Janssen  <janssen@parc.xerox.com> (415) 812-4763  FAX: (415) 812-4777
 Xerox Palo Alto Research Center, 3333 Coyote Hill Rd, Palo Alto, CA  94304
 URL:  ftp://parcftp.parc.xerox.com/pub/ilu/misc/janssen.html