home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / answers / scheme-faq / part1 next >
Encoding:
Text File  |  1993-12-13  |  63.8 KB  |  1,254 lines

  1. Newsgroups: comp.lang.scheme,comp.lang.lisp,news.answers,comp.answers
  2. Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!usc!math.ohio-state.edu!darwin.sura.net!europa.eng.gtefsd.com!fs7.ece.cmu.edu!honeydew.srv.cs.cmu.edu!crabapple.srv.cs.cmu.edu!mkant
  3. From: mkant+@cs.cmu.edu (Mark Kantrowitz)
  4. Subject: FAQ: Scheme Frequently Asked Questions 1/1 [Monthly posting]
  5. Message-ID: <scheme_1.faq_755769954@cs.cmu.edu>
  6. Followup-To: poster
  7. Sender: news@cs.cmu.edu (Usenet News System)
  8. Supersedes: <scheme_1.faq_753177866@cs.cmu.edu>
  9. Nntp-Posting-Host: a.gp.cs.cmu.edu
  10. Reply-To: lisp-faq@think.com
  11. Organization: School of Computer Science, Carnegie Mellon
  12. Date: Mon, 13 Dec 1993 08:06:34 GMT
  13. Approved: news-answers-request@MIT.Edu
  14. Expires: Mon, 24 Jan 1994 08:05:54 GMT
  15. Lines: 1236
  16. Xref: senator-bedfellow.mit.edu comp.lang.scheme:8069 comp.lang.lisp:11531 news.answers:15723 comp.answers:2975
  17.  
  18. Archive-name: scheme-faq/part1
  19. Last-Modified: Tue Oct 12 23:43:39 1993 by Mark Kantrowitz
  20. Version: 1.8
  21.  
  22. ;;; ****************************************************************
  23. ;;; Answers to Frequently Asked Questions about Scheme *************
  24. ;;; ****************************************************************
  25. ;;; Written by Mark Kantrowitz and Barry Margolin
  26. ;;; scheme_1.faq -- 64587 bytes
  27.  
  28. This post contains the Scheme FAQ.
  29.  
  30. If you think of questions that are appropriate for this FAQ, or would
  31. like to improve an answer, please send email to us at lisp-faq@think.com.
  32.  
  33. Note that the lisp-faq mailing list is for discussion of the content
  34. of the FAQ posting only.  It is not the place to ask questions about Scheme;
  35. use either the scheme@ai.mit.edu mailing list or the comp.lang.scheme
  36. newsgroup (scheme@mc.lcs.mit.edu) for that. If a question appears frequently
  37. in one of those forums, it will get added to the FAQ list.
  38.  
  39. Topics Covered:
  40.   [1-0]      What is the purpose of this newsgroup?
  41.   [1-1]      What Scheme-related discussion groups and mailing lists exist?
  42.   [1-2]      What is the difference between Scheme and Common Lisp?
  43.   [1-3]      What documentation is available on Scheme? How can I learn Scheme?
  44.   [1-4]      Where can I learn about implementing Scheme interpreters and 
  45.       compilers?
  46.   [1-5]      Free Scheme implementations.
  47.   [1-6]      Commercial Scheme implementations.
  48.   [1-7]      Standards for Scheme -- What are R4RS and IEEE P1178?
  49.   [1-8]      How do I do object-oriented programming in Scheme?
  50.   [1-9]      Repositories of Scheme Software
  51.   [1-10]  Publicly Redistributable Scheme Software
  52.   [1-11]  Where can I get an implementation of Prolog in Scheme?
  53.   [1-12]  What does SICP, SCOOPS, R4RS, CAR, CDR, ... mean?
  54.  
  55. Search for \[#\] to get to question number # quickly.
  56.  
  57. Recent Changes:
  58.  
  59. ;;; 1.7
  60. ;;; 25-AUG-93 mk    Updated PCS/Geneva entry. New FTP location.
  61. ;;;
  62. ;;; 1.8
  63. ;;; 13-SEP-93 mk    Added entry on STk to [1-5].
  64. ;;; 21-SEP-93 mk    Added entry on the GI Scheme Archive.
  65. ;;; 12-OCT-93 mk    New version of VSCMII.
  66.  
  67. Introduction:
  68.  
  69. Certain questions and topics come up frequently in the various network
  70. discussion groups devoted to and related to Scheme.  This file/article is
  71. an attempt to gather these questions and their answers into a convenient
  72. reference for Scheme programmers.  It (or a reference to it) is posted
  73. periodically.  The hope is that this will cut down on the user time and
  74. network bandwidth used to post, read and respond to the same questions
  75. over and over, as well as providing education by answering questions
  76. some readers may not even have thought to ask.
  77.  
  78. This is not a Scheme tutorial, nor is it an exhaustive list of all Scheme
  79. intricacies.  Scheme is a very powerful and expressive language, but with
  80. that power comes many complexities.  This list attempts to address the
  81. ones that average Scheme programmers are likely to encounter.  If you are
  82. new to Scheme, see the answer to the question "How can I learn
  83. Scheme?" [1-3].
  84.  
  85. The latest version of this file is available via anonymous FTP from CMU
  86. and Thinking Machines: 
  87.  
  88.    To obtain the file from CMU, connect by anonymous ftp to any CMU CS
  89.    machine (e.g., ftp.cs.cmu.edu [128.2.206.173]), using username
  90.    "anonymous" and password "name@host". The file scheme_1.faq
  91.    is located in the directory
  92.        /afs/cs.cmu.edu/project/ai-repository/ai/pubs/faqs/scheme/
  93.    [Note: You must cd to this directory in one atomic operation, as
  94.    some of the superior directories on the path are protected from
  95.    access by anonymous ftp.] If your site runs the Andrew File System,
  96.    you can just cp the files directly without bothering with FTP.
  97.  
  98.    To obtain the files from Thinking Machines, ftp them from ftp.think.com,
  99.    in the directory /public/think/lisp/. The file scheme-faq.text contains
  100.    the latest version of the Scheme FAQ. In addition, specific
  101.    versions of the FAQ are available as scheme-faq-<version>.text.
  102.  
  103. We've tried to minimize the overlap with the FAQ postings to the
  104. comp.lang.lisp, comp.lang.clos and comp.ai newsgroups, so if you don't
  105. find what you're looking for here, we suggest you try the FAQs for
  106. those newsgroups. These FAQs should be available by anonymous ftp from
  107. rtfm.mit.edu [18.70.0.209] in the lisp-faq/, ai-faq/ and scheme-faq/
  108. subdirectories of /pub/usenet/news.answers/ or by email. For
  109. instructions on email retrieval, send a mail message to
  110. mail-server@rtfm.mit.edu with "help" and "index" on separate lines in
  111. the body of the message.
  112.  
  113. ----------------------------------------------------------------
  114. Subject: [1-0] What is the purpose of this newsgroup?
  115.  
  116. The newsgroup comp.lang.scheme exists for general discussion of
  117. topics related to the programming language Scheme. For example, possible
  118. topics can include (but are not necessarily limited to):
  119.    announcements of Scheme books and products
  120.    discussion of programs and utilities written in Scheme
  121.    discussion of portability issues
  122.    questions about possible bugs in Scheme implementations
  123.    problems porting an implementation to some architecture
  124. Postings should be of general interest to the Scheme community. See also
  125. question [1-1].
  126.  
  127. Questions about Common Lisp should be directed to the newsgroup
  128. comp.lang.lisp.     Discussion of object oriented programming in Lisp to
  129. the newsgroup comp.lang.clos. Discussion of functional programming
  130. language issues in general should be directed to the newsgroup
  131. comp.lang.functional.  Discussion of AI programs implemented in Scheme
  132. should sometimes be cross-posted to the newsgroup comp.ai.
  133.  
  134. ----------------------------------------------------------------
  135. Subject: [1-1] What Scheme-related discussion groups and mailing lists exist?
  136.      
  137. Before posting to any discussion group, please read the rest
  138. of this FAQ, to make sure your question isn't already answered.
  139.  
  140. See the Lisp FAQ for a list of Lisp-related discussion groups and
  141. mailing lists. We list here only those newsgroups and mailing lists
  142. directly associated with Scheme.
  143.  
  144. Newsgroups:
  145.  
  146.    comp.lang.scheme       General Scheme-related discussion.
  147.                This newsgroup is gatewayed to the
  148.                scheme@mc.lcs.mit.edu mailing list.
  149.    comp.lang.scheme.c       Discussion of C-Scheme, a scheme dialect.
  150.                This newsgroup is gatewayed to the
  151.                info-cscheme@zurich.ai.mit.edu mailing list.
  152.    comp.lang.lisp.x       Discussion of XLISP, a dialect of Lisp, and XScheme.
  153.    comp.lang.dylan       Discussion of Dylan (see [4-6]), Apple's
  154.                new Scheme-like programming language. Gatewayed to
  155.                info-dylan@cambridge.apple.com. 
  156.  
  157. We list several mailing lists below. In general, to be added to
  158. a mailing list, send mail to the "-request" version of the address.
  159. This avoids flooding the mailing list with annoying and trivial
  160. administrative requests. [To subscribe to info-mcl, info-dylan, or
  161. other mailing lists based at cambridge.apple.com, send a message to
  162. majordomo@cambridge.apple.com with "subscribe <list_name>" in the
  163. message body. Likewise use "unsubscribe <list_name>" to cancel your
  164. subscription and "help" to get help.]
  165.  
  166.  
  167. General Scheme Mailing Lists:
  168.  
  169.    scheme@mc.lcs.mit.edu       Discussion of Scheme. Gatewayed to
  170.                    the comp.lang.scheme newsgroup.
  171.    scheme@ai.mit.edu           General discussion about Scheme.
  172.  
  173.  
  174. Particular Flavors of Scheme:
  175.  
  176.    info-cscheme@altdorf.ai.mit.edu,
  177.    info-cscheme@zurich.ai.mit.edu  C-Scheme. Gatewayed to the
  178.                    comp.lang.scheme.c newsgroup.
  179.  
  180.    t-project@cs.yale.edu       T, a dialect of Scheme.
  181.  
  182.    info-clscheme@mc.lcs.mit.edu       PseudoScheme
  183.  
  184.    info-dylan@cambridge.apple.com  Dylan (not really scheme, but)
  185.  
  186. ----------------------------------------------------------------
  187. Subject: [1-2] What is the difference between Scheme and Common Lisp?
  188.  
  189. Scheme is a dialect of Lisp that stresses conceptual elegance and
  190. simplicity. It is specified in R4RS and IEEE standard P1178. (See
  191. question [1-7] for details on standards for Scheme.) Scheme is much
  192. smaller than Common Lisp; the specification is about 50 pages,
  193. compared to Common Lisp's 1300 page draft standard. (See the Lisp FAQ
  194. for details on standards for Common Lisp.) Advocates of Scheme often
  195. find it amusing that the entire Scheme standard is shorter than the
  196. index to Guy Steele's "Common Lisp: the Language, 2nd Edition".
  197.  
  198. Scheme is often used in computer science curricula and programming
  199. language research, due to its ability to represent many programming
  200. abstractions with its simple primitives. Common Lisp is often used for
  201. real world programming because of its large library of utility
  202. functions, a standard object-oriented programming facility (CLOS), and
  203. a sophisticated condition handling system.
  204.  
  205. See question [1-8] for information about object-oriented programming
  206. in Scheme. 
  207.  
  208. In Common Lisp, a simple program would look something like the
  209. following:
  210.  
  211.    (defun fact (n)
  212.      (if (< n 2)
  213.      1
  214.      (* n (fact (1- n)))))
  215.  
  216. In Scheme, the equivalent program would like like this:
  217.  
  218.    (define fact
  219.      (lambda (n)
  220.        (if (< n 2)
  221.        1
  222.      (* n (fact (- n 1))))))
  223.  
  224. Experienced Lisp programmers might write this program as follows in order
  225. to allow it to run in constant space:
  226.  
  227.    (defun fact (n)
  228.      (labels ((tail-recursive-fact (counter accumulator)
  229.         (if (> counter n)
  230.             accumulator
  231.             (tail-recursive-fact (1+ counter)
  232.                      (* counter accumulator)))))
  233.        (tail-recursive-fact 1 1)))
  234.  
  235. Whereas in Scheme the same computation could be written as follows:
  236.  
  237.    (define fact
  238.      (lambda (n)
  239.        (letrec ((tail-recursive-fact
  240.          (lambda (counter accumulator)
  241.            (if (> counter n)
  242.                accumulator
  243.              (tail-recursive-fact (+ counter 1)
  244.                       (* counter accumulator))))))
  245.            (tail-recursive-fact 1 1))))
  246.  
  247. or perhaps (using IEEE named LETs):
  248.  
  249.    (define fact
  250.      (lambda (n)
  251.        (let loop ((counter n)
  252.           (accumulator 1))
  253.         (if (< counter 2)
  254.         accumulator
  255.           (loop (- counter 1)
  256.             (* accumulator counter))))))
  257.  
  258. Some Schemes allow one to use the syntax (define (fact n) ...) instead
  259. of (define fact (lambda (n) ...)).
  260.  
  261. ----------------------------------------------------------------
  262. Subject: [1-3] What documentation is available on Scheme? 
  263.            How can I learn Scheme?
  264.  
  265. Introductions to Scheme:
  266.  
  267.    1. Harold Abelson and Gerald Jay Sussman, with Julie Sussman.
  268.       "Structure and Interpretation of Computer Programs"
  269.       MIT Press (Cambridge, MA) and McGraw-Hill (New York), 1985.
  270.       542 pages. ISBN 0-262-01077-1. The teacher's manual, which is
  271.       also available from MIT Press, does NOT contain solutions to the
  272.       exercises, but does contain hints on teaching with the book.
  273.        Starts off introductory, but rapidly gets into powerful
  274.        Lisp-particular constructs, such as using closures and
  275.        engines, building interpreters, compilers and
  276.        object-oriented systems.  Often referred to by its acronym,
  277.        SICP, which is pronounced "Sick-Pee". MIT problem sets
  278.        are available from the repositories, and materials from
  279.        Gustavus Adolphus College are available from ftp.gac.edu:pub/SICP/.
  280.  
  281.    2. Daniel P. Friedman and M. Felleisen.
  282.       "The Little LISPer"
  283.       MIT Press (Cambridge, MA), 3rd printing, 1989. ISBN 0-262-56038-0.
  284.       Science Research Associates (Chicago), 3rd ed, 1989. 206 pages.
  285.        Good for a quick introduction. Uses Scheme instead of
  286.        Common Lisp.     (The book uses a dialect of Scheme with
  287.        footnotes about translating to Scheme or Common Lisp. The
  288.        footnotes won't allow a non-expert to use Common Lisp for
  289.        the advanced chapters because of the complexity.)
  290.  
  291.    3. George Springer and Daniel P. Friedman
  292.       "Scheme and the Art of Programming" 
  293.       MIT Press and McGraw Hill, 1990, 596 pages.
  294.        Introduces basic concepts of programming in Scheme. Also deals 
  295.        with object oriented programming, co-routining, continuations. 
  296.        Gives numerous examples. Source code from the chapters is
  297.        available from the nexus.yorku.ca repository in pub/scheme/lit/sap/.
  298.  
  299.    4. Wolfgang Kreutzer and Bruce McKenzie
  300.       "Programming for Artificial Intelligence: 
  301.        Methods, Tools and Applications"
  302.       Addison-Wesley (Reading, MA), 1990. 682 pages. 
  303.       ISBN 0-201-41621-2.
  304.        Discusses Scheme, Prolog, and Smalltalk, gives an overview of
  305.        the history and philosophy of AI, surveys three major
  306.        programming paradigms (procedural, declarative, and
  307.        object-oriented), and metaphors to AI programming.
  308.        Source code from the chapters is available from
  309.        nexus.yorku.ca in pub/scheme/lit/ as aibook.tar.Z. Some of
  310.        the programs will only run under MacScheme.
  311.  
  312.    5. Smith, Jerry D.
  313.       "Introduction to Scheme"
  314.        Prentice Hall (Englewood Cliffs, NJ), 1988, 324 pages.
  315.        Focuses on PC Scheme.
  316.  
  317.    6. Michael Eisenberg 
  318.       "Programming in Scheme"
  319.       Scientific Press (Redwood City, CA), 1988. 304 pages.
  320.  
  321.    7. The Ken Dickey article, "The Scheme Programming Language", in
  322.       COMPUTER LANGUAGES magazine, June 1992, is available from the
  323.       Scheme Repository at nexus.yorku.ca:/pub/scheme/txt/intro.txt
  324.       The Revised^4 Report on the Algorithmic Language Scheme is also 
  325.       available from the Scheme Repository.
  326.  
  327.    8. Two articles in BYTE Magazine, February 1988, by Abelson and
  328.       Sussman, and Clinger.
  329.  
  330.    9. The Info files from the MIT Scheme implementation.
  331.  
  332.   10. "Introductory Scheme" by Joseph W. Lavinus and James D. Arthur,
  333.        <lavinus@virginia.edu>. Available from the Lisp Utilities
  334.        Repository as ftp.cs.cmu.edu:user/ai/lang/scheme/doc/intro/ 
  335.        as schemedoc.tar.gz.
  336.  
  337. General Scheme reference books include:
  338.  
  339.    1. K. Dybvig
  340.       "The Scheme programming language"
  341.       Prentice Hall, 1987.
  342.      Good reference for Scheme.
  343.  
  344. Scheme-related periodicals include:
  345.     
  346.    1. LISP Pointers.
  347.       Published by ACM SIGPLAN six times a year. Volume 1, Number 1
  348.       was April-May 1987. 
  349.       Subscriptions: ACM Members $12; ACM Student Members $7; Non-ACM
  350.       members $25. Mail checks payable to the ACM to ACM Inc., PO Box
  351.       12115, Church Street Station, New York, NY 10249.
  352.  
  353.    2. LISP and Symbolic Computation, Kluwer Academic Press. Volume 1
  354.       was published in 1989. (jlz@lucid.com is the editor).  ISSN 0892-4635.
  355.       Subscriptions: Institutions $169; Individuals $80. Add $8 for
  356.       air mail. Kluwer Academic Publishers, PO Box 322, 3300 AH Dordrecht, 
  357.       The Netherlands, or Kluwer Academic Publishers, PO Box 358, Accord
  358.       Station, Hingham, MA 02018-0358. 
  359.  
  360.    3. Proceedings of the biannual ACM Lisp and Functional Programming
  361.       Conference. (First one was in 1980.)
  362.  
  363.    4. Proceedings of the annual Lisp Users and Vendors Conference.
  364.  
  365. See also the Scheme Bibliography from the Scheme Repository
  366. (nexus.yorku.ca:pub/scheme/) for additional readings. A large number
  367. of technical reports on Scheme are now available in the text section
  368. (scheme/txt/).
  369.  
  370. ----------------------------------------------------------------
  371. Subject: [1-4] Where can I learn about implementing Scheme interpreters     
  372.            and compilers?
  373.  
  374. There is no single book that is really comprehensive, so you will have
  375. to combine reading the sources to the various free implementations
  376. (e.g., Gambit [Feeley] and S48 [Rees]) with bits and pieces of tech
  377. reports and various books.
  378.  
  379. Books about Scheme implementation include:
  380.  
  381.    1. John Allen
  382.       "Anatomy of Lisp"
  383.       McGraw-Hill, 1978. 446 pages. ISBN 0-07-001115-X
  384.  
  385.    2. Samuel Kamin
  386.       "Programming Languages, An Interpreter-Based Approach"
  387.       Addison-Wesley, Reading, Mass., 1990. ISBN 0-201-06824-9
  388.        Includes sources to several interpreters for Lisp-like
  389.        languages, and a pointer to sources via anonymous ftp.
  390.  
  391.    3. Sharam Hekmatpour
  392.       "Lisp: A Portable Implementation"
  393.       Prentice Hall, 1985. ISBN 0-13-537490-X.
  394.        Describes a portable implementation of a small dynamic
  395.        Lisp interpreter (including C source code). 
  396.  
  397.    4. Peter Henderson
  398.       "Functional Programming: Application and Implementation"
  399.       Prentice-Hall (Englewood Cliffs, NJ), 1980. 355 pages.
  400.  
  401.    5. Peter M. Kogge
  402.       "The Architecture of Symbolic Computers"
  403.       McGraw-Hill, 1991. ISBN 0-07-035596-7.
  404.        Includes sections on memory management, the SECD and
  405.        Warren Abstract Machines, and overviews of the various
  406.        Lisp Machine architectures.
  407.    
  408.    6. Daniel P. Friedman, Mitchell Wand, and Christopher T. Haynes
  409.       "Essentials of Programming Languages"
  410.       MIT Press, 1992, 536 pages. ISBN 0-262-06145-7.
  411.        Teaches fundamental concepts of programming language
  412.        design by using small interpreters as examples. Covers
  413.        most of the features of Scheme. Includes a discussion
  414.        of parameter passing techniques, object oriented languages,
  415.        and techniques for transforming interpreters to allow
  416.        their implementation in terms of any low-level language.
  417.        Also discusses scanners, parsers, and the derivation of
  418.        a compiler and virtual machine from an interpreter.
  419.        Source files available by anonymous ftp from cs.indiana.edu
  420.        in the directory /pub/eopl (129.79.254.191) or from the
  421.        Scheme Repository.
  422.  
  423.    7. Peter Lee, editor, "Topics in Advanced Language Implementation",
  424.       The MIT Press, Cambridge, Mass., 1991.
  425.        Articles relevant to the implementation of functional
  426.        programming languages.
  427.  
  428.    8. Also see the proceedings of the biannual ACM Lisp and Functional
  429.       Programming conferences, the implementation notes for CMU Common Lisp,
  430.       Peter Norvig's book ("Paradigms of AI Programming: Case Studies
  431.       in Common Lisp", Morgan Kaufmann, 1992. 946 pages. ISBN
  432.       1-55860-191-0), and SICP (Abelson & Sussman). 
  433.  
  434. Technical reports and journal articles about Scheme implementation include:
  435.  
  436.    Mitchell Wand and Daniel P. Friedman, "Compiling Lambda Expressions
  437.    Using Continuations and Factorizations", Journal of Computer Languages
  438.    3(1978), 241-263.
  439.  
  440.    Guy Lewis Steele Jr., "Rabbit: A Compiler for Scheme", MIT AI Memo
  441.    474, Massachusetts Institute of Technology, Cambridge, MA, May 1978.
  442.  
  443.    Guy Lewis Steele Jr., "Compiler Optimization Based on Viewing LAMBDA
  444.    as RENAME + GOTO", in "Artificial Intelligence: An MIT Perspective",
  445.    Patrick Henry Winston and Richard Henry Brown (eds.), MIT Press,
  446.    Cambridge, MA, 1980.
  447.  
  448.    Jonathan A. Rees and Norman I. Adams, "T: A Dialect of Lisp or,
  449.    LAMBDA: The Ultimate Software Tool", Conference Record of the 1982 ACM
  450.    Symposium on Lisp and Functional Programming, 1982, 114-122.
  451.  
  452.    R. Kent Dybvig, "C-Scheme", Computer Science Department Technical
  453.    Report #149 (MS Thesis), Indiana University, Bloomington, IA, 1983.
  454.  
  455.    William Clinger, "The Scheme 311 compiler: An Exercise in Denotational
  456.    Semantics", Conference Record of the 1984 ACM Symposium on Lisp and
  457.    Functional Programming, 1984, 356-364.
  458.  
  459.    Guillermo J. Rozas, "Liar, an Algol-like Compiler for Scheme", S.B.
  460.    Thesis, Department of Electrical Engineering and Computer Science,
  461.    Massachusetts Institute of Technology, January 1984.
  462.  
  463.    David H. Bartley and John C. Jensen, "The Implementation of PC
  464.    Scheme", Proceedings of the 1986 ACM Conference on Lisp and Functional
  465.    Programming, 1986, 86-93.
  466.  
  467.    David Kranz, Richard Kelsey, Jonathan A. Rees, Paul Hudak, James
  468.    Philbin and Norman I. Adams, "Orbit: An Optimizing Compiler for
  469.    Scheme", Proceedings of the SIGPLAN Notices '86 Symposium on Compiler
  470.    Construction, June 1986, 219-233.  Published as SIGPLAN Notices 21(7),
  471.    July 1986.
  472.  
  473.    Marc Feeley, "Deux Approches a' L'implantation du Language Scheme",
  474.    M.Sc. Thesis, De'partement d'Informatique et de Recherche
  475.    Ope'rationelle, University of Montreal, May 1986.
  476.  
  477.    R. Kent Dybvig, "Three Implementation Models for Scheme", Department
  478.    of Computer Science Technical Report #87-011 (Ph.D. Dissertation),
  479.    University of North Carolina at Chapel Hill, Chapel Hill, North
  480.    Carolina, April 1987.
  481.  
  482.    William D. Clinger, Anne H. Hartheimer and Eric M. Ost,
  483.    "Implementation Strategies for Continuations", Conference Record of
  484.    the 1988 ACM Conference on Lisp and Functional Programming, August
  485.    1988, 124-131.
  486.  
  487.    David Kranz, "Orbit: An Optimizing Compiler for Scheme", Computer
  488.    Science Technical report #632 (Ph.D. Dissertation), Yale University,
  489.    1988.
  490.  
  491.    Joel F. Bartlett, "SCHEME->C a Portable Scheme-to-C Compiler",
  492.    Research Report 89/1, Dec. Western Research Laboratory, Palo Alto, CA,
  493.    January 1989.
  494.  
  495.    Marc Feeley and James S. Miller, "A Parallel Virtual Machine for
  496.    Efficient Scheme Compilation", Proceedings of the 1990 ACM Conference
  497.    on Lisp and Functional Programming, Nice, France, June 1990.
  498.  
  499.    Chris Hanson, "Efficient Stack Allocation for Tail-Recursive
  500.    Languages", Proceedings of the 1990 ACM Conference on Lisp and
  501.    Functional Programming, Nice, France, June 1990.
  502.  
  503.    Robert Hieb, R. Kent Dybvig and Carl Bruggeman, "Representing Control
  504.    in the Presence of First-Class Continuations", Proceedings of the
  505.    SIGPLAN Notices '90 Conference on Programming Language Design and
  506.    Implementation, White Plains, New York, June 1990, 66-77.
  507.  
  508.    Guillermo Rozas, "Taming the Y Operator", Proceedings of the 1992 ACM
  509.    Conference on Lisp and Functional Programming, San Francisco, CA,
  510.    June 1992, 226-234.
  511.  
  512.    Dan Teodosiu, "HARE: An Optimizing Portable Compiler for Scheme", ACM
  513.    Sigplan Notices 26(1), January 1991.
  514.  
  515. ----------------------------------------------------------------
  516. Subject: [1-5] Free Scheme implementations.
  517.  
  518. Repositories of Scheme source code are described in the answer to
  519. question [1-9].
  520.  
  521. Remember, when ftping compressed or compacted files (.Z, .z, .arc, .fit,
  522. etc.) to use binary mode for retrieving the files. 
  523.  
  524. Files that end with a .z suffix were compressed with the patent-free
  525. gzip (no relation to zip). Source for gzip is available from:
  526.    prep.ai.mit.edu:pub/gnu/{gzip-1.0.7.shar,gzip-1.0.7.tar}
  527.  
  528. Repositories of Scheme implementations:
  529.  
  530.    Many free Scheme implementations are available from altdorf.ai.mit.edu
  531.    [18.43.0.246]. See also the Scheme Repository described below.
  532.  
  533.    The Scheme Repository contains a Scheme bibliography, copies of the
  534.    R4RS report, sample Scheme code for a variety of purposes, several
  535.    utilities, and most free implementations.  (Implementations of Scheme
  536.    available from the repository include elk, gambit, scm, fools, rabbit,
  537.    s48, scheme84, scheme88, pseudo, xscheme, umb-scheme, siod, vscm, and
  538.    pixiescheme.) The repository is maintained by Ozan S. Yigit,
  539.    scheme@nexus.yorku.ca.  The repository is accessible by anonymous ftp
  540.    at nexus.yorku.ca [130.63.9.66] in the directory pub/scheme/.
  541.    The repository is mirrored in INRIA, courtesy of Christian Queinnec
  542.    [Ecole Polytechnique and INRIA-Rocquencourt], ftp.inria.fr:lang/Scheme.
  543.    (See also [1-9] below.)
  544.  
  545. Scheme implementations:
  546.  
  547.    PC-Scheme, free by anonymous ftp from altdorf.ai.mit.edu in the
  548.    directory /archive/pc-scheme/.  Written by Texas Instruments. Runs on
  549.    MS-DOS 286/386 IBM PCs and compatibles.  Includes an optimizing
  550.    compiler, an emacs-like editor, inspector, debugger, performance
  551.    testing, foreign function interface, window system and an
  552.    object-oriented subsystem.  Conforms to the Revised^3 Report on
  553.    Scheme. Also supports the dialect used in Abelson and Sussman's SICP.
  554.    The official commercialized implementation costs $95 and includes a
  555.    reference manual and user's guide. Write to: Texas Instruments, 12501
  556.    Research Boulevard, MS 2151, Austin, TX 78759 and order TI Part number
  557.    #2537900-0001, or call 1-800-TI-PARTS and order it using your Visa or
  558.    Mastercard.    [NOTE: Ibuki announced on July 13, 1992, that it has
  559.    purchased the rights to PC Scheme from TI and intends to make it also
  560.    available on 486 PCs and under Windows 3.1. For more information,
  561.    contact IBUKI, PO Box 1627, Los Altos, CA 94022, phone (415) 961-4996,
  562.    fax (415) 961-8016, email rww@ibuki.com.] Version 3.0, the one that
  563.    comes with the student edition, doesn't run on the 486, but the free
  564.    upgrade (pcscm3_3.exe in altdorf) works fine, as does the full
  565.    version 3.03.
  566.  
  567.    PCS/Geneva is a cleaned-up version of Texas Instrument's PC Scheme
  568.    developed at the University of Geneva. The main extensions to PC
  569.    Scheme are 486 support, BGI graphics, LIM-EMS pagination support, line
  570.    editing, and assembly-level interfacing. (TI's PC Scheme gives users
  571.    full Revised^3 support along with many primitives for DOS, Graphics
  572.    and Text Windows. A powerful built-in optimizing compiler produces
  573.    fast code.) The beta version of PCS/Geneva has been tested on XTs,
  574.    ATs, AT386s and AT486s under various DOS and OS/2 versions. It
  575.    even runs on Hewlett-Packard's HP95LX. PCS/Geneva is available free
  576.    by anonymous ftp from 
  577.       cui.unige.ch:PUBLIC/pcs/pcscheme.{doc,exe,fil,taz} [129.194.70.1]
  578.    or by email (uuencoded) from schemege@uni2a.unige.ch. If you ftp
  579.    PCS/Geneva, please send mail to schemege@uni2a.unige.ch; the authors
  580.    like to know their public and will inform you when a new release is
  581.    available. This is also the email address for bug reports or if you
  582.    need any kind of help. This product may be distributed freely and
  583.    used without restrictions except for military purposes.
  584.  
  585.    MIT Scheme (aka C-Scheme), free by anonymous FTP from
  586.    altdorf.ai.mit.edu in the directory pub/scheme-7.1 (for the
  587.    architectures MC68020/30/40, HP Prevision Architecture, MIPS, VAX,
  588.    Sparc (SunOS), Intel 386/486, and DEC Alpha).  Directory scheme-7.2
  589.    contains preliminary *alpha* versions of the next release of MIT
  590.    C-Scheme for the MIPS and Intel 386/486 (MS-DOS, Windows 3.x and Unix)
  591.    architectures. (The port includes Edwin, Scheme's Emacs-like editor
  592.    and Liar, the Scheme compiler. If you acquire the alpha release
  593.    through ftp, please send mail to info-cscheme-dos-request@zurich.ai.mit.edu
  594.    so they know to send you updates and bug reports. Bugs in the DOS
  595.    version should be send to bug-cscheme-dos@zurich.ai.mit.edu.) Does not
  596.    have a convenient foreign function interface yet. FTP distribution
  597.    includes MIT C-Scheme Reference and User manuals, as well as the
  598.    Revised^4 Report on Scheme.    Send bug reports to
  599.    bug-cscheme@zurich.ai.mit.edu. For DOS floppy distribution requests
  600.    (includes printed copies of manuals), send $95.00 (payable in U.S.
  601.    funds to "Scheme Distribution") to cover costs of distribution to
  602.    Scheme Distribution, c/o Prof. Hal Abelson, 545 Technology Sq. rm 410,
  603.    Cambridge MA 02139, USA.
  604.    |
  605.    On the NeXT, MIT Scheme is available as part of the Schematik
  606.    package, which provides an editor/front-end user interface,
  607.    graphics, and "robotics" support for Lego and the like.  Schematik is
  608.    free and is available for anonymous ftp from ftp.gac.edu in the
  609.    pub/next/scheme directory. Europeans can get it more locally from
  610.    ftp.informatik.uni-muenchen.de, in the directory /pub/next/ProgLang;
  611.    start with Schematik-1.1.5.1.README .  Schematik is also apparently
  612.    included on NeXT's "Educational Software Sampler" CD-ROM.
  613.    |
  614.    A preliminary unofficial port of C-Scheme to the Linux is available 
  615.    from artemide.dei.unipd.it:/linux/scheme-7.2/. Contact the author
  616.    Matteo Frigo <Matteo.Frigo@dei.unipd.it> for more information. 
  617.  
  618.    SCM, free by anonymous ftp from altdorf.ai.mit.edu:archive/scm/,
  619.    prep.ai.mit.edu:pub/gnu/jacal/ or nexus.yorku.ca:pub/scheme/new/.
  620.    Current version 4c5. Runs on Amiga, Atari-ST, MacOS, MS-DOS, OS/2,
  621.    NOS/VE, VMS, Unix and similar systems. SCM conforms to the Revised^4
  622.    Report on the Algorithmic Language Scheme and the IEEE P1178
  623.    specification. Scm is written in C. ASCII and EBCDIC are supported.
  624.    Written by Aubrey Jaffer.
  625.       To receive an IBM PC floppy disk with the source files and MSDOS
  626.    and i386 executables send $99 to Aubrey Jaffer, 84 Pleasant Street,
  627.    Wakefield MA 01880, <jaffer@zurich.ai.mit.edu>. 
  628.       SLIB is a portable Scheme library which SCM uses, and is
  629.    available as the file slib1d5.tar.Z. Written by Aubrey Jaffer.
  630.       JACAL is a symbolic math system written in Scheme, and is
  631.    available as the file jacal1a1.tar.Z. 
  632.       TURTLSCM is a turtle graphics package which works with SCM on MSDOS
  633.    or X11 machines. Written by Mkinen Sami <sjm@cc.tut.fi> and Jarkko
  634.    Leppanen <jtl@cc.tut.fi>, it is available as the file turtlegr.tar.Z.
  635.    (Also available from modeemi.cs.tut.fi:pub/scm/ as turtlegr.tar.gz,
  636.    along with an already-compiled MSDOS binary of scm with turtlegraphics
  637.    and slib in scm4c0_b.zip.)
  638.       XSCM is an interface to Xlib and the Motif and OpenLook toolkits
  639.    for the SCM interpreter. It requires scm4a10 or later. It should be
  640.    available at any archive of alt.sources, or on altdorf, prep and
  641.    nexus as the file xscm1.05.tar.Z.
  642.    Contact campbell@redsox.bsw.com for more information.
  643.       SMG-SCM is a package that adds VMS SMG screen management routines
  644.    to SCM. It is available from altdorf, prep and nexus as the file
  645.    sgm-scm2a1.zip. (A VMS version of Unzip is available by anonymous
  646.    FTP from ftp.spc.edu:[ANONYMOUS.MACRO32]UNZIP.EXE.) This file
  647.    contains the source code, documentation, and example code. Send
  648.    comments and bugs to T. Kurt Bond, <tkb@mtnet2.wvnet.edu> (preferred)
  649.    or <Kurt.Bond@launchpad.unc.edu>.
  650.       WB is a disk based, sorted associative array C library.  These
  651.    associative arrays consist of variable length (less that 256 bytes)
  652.    keys and values.  WB comes with an interface to SCM. Basic
  653.    operations are creation, destruction, opening and closing of 
  654.    diskfiles and arrays, insertion, deletion, retrieval, successor, and
  655.    predecessor (with respect to dictionary order of keys).  Functional
  656.    application of find-next, deletion, and modification over a range of
  657.    consecutive key values is supported. Multiple associative arrays
  658.    can be stored in one disk file. Simultaneous access to multiple
  659.    disk files is supported.  A structure checker, garbage collector
  660.    are included.  A repair program and ram-disk type file (for
  661.    temporary structures) are in developement. The current WB
  662.    implementation has a file size limit of 2^32 * block size (default
  663.    2048) = 2^43 bytes (8796 Gbytes). WB does its own memory and disk
  664.    management. WB is available on altdorf, prep, and nexus as wb1a1.tar.z.
  665.  
  666.    A Windows version of Scheme called WinScm is forthcoming from
  667.    Vincent Manis of Langara College of BC, Canada. 
  668.  
  669.    Hobbit is a Scheme-to-C compiler that works with the SCM Scheme
  670.    interpreter. It treats SCM as a C library and integrates compiled
  671.    functions into SCM as new primitives. Hobbit release 2 works with SCM
  672.    release 4b4. Future releases of SCM and Hobbit will be coordinated.
  673.    Hobbit imposes strong restrictions on the higher-order features of
  674.    Scheme. For example, it does not support continuations.  The main aim
  675.    of hobbit is to produce maximally fast C programs which would retain
  676.    most of the original Scheme program structure, making the output C
  677.    program readable and modifiable. Hobbit is written in Scheme and is
  678.    able to self-compile. Hobbit can be obtained via anonymous ftp from
  679.       altdorf.ai.mit.edu:archive/scm/hobbit2.tar.Z
  680.       prep.ai.mit.edu:pub/gnu/jacal/hobbit2.tar.Z
  681.       nexus.yorku.ca:pub/scheme/new/hobbit2.tar.Z
  682.    For further information, contact the author, Tanel Tammet, at
  683.    <tammet@cs.chalmers.se> or at Tanel Tammet, Department of Computer
  684.    Sciences, Chalmers University of Technology, S-41296 Go"teborg, Sweden.
  685.  
  686.    Gambit is an optimizing Scheme compiler/system. It conforms to the
  687.    IEEE-Scheme standard (IEEE P1178) and the Revised^4 Report on Scheme
  688.    (R4RS). The system supports the whole numeric tower (i.e. integer,
  689.    rational, real and complex numbers). It also has several extensions to
  690.    the standards including: weak pairs, string ports, property lists,
  691.    futures, pretty printer, debugger, compiler and multitasking. Gambit
  692.    runs on M680x0 based machines only (including Sun3, Apollo,
  693.    HP9000/3xx, BBN GP1000 multiprocessor, Amiga, NeXT, and the Apple
  694.    Macintosh). The latest version for UNIX based machines (including the
  695.    Macintosh running A/UX) is release 1.9. The latest version for the Mac
  696.    running the normal System/Finder is MacGambit release 1.9.1. The
  697.    distribution contains the interpreter and optimizing native code
  698.    compiler and all the sources required to build the system (the sources
  699.    for MacGambit are for THINK-C 5.0). MacGambit's specific features
  700.    include: a Scheme interface to several Toolbox routines (mostly
  701.    QuickDraw), a drawing window for simple graphics, an online help
  702.    system containing R4RS and a Scheme oriented editor with an emacs
  703.    compatibility mode. Gambit Scheme is available by anonymous ftp from
  704.    ftp.iro.umontreal.ca:/pub/parallele/gambit/ [132.204.32.22].
  705.    Versions 1.7, 1.7.1, 1.8.2, 1.9.1 and 2.0 may be found in this
  706.    directory. Version 2.0 is in the files gambit20.tar.Z (Unix source),
  707.    macgambit-2.0-interpreter.hqx (MacGambit interpreter),
  708.    macgambit-2.0-sources1.hqx (sources needed to build the interpreter
  709.    using Think-C 5.0), and macgambit-2.0-sources2.hqx (Scheme source
  710.    files for runtime and compiler, and DEC's Thomas interpreter).
  711.    Copies may also be found in the Scheme Repository on
  712.    nexus.yorku.ca:pub/scheme/imp/, but the most recent version will
  713.    always be available from ftp.iro.umontreal.ca. MacGambit may also be
  714.    obtained from the directory
  715.     /afs/umich.edu/group/itd/archive/mac/development/languages/
  716.    if your site runs the Andrew File System, or by anonymous ftp from
  717.    mac.archive.umich.edu. For more information about Gambit, send email
  718.    to gambit@trex.iro.umontreal.ca. Gambit Scheme was written by Marc
  719.    Feeley <feeley@iro.umontreal.ca>. Gambit for UNIX and MacGambit are
  720.    copyright 1992, Universite de Montreal. The programs may be
  721.    distributed to others as long as they are not sold or transferred for
  722.    compensation (other than a reasonable duplication fee).
  723.  
  724.    T3.1 is a Scheme-like language developed at Yale. Available by
  725.    anonymous ftp from ftp.ai.mit.edu in the directory pub/systems/t3.1.
  726.    (T may be obtained in Europe from nic.funet.fi in the directory
  727.    pub/unix/languages/scheme/t3.1 or from ftp.diku.dk in the directory
  728.    pub/t3.1) Runs on DecStations (MIPS processor) and SGI Iris, Sun4
  729.    (SPARC), Sun3, Vax/Unix. Includes a copy of the online version of the
  730.    T manual and release notes for T3.0 and T3.1. All implementations
  731.    include a foreign function (C) interface. To be informed of fixes, new
  732.    releases, etc., send your email address to t-project@cs.yale.edu. Bug
  733.    reports should go to t3-bugs@cs.yale.edu. A multiprocessing version of
  734.    T (for Encore Multimax) is available from masala.lcs.mit.edu:/pub/mult.
  735.    [The sources were last modified November 22, 1991.]
  736.    
  737.    Oaklisp is an seamless integration of Scheme with an object-oriented
  738.    substrate. Available by anonymous ftp from f.gp.cs.cmu.edu
  739.    [128.2.250.164] in the directory /usr/bap/oak/ftpable, or from
  740.    ftp.cs.cmu.edu in /afs/cs.cmu.edu/user/bap/oak/ftpable, and includes
  741.    reference and implementation manuals. Written by Barak Pearlmutter
  742.    <bap@cse.ogi.edu> and Kevin Lang <kevin@research.nj.nec.com>.
  743.  
  744.    Elk (Extension Language Kit) is a Scheme interpreter designed to be
  745.    used as a general extension language for applications written in C or
  746.    C++. Elk can also be used as a stand-alone implementation of the
  747.    Scheme programming language. It is mostly R4RS and P1178 conformant
  748.    (with the exception of the number system and a few minor details).  It
  749.    has interfaces to Clib, Xt, and the Athena and OSF/Motif widget sets.
  750.    It includes dynamic linking of C object files, an optional foreign
  751.    function interface, and a generational garbage collector (by Marco
  752.    Scheibe <mykee@cs.tu-berlin.de>).  Elk is available by anonymous ftp
  753.    from tub.cs.tu-berlin.de:pub/elk/. It also available from the Scheme
  754.    Repository in nexus.yorku.ca:/pub/scheme/imp/ and in the X contrib
  755.    directory on export.lcs.mit.edu. Runs on Unix, SunOs, and Ultrix based
  756.    platforms, including VAX, Sun3, Sun4 (Sparc), 680x0, 80386, MIPS, IBM
  757.    RT, IBM RS/6000, HP9000/700, SGI, and Sony NEWS. Implemented by Oliver
  758.    Laumann, <net@cs.tu-berlin.de>.
  759.  
  760.    Scheme->C is an R4RS compliant Scheme system that is centered around
  761.    a compiler that compiles Scheme to C.  Besides the base language,
  762.    the system includes "expansion passing style" macros, a foreign function
  763.    call capability, records, weak pointers, 3 X11 interfaces, and a
  764.    generational, conservative, copying garbage collector.  The result is a
  765.    system that is portable, efficient, and able to build applications that
  766.    contain a mix of compiled and interpreted Scheme, and compiled code
  767.    from C, C++ and other languages.  The current release of Scheme->C runs
  768.    on the following systems: Digital Alpha AXP systems with OSF/1, MIPS
  769.    based DECstations, VAXen with ULTRIX, MIPS based SGI systems, PC's 
  770.    running Microsoft Windows 3.1, Apple Macintosh's running system 7.1,
  771.    HP 9000/300, HP 9000/700, Sony News, Harris Nighthawk and other m88k
  772.    systems, linux, and Sun SPARC.  Earlier releases also run on Sun3,
  773.    DNx500, DN1000, 386's running Unix, DNx500, and DN1000 systems.  The
  774.    software is available for anonymous ftp from gatekeeper.dec.com
  775.    [16.1.0.2] from the directory pub/DEC/Scheme-to-C.  There are three
  776.    interfaces to X11, all written in Scheme, available from gatekeeper.
  777.    The first is a complete set of stubs to Xlib included in the base
  778.    system.  The second is an alternative to Xlib called SCIX, found in
  779.    pub/X11/contrib.  The third, ezd, allows programs to easily produce
  780.    interactive, structured graphics and is found in pub/DEC/ezd.  Those
  781.    without ftp access can also obtain Scheme->C and ezd from the Prime Time
  782.    Freeware CD, Vol. 1, No. 2.    Additional information is available from
  783.    the author at Digital Equipment Corporation's Western Research Lab:
  784.    Joel Bartlett, bartlett@decwrl.dec.com.
  785.  
  786.    SIOD (Scheme in One Defun), free by anonymous ftp from 
  787.     nexus.yorku.ca:pub/scheme/imp/siod-v2.9-shar
  788.     world.std.com:src/lisp/siod-v2.9-shar
  789.    or in any comp.sources.unix archive.     Runs on VAX/VMS, VAX UNIX, Sun3,
  790.    Sun4, Amiga, Macintosh, MIPS, Cray.    Small scheme implementation in C
  791.    arranged as a set of subroutines that can be called from any main
  792.    program for the purpose of introducing an interpreted extension
  793.    language.  Compiles to ~20K bytes of executable.  Lisp calls C and C
  794.    calls Lisp transparently. Written by George Carrette <gjc@paradigm.com>.
  795.  
  796.    XScheme is available free by anonymous ftp from ftp.uu.net in the
  797.    directories MSDOS/languages/X-scheme and amiga-sources/xscheme.20.zoo.
  798.    It includes an object system and is R3RS compliant.
  799.    It was written by David Michael Betz, 167 Villa Avenue #11, Los Gatos,
  800.    CA 95032, 408-354-9303 (H), 408-862-6325 (W), dbetz@apple.com.
  801.    XScheme is discussed in the newsgroup comp.lang.lisp.x.  It may also
  802.    be found in the Scheme Repository.
  803.  
  804.    Fools' Lisp is a small Scheme interpreter that is R4RS conformant, and
  805.    is available by anonymous ftp from scam.berkeley.edu [128.32.138.1] in
  806.    the directory src/local/fools.tar.Z. Runs on Sun3 and Sun4 (SunOs),
  807.    DecStation 3100s, Vax (Ultrix), Sequent, and Apollo. Implemented by
  808.    Jonathan Lee <jonathan@scam.berkeley.edu>.
  809.  
  810.    Scheme48. The entry on Scheme48 has been temporarily removed, per
  811.    Jonathan Rees, 11/25/92. Scheme48 was an alpha release, and it was not
  812.    possible for a general user to reconstruct the system from sources.
  813.    When the distribution is complete we will restore the Scheme48 blurb.
  814.  
  815.    UMB Scheme is a R4RS Scheme available by anonymous ftp from
  816.    ftp.cs.umb.edu in pub/scheme/umb-scheme-2.10.tar.Z and also in the Scheme
  817.    Repository. It includes a simple editor, debugger, Written by William
  818.    Campbell, University of Massachusetts at Boston, bill@cs.umb.edu.
  819.  
  820.    VSCM is a R4RS Scheme available by anonymous ftp from the Scheme Repository,
  821.       nexus.yorku.ca:pub/scheme/imp/vscmIISep29.tar.Z [130.63.9.66]
  822.    Written by Matthias Blume, <blume@cs.princeton.edu>. The
  823.    implementation is based on a virtual machine design with heavy support
  824.    for most of the sophisticated features of Scheme. The virtual machine
  825.    is written in ANSI-C to aid in its portability. 
  826.  
  827.    Pixie Scheme for the Macintosh is a nearly complete implementation of
  828.    R3RS available by anonymous ftp from
  829.    rascal.ics.utexas.edu:/misc/mac/programming/ 
  830.      Pixie.Goodies.SIT.bin
  831.      Pixie.NoFPP.world.SIT.bin
  832.      Pixie.world.SIT.bin
  833.      PixieScheme.NoFPP.SIT.bin    ; for macs without floating-point coprocessor
  834.      PixieScheme.SIT.bin    ; for macs with FPP
  835.      Pixie_Scheme_Help.SIT.bin
  836.      Pixie_intro
  837.    Written by Jay Reynolds Freeman <freeman@MasPar.COM>, P. O. Box 60628,
  838.    Palo Alto, CA, 94306-0628. A copy may also be obtained from
  839.      /afs/umich.edu/group/itd/archive/mac/development/languages 
  840.    as the file pixiescheme.cpt.hqx if your site runs the Andrew File System,
  841.    or by anonymous ftp from mac.archive.umich.edu.
  842.  
  843.    HELP (a lazy Scheme) is available by anonymous ftp from
  844.    sumex-aim.stanford.edu:/info-mac/lang/lazy-scheme.hqx.  Written by
  845.    Thomas Schiex (schiex@cert.fr, schiex@irit.fr). Help is a complete and
  846.    efficient Scheme-like functional lazy Lisp interpreter.  It works only
  847.    on 68020 (or more) based Macintoshes. It has a 'friendly' interface
  848.    (parenthesis matcher, auto-indent), uses a full call-by-need semantics
  849.    and includes many examples, including a symbolic compiler for the
  850.    680x0. Efficiency is good and lazyness is fully parametrizable (you
  851.    may turn Help into a strict Scheme-like language if you like). French
  852.    AND English updated docs are included in Word4 and plain text formats.
  853.  
  854.    Similix is a Self-Applicable Partial Evaluator for a Subset of Scheme.
  855.    Written by Anders Bondorf, Olivier Danvy, and Jesper J{\o}rgensen. It
  856.    is available by anonymous ftp from nexus.yorku.ca:/pub/scheme/imp/ as
  857.    similix.tar.Z or from ftp.diku.dk:pub/diku/dists/Similix.tar.Z. For more
  858.    information, contact Anders Bondorf, DIKU, Department of Computer
  859.    Science, University of Copenhagen, Universitetsparken 1, DK-2100
  860.    Copenhagen, Denmark, or send email to anders@diku.dk. Similix conforms
  861.    to the IEEE and R4RS standards, but also runs under R3RS Scheme. It
  862.    runs in SCM, Chez Scheme and T3.1.
  863.  
  864.    FDU Scheme is a R3RS implementation of Scheme for the Prime
  865.    50-series under Primos. It is available by anonymous ftp from
  866.    fdumad.fdu.edu [132.238.1.1] (username "anonymous", password
  867.    <RETURN>). Attach to the Scheme subdirectory (cd '*>scheme') and
  868.    transfer all files in it and its subdirectories using file type
  869.    binary.  For more information, contact Peter Falley,
  870.    <falley@fdumad.fdu.edu>.
  871.  
  872.    BIGLOO is a Scheme interpreter and compiler. It conforms to the
  873.    IEEE-Scheme standard (IEEE P1178) with some extensions, such as
  874.    regular expression parsing (RGC) and a pattern matching compiler.  The
  875.    main goal of Bigloo is to deliver small and fast stand alone
  876.    applications.  Bigloo produces ANSI C and hence should be easy to
  877.    port. It runs on Sparc (1, 2, 10), SONY-NEWS (MIPS R3000), IRIS Indigo
  878.    (MIPS R3000), Sun 3/60, DecStation 3100, PC-486 (linux), and HP-PA (730).
  879.    It is available by anonymous ftp from
  880.       ftp.inria.fr:/INRIA/Projects/icsla/bigloo1.3.tar.Z
  881.    For further information, send email to Manuel.Serrano@inria.fr, or
  882.    write to Manuel Serrano (equipe ICSLA, Bat 8), INRIA-Rocquencourt, 
  883.    BP 105, 78153, Le Chesnay CEDEX, FRANCE, or call 39-63-57-32.
  884.  
  885. Free Scheme Implementations implemented in Lisp:  
  886.  
  887.    Peter Norvig's book "Paradigms of AI Programming" has a chapters about
  888.    Scheme interpreters and compilers, both written in Common Lisp. The
  889.    software from the book is available by anonymous ftp from
  890.    unix.sri.com:pub/norvig and on disk in Macintosh or DOS format from
  891.    the publisher, Morgan Kaufmann.  For more information, contact: Morgan
  892.    Kaufmann, Dept. P1, 2929 Campus Drive, Suite 260, San Mateo CA 94403,
  893.    or call Toll free tel: (800) 745-7323; FAX: (415) 578-0672
  894.  
  895.    PseudoScheme is available free by anonymous ftp from
  896.    altdorf.ai.mit.edu:/archive/pseudo/pseudo-2-8.tar.Z. It is Scheme
  897.    implemented on top of Common Lisp, and runs in Lucid, Symbolics CL,
  898.    VAX Lisp under VMS, and Explorer CL. It should be easy to port to
  899.    other Lisps. It was written by Jonathan Rees (jar@altdorf.ai.mit.edu,
  900.    jar@cs.cornell.edu). Send mail to info-clscheme-request@mc.lcs.mit.edu
  901.    to be put on a mailing list for announcements. Conforms to R3RS except
  902.    for lacking a correct implementation of call/cc. It works by running
  903.    the Scheme code through a preprocessor, which generates Common Lisp code.
  904.  
  905.    Scheme84 is in the public domain, and available by mail from Indiana
  906.    University. It runs on the VAX in Franz Lisp under either VMS or BSD Unix.
  907.    To receive a copy, send a tape and return postage to: Scheme84
  908.    Distribution, Nancy Garrett, c/o Dan Friedman, Department of Computer
  909.    Science, Indiana University, Bloomington, Indiana. Call 1-812-335-9770
  910.    or send mail to nlg@indiana.edu for more information.
  911.  
  912.    Scheme88 is available by anonymous ftp from rice.edu:public/scheme88.sh
  913.    and also from the Scheme Repository.
  914.  
  915. ----------------------------------------------------------------
  916. Subject: [1-6] Commercial Scheme implementations.
  917.  
  918.    Chez Scheme is fully compatible with the IEEE and R4RS standards for the
  919.    Scheme programming language and includes an incremental compiler, object
  920.    inspector, multitasking with engines, and a foreign function interface. It
  921.    runs on Sparc and Sun3 (SunOs), Vax and DecStation (Ultrix), NeXT, Silicon
  922.    Graphics, and Motorola Delta 88000, costs approximately $2000 and requires
  923.    4-8mb RAM.  Implemented by Kent Dybvig, Robert Hieb, and Carl Bruggeman.
  924.    Write to: Cadence Research Systems, 620 Park Ridge Road, Bloomington, IN
  925.    47408, call (812) 333-9269, or fax (812) 332-4688. 
  926.    email: dyb@cs.indiana.edu or dyb@cadence.bloomington.in.us
  927.  
  928.    MacScheme is a Scheme interpreter and compiler for the Apple Macintosh, and
  929.    includes an editor, debugger and object system.  MacScheme costs $125
  930.    (includes compiler) and Scheme Express costs $70 (interpreter only). It
  931.    requires 1mb RAM. A development environment (MacScheme+Toolsmith) costs
  932.    $495. Conforms to the Revised^4 Report on the Algorithmic Language Scheme.
  933.    MacScheme+Toolsmith includes support for menus, windows, and interfaces to
  934.    the Macintosh Toolbox, and can create small standalone Macintosh
  935.    executables. Implemented by Will Clinger, John Ulrich, Liz Heller and Eric
  936.    Ost.     Write to: Lightship Software, PO Box 1636, Beaverton, OR 97075, or
  937.    call (503) 292-8765. They're moving to California. The temporary phone
  938.    number is 415-940-4008 (Liz Heller). The new phone number will be
  939.    415-694-7799. MacScheme is distributed by ACS, 2015 East 3300
  940.    South, Salt Lake City, UT 84109-2630, 1-800-531-3227 (801-484-3923).
  941.  
  942.    EdScheme runs on Macintosh, DOS and Atari ST and costs $50.    It
  943.    includes an incremental compiler, editor, and turtle graphics
  944.    interface, and is a close match to the IEEE standard. Implemented by
  945.    Iain Ferguson, Edward Martin, and Burt Kaufman.  The book (The
  946.    Schemer's Guide) is 328 pages long costs $30.  Write to: Schemers
  947.    Inc., 2136 NE 68th Street, Suite 401, Fort Lauderdale, FL 33308, call
  948.    (305) 776-7376, or fax (305) 776-6174. You can also send email to
  949.    71020.1774@compuserve.com.  They also offer an Archimedes (Acorn)
  950.    platform which is only available through their European distributor,
  951.    Lambda Publications, who is reachable by phone at 44-793-695296 or by
  952.    EMail on 100015.1465@compuserve.com.
  953.  
  954. ----------------------------------------------------------------
  955. Subject: [1-7] Standards for Scheme -- What are R4RS and IEEE P1178?
  956.  
  957. R4RS is the Revised^4 Report on the Algorithmic Language Scheme,
  958. edited by W. Clinger and J. Rees. It appeared in ACM Lisp Pointers IV,
  959. July-September 1991, and also as MIT AI Memo 848b. It serves as a kind
  960. of standard for the language. It can be obtained by anonymous ftp at
  961. the two Scheme Repositories, altdorf.ai.mit.edu and nexus.yorku.ca.
  962.  
  963. IEEE P1178 is IEEE Standard 1178-1990, "IEEE Standard for the Scheme
  964. Programming Language", published by IEEE in 1991. ISBN 1-55937-125-0.
  965. It is now also an ANSI standard. It may be ordered from IEEE by
  966. calling 1-800-678-IEEE or 908-981-1393 or writing IEEE Service
  967. Center, 445 Hoes Lane, P.O. Box 1331, Piscataway, NJ 08855-1331, 
  968. and using order number SH14209 ($28 for IEEE members, $40 others).
  969.  
  970. ----------------------------------------------------------------
  971. Subject: [1-8] How do I do object-oriented programming in Scheme?
  972.  
  973. Some Scheme implementations (for example, MacScheme, Feel, Oaklisp, XScheme,
  974. and PC-Scheme) include built-in object-oriented extensions.  
  975.  
  976. SCOOPS (Scheme Object Oriented Programming System) is an object system
  977. for Scheme written by Amitabh Srivastava/Texas Instruments with 
  978. re-writes by Steve Sherin <sherin@linc.cis.upenn.edu>. [Email to this
  979. address bounced 7/7/93.] This package needs first-class environments.
  980. It is available from the Scheme Repository as /pub/scheme/scm/scoops.sha.
  981.  
  982. MEROON is a package written in Scheme to provide the basic facilities
  983. of an object-oriented programming style through three macros:
  984. define-class, define-generic, and define-method. MEROON offers simple
  985. inheritance, reflective metaclasses and simple dispatching generic
  986. functions. MEROON also offers indexed fields subsuming Scheme vectors
  987. without inheritance restrictions. Meroon runs in Scheme->C, PC-Scheme,
  988. Chez Scheme, Elk, Gambit. MEROON sources and documentation may be
  989. found in the Scheme Repository as 
  990.    nexus.yorku.ca:pub/scheme/new/meroon.*.tar.Z
  991. and also from
  992.    ftp.inria.fr:pub/INRIA/icsla/meroon*.tar.Z. [128.93.1.26]
  993.  
  994. YASOS (Yet Another Scheme Object System) is fairly functional in style
  995. and uses delegation.  The implementation includes multiple inheritance
  996. and "send to super" and is much smaller than class-based OO systems.
  997. See Ken Dickey, "Scheming with Objects", AI Expert 7(10):24-33,
  998. October 1992. A copy of the article and YASOS code is available from
  999. the Scheme Repository in /pub/scheme/txt/swob.txt. YASOS is also
  1000. included as part of SLIB. For further information, contact Ken Dickey
  1001. <kend@newton.apple.com>.
  1002.  
  1003. Tiny CLOS is a Scheme implementation of a `kernelized' CLOS, with a
  1004. metaobject protocol. The implementation is even simpler than the
  1005. simple CLOS found in `The Art of the Metaobject Protocol,' weighing in
  1006. at around 850 lines of code, including (some) comments and
  1007. documentation. Tiny CLOS is available by anonymous ftp from
  1008. parcftp.xerox.com:/pub/mops/. Tiny CLOS runs in MIT Scheme 11.74 and
  1009. should run with only minor modifications in other Schemes as well. If
  1010. you want to be added to the mops@parc.xerox.com mailing list
  1011. (technical questions and discussion only), send mail to Gregor Kiczales
  1012. <gregor@parc.xerox.com>.
  1013.  
  1014. ----------------------------------------------------------------
  1015. Subject: [1-9] Repositories of Scheme Software
  1016.  
  1017. There are several repositories of publicly redistributable and
  1018. public domain Scheme code. 
  1019.  
  1020.    The Scheme Repository contains a Scheme bibliography, copies of the
  1021.    R4RS report, IEEE P1178 specification and other papers, sample Scheme
  1022.    code for a variety of purposes, several utilities, and some
  1023.    implementations. The Scheme code includes code for calendar
  1024.    calculations, Earley parser, FORMAT for Scheme, a scheme version of
  1025.    the Gabriel benchmarks, Marc Feeley's minimal object support for
  1026.    Scheme, a Scheme pretty-printer, a Prolog interpreter written in
  1027.    Scheme, a random number generator in Scheme, an implementation of
  1028.    SCOOPS, code from Abelson and Sussman's SICP book, Aubrey Jaffer's
  1029.    IEEE/R^3.99RS compliance test, an implementation of matrices, a Scheme
  1030.    implementation of the Common Lisp FORMAT function, a Scheme front
  1031.    end to Adobe Illustrator PostScript, and a LALR(1) parser (ZEBU).
  1032.    The repository is maintained by Ozan S. Yigit, <scheme@nexus.yorku.ca>.
  1033.    The repository is accessible by anonymous ftp at nexus.yorku.ca
  1034.    [130.63.9.66] in the directory pub/scheme/. The repository is
  1035.    mirrored in INRIA, courtesy of Christian Queinnec [Ecole Polytechnique
  1036.    and INRIA-Rocquencourt], ftp.inria.fr:lang/Scheme.
  1037.  
  1038.    Scheme Implementations may also be found at altdorf.ai.mit.edu:/archive/ 
  1039.    The R4RS report is available in altdorf.ai.mit.edu:/archive/scheme-reports/
  1040.    or as MIT AI Memo 848b (email publications@ai.mit.edu for more information).
  1041.    The altdorf archive includes SCOOPS, CL2Scheme, extend-syntax,
  1042.    btree, Gabriel benchmarks, FORMAT for Scheme, etc.
  1043.  
  1044.    The GI (German Computer Science Society) Scheme Archive contains a
  1045.    variety of scheme programs, utilities, code from theses, and other
  1046.    materials. It also mirrors the Nexus Scheme Repository.  It is
  1047.    accessible by anonymous ftp to faui80.informatik.uni-erlangen.de
  1048.    (login as 'ftp', giving your email address as the password).
  1049.       pub/scheme/gi           # GI Scheme Archive
  1050.       pub/scheme/yorku           # Internet Scheme Repository
  1051.    Direct questions to scheme@faui80.informatik.uni-erlangen.de.
  1052.    The GI Scheme Archive is supported by the German Computer Society Special
  1053.    Interest Group on AI programming and sponsored by the Bavarian AI Center
  1054.    FORWISS -- Research Institute for Knowledge Based Systems.
  1055.  
  1056. ----------------------------------------------------------------
  1057. Subject: [1-10] Publicly Redistributable Scheme Software
  1058.  
  1059.    SLIB is a portable scheme library that provides compatibility and
  1060.    utility functions for many of the standard scheme implementations,
  1061.    including Chez, ELK 1.5, GAMBIT, MITScheme, scheme->C, Scheme48,
  1062.    T3.1 and Scm4b. It is available by anonymous ftp from
  1063.        altdorf.ai.mit.edu:archive/scm/slib1d0.tar.Z
  1064.        prep.ai.mit.edu:pub/gnu/jacal/slib1d0.tar.Z
  1065.        nexus.yorku.ca:pub/scheme/new/slib1d0.tar.Z
  1066.  
  1067.    TEST.SCM is an IEEE and R4RS conformance test suite.     It is available
  1068.    from 
  1069.       altdorf.ai.mit.edu:archive/scm/test.scm
  1070.       prep.ai.mit.edu:pub/gnu/jacal/test.scm
  1071.       nexus.yorku.ca:pub/scheme/new/test.scm
  1072.  
  1073.    PSD (Portable Scheme Debugger) is available by anonymous ftp
  1074.    from Tampere University of Technology, Finland,
  1075.       cs.tut.fi:/pub/src/languages/schemes/psd-1.1.tar.Z
  1076.    With PSD, you can run a Scheme program in an Emacs buffer, set
  1077.    breakpoints, single step evaluation and access and modify the
  1078.    program's variables. It works by instrumenting the original source
  1079.    code, so it should run with any R4RS compliant Scheme. It has been
  1080.    tested with SCM and Elk 1.5, but should work with other Schemes with a
  1081.    minimal amount of porting, if at all. Includes documentation and
  1082.    user's manual. Written by Pertti Kellom\"aki, pk@cs.tut.fi
  1083.  
  1084.    SCLINT is a lint-like program for Scheme. It checks for consistency of
  1085.    indentation, syntax of special forms, and the number of arguments to
  1086.    primitive and most user-defined procedures. This is not a full
  1087.    implementation, but rather a quick hack. It is used in teaching
  1088.    programming at the Tampere University of Technology. It is available
  1089.    by anonymous ftp from cs.tut.fi:/pub/src/languages/schemes/sclint-0.9.tar.Z.
  1090.    For further information, write to Pertti Kellom\"aki <pk@cs.tut.fi>.
  1091.  
  1092.    A bibliography of work in functional programming can be obtained by 
  1093.    anonymous ftp from tamdhu.dcs.st-andrews.ac.uk:/pub/staple/pubs.txt
  1094.    (138.251.192.40). It uses a refer-like format with %T for title, %A
  1095.    for authors %I for a unique index entry %S for source (possibly a
  1096.    reference to another index) %K for keywords and %C for comments.
  1097.    Compiled by Tony Davie, <ajtd@honey.st-and.ac.uk>. [Email bounced, 7/7/93.]
  1098.  
  1099.    Scheme Utilities -- brokaw.lcs.mit.edu:/pub/scmutils.tar  18.30.0.33
  1100.    [This collection seems to no longer be located on brokaw -- does
  1101.    anybody know the current location?]
  1102.  
  1103.    A collection of Scheme implementations of data structures and
  1104.    algorithms is available by anonymous ftp from cs.tut.fi in the
  1105.    directory /pub/src/languages/schemes/ as the file scheme-algorithms.tar.
  1106.    For more information, contact Pertti Kellom\"aki <pk@cs.tut.fi>.
  1107.  
  1108.    6.001. The User's Manual, example code, and problem sets from MIT's
  1109.    course "Structure and Interpretation of Computer Programs" are 
  1110.    available by anonymous ftp from martigny.ai.mit.edu:archive/6.001/
  1111.    [18.43.0.152].
  1112.  
  1113.    Steele's Constraint System. Chris Hanson's implementation of Steele's
  1114.    constraint system is available for anonymous ftp from
  1115.       martigny.ai.mit.edu:archive/cph/constraint.tar [18.43.0.152]
  1116.       nexus.yorku.ca:pub/scheme/new/constraint.tar.Z
  1117.    A compressed version is also stored there. The software is source code
  1118.    for MIT Scheme. It should run in release 7.1.3. Most of the MIT Scheme
  1119.    dependencies could be eliminated, but it also uses the following
  1120.    procedures which aren't in standard Scheme: error, bkpt, macros,
  1121.    dynamic binding, and string output ports. The code corresponds pretty
  1122.    closely to Guy Steele's PhD thesis implementation, which you can
  1123.    obtain in printed form from the MIT AI Lab publications office as
  1124.    AI-TR-595 for $15.00 (email publications@ai.mit.edu for more
  1125.    information). For more information, send email to Chris Hanson
  1126.    <cph@martigny.ai.mit.edu>.
  1127.  
  1128.    JACAL is a symbolic mathematics system for the simplification and
  1129.    manipulation of equations and single and multiple valued algebraic
  1130.    expressions constructed of numbers, variables, radicals, and algebraic
  1131.    functions, differential, and holonomic functions. In addition, vectors
  1132.    and matrices of the above objects are included.  JACAL is written in
  1133.    Scheme and requires SLIB. JACAL source is available via anonymous FTP
  1134.    from
  1135.       altdorf.ai.mit.edu:archive/scm/jacal1a0.tar.Z,
  1136.       prep.ai.mit.edu:pub/gnu/jacal/jacal1a0.tar.Z, and
  1137.       nexus.yorku.ca:pub/scheme/new/jacal1a0.tar.Z
  1138.    Contact jaffer@altdorf.ai.mit.edu for more information.
  1139.   
  1140.    Zebu 0.9 is an LALR(1) parser generator for Scheme written by 
  1141.    William M. Wells III. It lives in the Scheme Repository nexus.yorku.ca
  1142.    in the scm directory and works with PC-Scheme from TI and MIT C-Scheme 6.2
  1143.    (but not with anything after 7.0).
  1144.  
  1145.    Thomas is a compiler for the Dylan programming language.  The Thomas
  1146.    system is written in Scheme and runs under MIT's CScheme, DEC's
  1147.    Scheme->C, and Marc Feeley's Gambit.     It can run on a wide range of
  1148.    machines including the Macintosh, PC compatibles, Vax, MIPS, Alpha,
  1149.    and 680x0.  Thomas generates IEEE compatible Scheme code.  Thomas is
  1150.    available to the public by anonymous ftp at
  1151.       crl.dec.com:pub/DEC/Thomas
  1152.       gatekeeper.pa.dec.com:pub/DEC/Thomas
  1153.       altdorf.ai.mit.edu:archive/Thomas
  1154.    For more information on Thomas and Dylan, see part 4 of the Lisp FAQ.
  1155.  
  1156.    MATCH is a pattern matching macro package for Scheme.  Pattern
  1157.    matching allows complicated control decisions based on data structure
  1158.    to be expressed in a concise manner. This document describes several
  1159.    pattern matching macros for Scheme, and an associated mechanism for
  1160.    defining new forms of structured data. At present, this macro package
  1161.    works only with Chez Scheme (release 4 or greater), but adapting it to
  1162.    other Scheme systems should be easy.     MATCH is available by anonymous
  1163.    ftp from titan.cs.rice.edu:public/wright/match.tar.Z [128.42.1.30]
  1164.    and includes the macro source code and documentation. A copy should be
  1165.    available from the Scheme repository shortly.  For further information, 
  1166.    write to Andrew Wright, <wright@cs.rice.edu>.
  1167.  
  1168.    STk is a graphical package which relies on Tk and the Scheme
  1169.    programming language. It is similar to Ousterhout's Tk package but
  1170.    with the Tcl language replaced with Scheme. Mostly R4RS compliant.
  1171.    (Some number procedures are not implemented, over-simplified call/cc,
  1172.    symbol case is significative.) All of the commands defined by the Tk
  1173.    toolkit are available to the STk interpreter, and Tk variables are
  1174.    reflected back into Scheme as Scheme variables. Callback is expressed
  1175.    in Scheme. Includes a CLOS-like OO extensions.  A set of classes have
  1176.    been defined to manipulate Tk commands (menu, buttons, scales, canvas,
  1177.    canvas items) as Scheme objects. STk runs on Sparc (SUNOS 4.1.x) and
  1178.    Dec 5xxx (Ultrix 4.2). STk is available by anonymous ftp from
  1179.    kaolin.unice.fr:/pub/STk-1.00.tar.gz [192.134.39.49]. Please send bug
  1180.    reports, comments, and questions to Erick Gallesio, <eg@unice.fr>, 
  1181.    Universite de Nice - Sophia Antipolis, I3S,    CNRS - URA 1376 - Bat 4,
  1182.    250, avenue Albert Einstein, 06560 Valbonne -  Sophia Antipolis, phone
  1183.    (33) 92-94-26-04, fax (33) 92-94-28-98.
  1184.  
  1185. ----------------------------------------------------------------
  1186. Subject: [6-6] Formatting code in LaTeX
  1187.  
  1188. SLaTeX is a R4RS-compliant Scheme program that allows you to write
  1189. program code "as is" in your LaTeX or TeX source.  It is particularly
  1190. geared to the programming languages Scheme and Common Lisp, and has
  1191. been tested in Chez Scheme, Common Lisp, MIT C Scheme, Elk, Scheme->C,
  1192. SCM and UMB Scheme on Unix; and MIT C Scheme and SCM on MSDOS.    The
  1193. formatting of the code includes assigning appropriate fonts to the
  1194. various tokens in the code (keywords, variables, constants, data), at
  1195. the same time retaining the proper indentation when going to the
  1196. non-monospace (non-typewriter) provided by TeX.     SLaTeX comes with two
  1197. databases that recognize the standard keywords/variables/constants of
  1198. Scheme and Common Lisp respectively.  These can be modified by the
  1199. user using easy TeX commands.  In addition, the user can inform SLaTeX
  1200. to typeset arbitrary identifiers as specially suited TeX expressions
  1201. (i.e., beyond just fonting them).  The code-typesetting program SLaTeX
  1202. is available by anonymous ftp from cs.rice.edu as the file
  1203. public/dorai/slatex.tar.Z. Send bug reports to dorai@cs.rice.edu.
  1204.  
  1205. SchemeWEB is a Unix filter that translates SchemeWEB source into LaTeX
  1206. source or Scheme source.  Originally developed for the Scheme dialect
  1207. of Lisp, it can easily be used with most other dialects.
  1208. Posted to comp.sources.unix, Volume 26, Issue 82, by John D.
  1209. Ramsdell <ramsdell@linus.mitre.org>, under archive name schemeweb/part01.
  1210.  
  1211. ----------------------------------------------------------------
  1212. Subject: [1-11] Where can I get an implementation of Prolog in Scheme?
  1213.  
  1214.    Prolog in Scheme is a collection of macros that expand syntax for
  1215.    clauses, elations, and so on. It is written in Scheme and has support
  1216.    for delayed goals and interval arithmetic. It is known to run in Chez
  1217.    Scheme and in Elk, and is intended to be portable to other Scheme
  1218.    implementations. It relies on continuations, and so is not easily
  1219.    ported to Common Lisp. Available from the University of Calgary by
  1220.    anonymous ftp from
  1221.       ftp.cpsc.ucalgary.ca:pub/prolog1.2/prolog12.tar.Z
  1222.    Questions and comments may be addressed to Alan Dewar
  1223.    <dewar@cpsc.ucalgary.ca> or John Cleary <jcleary@waikato.ac.nz>.
  1224.      
  1225.    An implementation of prolog for Chez Scheme is available by anonymous
  1226.    ftp from titan.cs.rice.edu:public/dorai/schelog2.tar.Z. It is a
  1227.    collection of macros that expand syntax for clauses, elations, and
  1228.    so on into pure Scheme. It should be easily portable to other
  1229.    Schemes.  Its use of higher-order continuations is probably a major
  1230.    obstacle to porting it to Common Lisp.  For more information,
  1231.    please contact the author: dorai@cs.rice.edu.
  1232.  
  1233. ----------------------------------------------------------------
  1234. Subject: [1-12]     What does SICP, SCOOPS, R4RS, CAR, CDR, ... mean?
  1235.  
  1236. Glossary of acronyms:
  1237.    CAR           Originally meant "Contents of Address portion of Register",
  1238.            which is what CAR actually did on the IBM 704.
  1239.    CDR           Originally meant "Contents of Decrement portion of 
  1240.            Register", which is what CDR actually did
  1241.            on the IBM 704. Pronounced "Cudder".
  1242.    ANSI           American National Standards Institute
  1243.    SICP           Abelson and Sussman's book "Structure and
  1244.            Interpretation of Computer Programs".
  1245.    EOPL           Essentials of Programming Languages 
  1246.    SCOOPS       An experimental object-oriented programming
  1247.            language for Scheme.
  1248.    R3RS           Revised^3 Report on the Algorithmic Language Scheme.
  1249.    R4RS           Revised^4 Report on the Algorithmic Language Scheme.
  1250.  
  1251. ----------------------------------------------------------------
  1252.  
  1253. ;;; *EOF*
  1254.