haddock@ti-csl (04/19/86)
/* ---------- "Need Info On SCHEME Language" ---------- */ >I need to find a description of the SCHEME Language and possibly a >unix or dos version of the language? Any info will be welcome. Small note: TI's "PC Scheme" has been available since the time mentioned in Don Oxley's message. Yes, we got it out ON TIME! -Rusty- ================================================================ *hardcopy* *electr{onic, ic}* Rusty Haddock ARPA: Haddock%TI-CSL@CSNET-RELAY.ARPA POB 226015 M/S 238 CSNET: Haddock@TI-CSL Texas Instruments Inc. USENET: {ut-sally,convex!smu,texsun}!ti-csl!haddock Dallas, Texas 75266 VOICE: (214) 995-0330 ================================================================ This file contains information on all known Scheme implementations. This was compiled by Jonathan Rees on 15 November 1985. For the most part it consists of electronic mail messages directly from the people responsible. Entries are in reverse order of receipt. Send inquiries about the SCHEME@MIT-MC mailing list to Scheme-Request@MIT-MC. MIT AI memo 848, the "Revised Revised Report on Scheme," Will Clinger, editor, can be ordered from: Elizabeth Heepe Publications, Room NE43-818 MIT Artifical Intelligence Laboratory 545 Technology Square Cambridge MA 02139 Enclose a check for $6.00 per copy (U.S. funds) payable to the MIT Artificial Intelligence Laboratory. Immediately following is the message which solicited the messages which follow it in this file. - Jonathan Rees ---------- Date: Mon, 21 Oct 85 16:08:06 EDT From: Jonathan A Rees <JAR@MIT-MC.ARPA> Subject: scheme implementations To: SCHEME@MIT-MC.ARPA Message-ID: <[MIT-MC.ARPA].687283.851021.JAR> To make sure that everyone out there has current information, I want to ask people who have or are actively working on Scheme implementations to send out a SHORT message, giving the following information: - Name of implementation - Implemented by whom - Supported by whom, and to what extent - Hardware and operating system(s) - Availability: when, approximate pr copyright status - iption of dialecare with RRRSS [*] and with the dialect used in S&ICP) - Intended use: education, number crunching, systems programming, etc. - Implementation style (S-code, native-code-compiler-based, or whatever) - Remarks, interesting features, misfeatures, and applications, etc. - Whom to contact for more information [* Sorry, I use the following abbreviations: S&ICP = the book "Structure and Interpretation of Computer Programs" by Abelson & Sussman RRRSS = the Scheme dialect described in the Revised Revised Report ERRRSS = the "essential" subset of RRRSS] Date: Wednesday, 20 Nov 85 15:31:49 PST From: Will Clinger <willc%tekchips%tektronix.csnet at CSNET-RELAY.ARPA> Implementation: MacScheme Implemented by: Will Clinger, Liz Heller, and John Ulrich Supported by: Semantic Microsystems Hardware: Apple Macintosh or Lisa (Mac XL). Requires 512K RAM, can use up to 16M. Operating Systems: Finder (Macintosh); MacWorks (Lisa). Price/Availability: $125. Available since August 1985. Implementation: Compiles to interpreted byte code. Intended Use: Education, personal computing, AI applications Contact: Semantic Microsystems 4470 S.W. Hall St., Suite 340 Beaverton, OR 97005 (503) 643-4539 MacScheme supports all essential and many optional features of the Revised Revised Report on Scheme. It includes a compatibility package for use with the Abelson and Sussman text, but environments are not supported. The compiler and byte code architecture were described in Clinger's paper at the 1984 Lisp conference. Numbers are implemented as a union of 30-bit fixnums, bignums, and 32-bit flonums; bignum arithmetic is slow. The system includes facilities for breaking, tracing, and debugging; most run-time errors can be repaired in the debugger. There is a pretty printer. An escape to machine code is documented for direct access to the Macintosh Toolbox. The system includes a simple editor that understands Scheme syntax and makes good use of multiple windows and the mouse. This editor runs as a foreground process while Scheme runs in the background. MacScheme's speed is comparable to that of similar interpreters (MIT Scheme on the HP 9836, TI Scheme) when hardware is taken into account. Non-tail- recursive procedure calls are relatively slow in MacScheme but tight tail- recursive loops are relatively fast. Interpreted MacScheme seems to run about half as fast as compiled ExperLisp on the Macintosh. Date: 12 Nov 1985 1035-CST From: Don Oxley <OXLEY%CSL60%ti-csl.csnet@CSNET-RELAY.ARPA> Subject: PC Scheme Implementation Information To: Scheme@mit-mc.arpa The following description of TI's PC Scheme product is a (belated) response to Jonathan's request for implementation information: Implementation: PC Scheme Developed by: Texas Instruments Computer Science Lab Supported by: Texas Instruments Digital Systems Group Hardware: TI Professional and TI Business-Pro Computers, IBM PC, PC/XT, PC/AT and IBM compatibles Operating Systems: MS(tm)-DOS 2.1 (PC-DOS) or better (at least 320K, dual floppy) Price/Availability: List price - $95, available in December 1985 Implementation: Incrementally compiled to byte-codes Intended Use: Education, research, and support of AI software on PCs PC Scheme is an implementation of Scheme for the TI Professional Computer and IBM(r) Personal Computer families. The product consists of an optimizing compiler, a byte-code interpreter, extensive run time support, an interactive, display-oriented editor, a language reference manual, and a user's guide. The system was developed on the TI Professional Computer in Scheme itself, with critical run time routines coded in C and assembly language for increased performance. PC Scheme provides all the essential and most of the optional features of the Revised Revised Report on Scheme. It fully supports the dialect used in the book "Structure and Interpretation of Computer Programs" by Abelson and Sussman as well as many extensions developed at Indiana University, MIT, and TI. These include first-class engines and environments and an experimental, object-oriented programming system with dynamic multiple inheritance called SCOOPS. Data type support includes symbols, lists, vectors, strings, fixnums, bignums, flonums (64 bit IEEE floating point), characters, closures, continuations, environments, and I/O ports. Evaluation is based on incremental compilation to byte-coded "virtual machine" code which is emulated using threaded code techniques. Informal benchmarks, including some of the Gabriel set, show PC Scheme programs to be about 3-10 times faster than interpreted IQLISP(tm) and 2-4 times faster than interpreted Golden Common LISP(tm). PC Scheme is oriented primarily towards compilation and fast execution rather than extensive source-level debugging. However, it does provide trace and breakpoint facilities and an interactive Inspector with commands to display and manipulate call stack frames and lexical environments, edit variable bindings, trace back through a chain of procedure calls, and evaluate expressions in the environment of a breakpoint. All user-correctable errors trap to the Inspector. The display-oriented editor supplied with PC Scheme is a subset of EDWIN, a version of EMACS written by the Scheme project at MIT and adapted to PC Scheme by TI. 512K bytes of RAM are required to use EDWIN. Other PC Scheme run time support includes windowed screen input/output, graphics, a pretty-printer, and an editor of in-memory list structures. Compiled files can be converted to a "fast-load" format to speed up load times. Files containing variable definitions can be "autoloaded" on demand. A Winchester disk minimizes the inconvenience of autoloading, but is not required. Documentation includes a 286-page language reference manual and a 93-page user's guide. Neither manual attempts to be a tutorial manual for Scheme itself. PC Scheme is being used extensively within Texas Instruments and is the basis for future releases of TI's PC-based AI products, including Arborist (tm) and the Personal Consultant Plus (tm). It is currently in use at approximately 25 universities in various settings (classes, experimentation, evaluation). PC Scheme may be ordered beginning November 15 for shipment in December. To order, write to Texas Instruments, 12501 Research Blvd., MS 2151, Austin, TX 78759 and ask for TI Part number #2537900-0001. You may also order by telephone using MasterCard or VISA by calling 1-(800)-TI-PARTS. Questions or comments on the product may be directed to the address given above. We also welcome less formal technical questions and comments, which may be directed via CSNET to Oxley@TI-CSL. --Don Date: Thu, 31 Oct 85 11:27:02 est From: Kent Dybvig <dyb%indiana.csnet@CSNET-RELAY.ARPA> To: SCHEME@mit-mc.ARPA Subject: Scheme Implementation Blurb: Chez Scheme Implementation: Chez Scheme Authored by: Kent Dybvig Supported by: limited support by the author Hardware: VAX Operating Systems: 4.2 BSD UNIX (or ULTRIX) Implementation: incrementally compiled to native code Intended Use: education and research Chez Scheme was first released earlier this year and is now being used at about 10 universities for classes and research. Chez Scheme supports almost all of the required and optional features of the RRRS. The next major release (in spring or summer 1986) will support 100% of the required features of the standard. In addition to the features of the RRRS, Chez Scheme provides error and exception handling, engines, programmable cafes and waiters (fancy read-eval-print loops), tracing and statistics- gathering facilities, and fast-loading compiled files. Chez Scheme provides floating point numbers, arbitrary-precision ratios, and arbitrary-precision integers, but no imaginary numbers at this time. Bruce Smith of UNC and myself have written a book on Scheme that is scheduled to be published in the spring. This book serves as the reference manual for Chez Scheme and is sent in draft form with Chez Scheme distributions. Chez Scheme's biggest claim to fame is the speed and size of its implementation. It outperforms Franz Lisp and DEC Common Lisp on most programs, but the initial core image is less than 500K bytes, about half of which is read-only and sharable. Sue Dybvig and myself have started a small consulting business, named Cadence Research Systems, primarily for the purpose of distributing and supporting Chez Scheme. We charge a license fee to cover costs of distribution. The license fee per site is $400 for US colleges and universities and $1000 for companies who will use the system for research and education only. For the license forms and ordering information, contact: Kent Dybvig Cadence Research Systems 620 Park Ridge Road Bloomington, IN 47401 812/333-9269 You can also reach me during the day at 812/335-8653. Kent Dybvig dyb.indiana@csnet-relay Date: Mon, 28 Oct 85 17:41:39 EST From: "George J. Carrette" <GJC@MIT-MC.ARPA> To: JAR@MIT-MC.ARPA cc: SCHEME@MIT-MC.ARPA In-reply-to: Msg of Mon 28 Oct 85 15:27:44 EST from Jonathan A Rees <JAR at MIT-MC.ARPA> Message-ID: <[MIT-MC.ARPA].695676.851028.GJC> - Name of implementation: SIOD (Scheme In One Defun) - Implemented by whom: GJC (George Carrette) - Supported by whom, and to what extent: GJC, for use in LMI lisp classes. - Hardware and operating system(s): LMI-LAMBDA, ZETA(FOO?)LISP. - Availability: Given out at my "guest lectures" to LMI lisp classes. - Description of dialect: Sufficient to run S&ICP problems I find most interesting. Especially streams, the meta-linguistic abtraction section, and the interpreter/hardware sections. - Intended use: education. Both to introduce S&ICP and to show interpreter implementation, also "WHY MACROS OR BAD, or WHY CANT YOU READ MY CODE?" - Implementation style: The function SEVAL (scheme EVAL) is one DEFUN. The "text" being interpreted is syntax-checked first, but is otherwise just the obvious s-expression. The environment representation is an ALIST. Because of the underlying simplicity it was possible to code special cases such as look-ahead for simple variable lookup, and primitives such as +,/,CAR,CDR, applied to simple variable lookups without fear. There is very little overhead in the interpreter besides variable lookup (a single instruction, %ASSQ) and environment consing, (cheaper by the dozen and with the volatility based GC). The resulting interpreter is somewhat gross because of its use of specialized macrology, but is extremely fast, especially when compiled into MICROCODE by the Microcompiler. - Remarks: One reason for this was to see just how far a few hours work on a simple idea implemented somewhat grossly could go. Whenever I was too burned out to do design-level work or debugging work (presumably on jobs that I was paid to do) I might feel like trying to code another SIOD special case. It is also a study for "how much effort should go into avoiding CONS, vs other things?" It could be interesting to compare its efficiency with JAR's compiler-style CLSCH. - Whom to contact for more information: GJC@MC. Date: Mon, 28 Oct 85 13:25:34 EST From: Jonathan A Rees <JAR@MIT-MC.ARPA> Subject: implementations To: SCHEME@MIT-MC.ARPA Message-ID: <[MIT-MC.ARPA].695199.851028.JAR> [The following information may be out of date.] @b[Scheme84] is a version of Scheme that has been under development at Indiana University for the past few years, and is used there to support half a dozen different computer science courses. The system runs on the Vax under either VMS or Berkeley Unix.chem4 software is in the public domain, and can be obtained by writing to@foot{The current distribution policy for Scheme84 is that Indiana University will supply it for free, if you send them a tape and return postage. (Please specify whether the system is to be for VMS or for Unix.) On the other hand, the University reserves the right to begin charging a fee to recover the cost of distribution, should this become necessary.} @begin(display) Scheme84 Distribution Nancy Garrett c/o Dan Friedman Department of Computer Science Indiana University Bloomington, Indiana (812)-335-9770 E-mail address nlg@@indiana @end(display) @b[T] is a version of Scheme that was developed at Yale University, and is available for distribution. The system runs on Vaxes under VMS or Unix (Berkeley 4.1 or 4.2) and on the Apollo Domain. For more information, contact Jim Philbin at Yale (203-436-0802) or write to @begin(display) Yale University Dept. of Computer Science PO Box 2158 Yale Station New Haven, CT 06520 @end(display) Vincennes Scheme is a version of Scheme written entirely in portable C, for Unix V7 and Berkeley 4.1 and 4.2. It runs on 32-bit machines (e.g. 68K or Vax) as well as on 16-bit machines (e.g. Z8000 in which it can fit in 128K). This Scheme is compatible with the MIT version, and includes an interpreter with the basic environment: debugger, history, break, stepper, where. A compiler that generates C code is available. For more information, contact Patrick Greussay Universite Paris-8-Vincennes 2 rue de la Liberte Saint-Denis CEDEX 02 93526 France Date: Mon, 21 Oct 85 20:27:49 EDT From: Jonathan A Rees <JAR@MIT-MC.ARPA> Subject: Implementation blurb: Scheme in Common Lisp To: SCHEME@MIT-MC.ARPA Message-ID: <[MIT-MC.ARPA].687556.851021.JAR> - Name of implementation: CLSCH (Scheme embedded in Common Lisp) - Implemented by whom: Jonathan Rees - Supported by whom, and to what extent: Unsupported, although I'll probably continue to improve it. No promises. - Hardware and operating system(s): Will run in any implementation of Common Lisp. - Availability: In alpha-test now (looking for guinea pigs). Free. Distributed as source via electronic mail or FTP. (I won't make tapes.) May eventually become part of Common Lisp "Yellow Pages." - Description of dialect: Subset. All of the essential features of RRRSS exist, except for a correct CALL-WITH-CURRENT-CONTINUATION (some of you will say that it's not Scheme at all, and I don't disagree); also some of the rest of RRRSS, and most of the S&ICP dialect. - Intended use: Running existing ERRRSS programs in any Common Lisp. Not an ideal development system, since debugging tools are weak. - Implementation style: Low-tech. A simple compiler translates Scheme into Common Lisp, making sure that variable binding and tail recursion are done right. The output of the compiler can be interpreted by a CL interpreter or compiled by a CL compiler. - Remarks: I did this mostly for my own personal use. Maybe other people will find it useful too. - Contact: Jonathan Rees (JAR@MIT-MC), MIT Artificial Intelligence Laboratory, 545 Technology Square, Cambridge MA 02139, (617) 253-8581.