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