[net.ai] Portable and More Efficient Lisps

Slade@YALE.ARPA@sri-unix.UUCP (07/23/83)

From:  Stephen Slade <Slade@YALE.ARPA>

Chip Maguire took violent exception to the claim that T, a version of 
Scheme implemented at Yale, is "more efficient and portable" compared
to other Lisp implementations.  He then listed the numerous machines
on which PSL, developed at Utah, now runs.

The problem in this case is one of operator precedence:  "more" has
higher precedence than "and".  Thus, T is both portable AND more
efficient.  These two features are intertwined in the language design
and implementation through the use of lexical scoping and an
optimizing compiler which performs numerous source-to-source
optimizations.  Many of the compiler operations that depend on the
specific target machine are table driven.  For example, the register
allocation scheme clearly depends on the number and type of registers
available.  The actual code generator is certainly machine dependent,
but does not comprise a large portion of the compiler.  The compiler
is written largely in T, simplifying the task of porting the compiler
itself.

For PSL, portability was a major implementation goal.  For T,
portability became a byproduct of the language and compiler design.  A
central goal of T has been to provide a clean, elegant, and efficient
LISP.  The T implementers strove to achieve compatibility not only
among different machines, but also between the interpreted and
compiled code -- often a source of problems in other Lisps.  So far, T
has been implemented for the M68000 (Apollo/Domain), VAX/UNIX, and
VAX/VMS.  There are plans for other machine implementations, as well
as enhancements of the elegance and efficiency of the language itself.

People at Yale have been using T for the past several years now.  
Applications have included an extensible text editor with inductive 
inference capability (editing by example), a hierarchical digital
circuit graphics editor and simulator, and numerous large AI programs.
T is also being used in a great many undergraduate courses both at
Yale and elsewhere.

I believe that PSL and Standard LISP have been very worthwhile
endeavors and have bestowed the salutary light of LISP on many
machines that had theretofore languished in the lispless darkness of
algebraic languages.  T, though virtuous in design and virtual in
implementation, does not address the FORTRAN-heathen, but rather seeks
to uplift the converted and provide comfort to those true-believers
who know, in their heart of hearts, that LISP can embrace both
elegance and efficiency.  Should this credo also facilitate
portability, well, praise the Lord.

Maguire@COLUMBIA-20.ARPA@sri-unix.UUCP (07/31/83)

From:  Chip Maguire <Maguire@COLUMBIA-20.ARPA>

        What I wish to generate is a discussion of what are the
features of LISP@-[n] which provide a nice/efficient/(other standard
virtues) environment for computer aided intellectual tasks (such as
AI, CAD, etc.).
        For example, quite a lot of the work that I have been involved
with recently required that from with a LISP environment that I
generate line drawings to represent: data structures, binding
environments for a multi-processor simulator, or even as a graphical
syntax for programming.  Thus, I would like to have 1) reasonable
support (in terms of packages of routines) for textual labels and line
drawings; and 2) this same package available irrespective of which
machine I happen to be using at the time [within the limits of the
hardware available].

        What other examples of common utilities are emerging as
"expected" `primitives'?  Chip