Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!linus!decvax!harpo!seismo!hao!hplabs!sri-unix!Slade@YALE.ARPA From: Slade@YALE.ARPA@sri-unix.UUCP Newsgroups: net.ai Subject: Portable and More Efficient Lisps Message-ID: <3459@sri-arpa.UUCP> Date: Sat, 23-Jul-83 15:58:24 EDT Article-I.D.: sri-arpa.3459 Posted: Sat Jul 23 15:58:24 1983 Date-Received: Thu, 28-Jul-83 14:38:35 EDT Lines: 46 From: Stephen SladeChip 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.