Catalog of Free Compilers and Interpreters. With this document, I attempt to track the freely available compilers and interpreters. THIS IS STILL A DRAFT DOCUMENT: it has errors, it is not complete, and I might re-organize it. There is some overlap of coverage between this document and Bill Kinnersley's Language List. His document covers all computer languages and as a by-product includes some information about implementations. I wish to cover all free implementations and as a by-product cover some languages. Both from laziness and to avoid duplication of effort, I have not integrated the information from Bill Kinnersley's Language List into my catalog. There is also some overlap between my catalog and Colas Nahaboo's Catalog of embeddable Languages. It is my intention that my catalog primerily serve developers rather than researchers. I am much more intersted in production quality systems. To be on this list a package must have source code included. If there are any packages on this list that do not have source code included, then I would appreciate it if it is brought to my attention so that I may correct the error. There are many fields filled in with a question mark (?). If you have information which would allow me to remove question marks, please send it to me. The only field which I do not expect to be completely obvious is the "parts" field because I wish to distinguish between compilers, translators, and interpretors. To qualify as a compiler as I'm using the term, it must compile translate to a machine-readable format no higher-level than assembly. Why? Just because. If you've got a better idea, send it in. I hope to post this once a month. I don't know if I will be able to. David Muir Sharnoff , 10/2/92 This documents attempts to catalog freely availiable compilers, interpretors, libraries, and language tools. It is my intention that it be aimed at developers rather than researchers. Please note that I am supporting the FSF boycott of Apple by not including Macintosh-only entries. If you want to find Macintosh ports, ftp to bric-a-brac.apple.com, sumex-aim.stanford.edu, pacific.mps.ohio-state.edu, plains.nodak.edu, plains.nodak.edu, wuarchive.wustl.edu, archive.umich.edu, jyu.fi, neptune.ethz.ch, archive.umich.edu, cs.dal.ca, and ftp.uu.net. Or send mail to Zbigniew Fiedorowicz for his list. -------------------------------- tools ----------------------------------------- language: ABC package: ABC version: 1 parts: ? author: ? how to get: ftp programming/languages/abc/* from mcsun.eu.net description: ABC is an imperative language originally designed as a replacement for BASIC: interactive, very easy to learn, but structured, high-level, and easy to use. ABC has been designed iteratively, and the present version is the 4th iteration. The previous versions were called B (not to be confused with the predecessor of C). references: "The ABC Programmer's Handbook" by Leo Geurts, Lambert Meertens and Steven Pemberton, published by Prentice-Hall (ISBN 0-13-000027-2) "An Alternative Simple Language and Environment for PCs" by Steven Pemberton, IEEE Software, Vol. 4, No. 1, January 1987, pp. 56-64. ports: unix, ms-dos, atari, mac contact: abc@cwi.nl updated: ? language: Ada package: Ada grammar version: ? parts: scanner(lex), parser(yacc) how to get: ftp from primost.cs.wisc.edu or mail to compilers-server@iecc.cambridge.ma.us contact: masticol@dumas.rutgers.edu updated: 10/12/91 language: Ada package: Compiler for Toy/Ada in SML/NJ version: ? parts: translator(?) author: Amit Bhatiani how to get: ftp pub/compiler*.tar.Z from master.cs.rose-hulman.edy conformance: subset updated: 4/8/92 language: Ada package: NASA PrettyPrinter version: ? parts: Ada LR parser, ? how to get: ftp from Ada Software Repository on wsmr-simtel20.army.mil description: pretty-print program that contains an ada parser requires: Ada info-source: Michael Feldman in comp.compilers [he also has a yacc grammar for ada] updated: 2/1/91 language: Ada package: yacc grammar for Ada version: ? parts: parser(yacc) author: Herman Fischer how to get: ftp PD2:GRAM2.SRC from wsmr-simtel20.army.mil contact: ? updated: 2/1/91 language: Algol, Foogol package: foogol version: ? parts: compiler author: ? how to get: comp.sources.unix archive volume 8 conformance: subset of Algol description: ? ports: VAX updated: ? language: APL package: J-mode what: add on to J parts: emacs macros how to get: ftp public/j/gmacs/j-interaction-mode.el from think.com updated: 3/4/91 language: APL package: Sharp APL how to get: ftp languages/apl/* from watserv1.waterloo.edu updated: 7/6/92 language: APL package: I-APL how to get: ftp languages/apl/* from watserv1.waterloo.edu updated: 7/6/92 language: APL package: RATAPL how to get: ftp languages/apl/* from watserv1.waterloo.edu updated: 7/6/92 language: APL package: TryAPL2 how to get: ftp languages/apl/* from watserv1.waterloo.edu updated: 7/6/92 language: APL, J package: APL, J, and other APL Software at Waterloo parts: ftp archive how to get: ftp languages/apl/index from watserv1.waterloo.edu contact: Leroy J. (Lee) Dickey updated: 7/6/92 language: Assembler (8051) package: CAS: The Free Full-Featured 8051 Assembler version: ? parts: ? author: ? how to get: ftp /pub/8051/assem from csd4.csd.uwm.edu description; an experimental public domain one-pass assembler for the 8051 portability: high ports: MS-DOS, ? requries: ANSI-C compiler updated: 8/13/92 language: BASIC package: ? basic ? version: ? parts: paser(yacc), interpreter author: ? how to get: comp.sources.unix archives volume 2 updated: ? language: BASIC package: ? bournebasic ? version: ? parts: interpreter author: ? how to get: comp.sources.misc archives volume 1 description: ? updated: ? language: BASIC package: ? basic ? version: ? parts: interpreter author: ? how to get: ftp ? from wsmr-simtel20.army.mil description: ? contact: ? updated: ? language: BASIC package: ubasic version: 8 parts: ? author: Yuji Kida how to get: ? ask archie ? references: reviewed in Notices of the A.M.S #36 (May/June 1989), and "A math-oriented high-precision BASIC", #38 (3/91) contact: ? updated: 7/6/92 language: BNF package: Grey version: 2 parts: parser generator(Forth) author: Martin Anton Ertl how to get: author description: Gray is a parser generator written in Forth. It takes grammars in an extended BNF and produces executable Forth code for recursive descent parsers. There is no special support for error handling. requires: Forth ports: TILE Release 2 by Mikael Patel updated: 2/5/91 language: BNF ?? package: ZUSE version: ? parts: parser generator(?) author: Arthur Pyster how to get: ? Univ Calif at Santa Barbara ? description: ll(1) paser generator requires: Pascal updated: 9/23/86 language: BNF ?? package: FMQ version: ? parts: paser generator w/error corrector generator author: Jon Mauney how to get: ftp from csczar.ncsu.edu status: ? contact: ? updated: 3/31/90 language: BNF ?? package: ATS (Attribute Translation System) version: ? author: ? University of Saskatchewan ? how to get: ? description: generates table-driven LL(1) parsers with full insert-only error recovery. It also handles full left-attribute semantic handling, which is a dream compared to using YACC's parser actions. contact: ? info-source: Irving Reid in comp.compilers status: ? updated: 11/29/88 language: BNF ?? package: PCCTS (Purdue Compiler-Construction Tool Set) version: ? parts: ? how to get: ? ftp ? contact: ? Hank Dietz ? updated: ? language: BNF ?? package: DEER version: ? parts: parser geneartor author: Bob Grey description: LL(1) paser generator generates directly executable C, rather than a table-driven C machine. reference: Bob Grey, 1987 Summer Usenix proceedings. status: ? updated: 11/29/88 language: BNF ?? package: LLGen version: ? parts: parser generator author: ? Fischer and LeBlanc ? how to get: ? ftp from csczar.ncsu.edu ? description: LL(1) parser generator conformance: subset of FMQ reference: "Crafting A Compiler", by Fischer and LeBlanc status: ? contact: ? updated: 3/31/90 language: Bourne Shell package: bash (Bourne Again SHell) version: 1.12 parts: parser(yacc), interpreter, documentation how to get: ftp /u2/emacs/bash-1.12.tar.Z from prep.ai.mit.edu author: Brian Fox description: ? restriction: CopyLeft bugs: gnu.bash.bug updated: 1/28/92 language: C package: xdbx version: 2.1 parts: X11 front end for dbx how to get: retrieve xxgdb from comp.sources.x volumes 11, 12, 13, 14, & 16 contact: Po Cheung updated: 2/22/92 language: C package: ups version: 2.1 parts: interpreter, symbolic debugger, tests, documentation how to get: ? ftp from contrib/ups*.tar.Z from export.lcs.mit.edu ? author: Mark Russell description: Ups is a source level C debugger that runs under X11 or SunView. Ups includes a C interpreter which allows you to add fragments of code simply by editing them into the source window. ports: Sun, Decstation, VAX(ultrix), HLH Clipper discussion: ups-users-request@ukc.ac.uk bugs: Mark Russell updated: 5/20/91 language: C package: lcc version: ? parts: compiler author: ? Princton & Bell Labs ? how to get: ftp from princeton.edu description: + hand coded C parser (faster than yacc) + retargetable + code "as good as GCC" - mips, sparc, 68k backends for sale contact: ? ports: vax updated: ? language: C package: smallc version: ? parts: compiler author: ? how to get: comp.sources.unix volume 5 description: ? conformance: ? ports: 68k, 6809, VAX, 8080 updated: ? language: C package: GCT version: 1.3 parts: test-coverage-preprocessor author: Brian Marick how to get: ftp pub/testing/GCT.README from cs.uiuc.edu description: GCT is test-coverage tool based on GNU C. Coverage tools measure how thoroughly a test suite exercises a program. restriction: CopyLeft discussion: gct-request@ernie.cs.uiuc.edu support: commercial support available from author, (217) 351-7228 ports: ? updated: 6/27/92 language: C package: Harvest C version: 2.1 ports: Macintosh how to get: ftp mac/development/languages/harves* from archive.umich.edu description: ? contact: Eric W. Sink updated: 5/26/92 language: C++ package: ET++ parts: class libraries, documentation how to get: ftp C++/ET++/* or pub/* from iamsun.unibe.ch contact: Erich Gamma updated: 10/26/92 language: C++ package: C++ grammar how to get: comp.sources.misc volume 25 parts: parser(yacc) updated: 10/23/91 language: C++ package: ? version: ? parts: parser(yacc) author: Jim Roskind how to get: comp.archives archive on primost.cs.wisc.edu status: ? updated: 12/26/89 language: C++ package: COOL version: ? parts: libraries, tests, documentation how to get: ftp ? from cs.utexas.edu description: A C++ class library developed at Texas Instruments. Cool contains a set of containers like Vectors, List, Has_Table, etc. It uses a shallow hierarchy with no common base class. The funtionality is close to Common Lisp data structures (like libg++). The template syntax is very close to Cfront3.x and g++2.x. Can build shared libraries on Suns. contact: Van-Duc Nguyen ports: ? updated: 8/5/92 language: C++, Extended C++ package: EC++ version: ? parts: translator(C++), documentation author: Glauco Masotti how to get: ? ftp languages/misc/EC++.tar.Z from ftp.uu.net ? description: EC++ is a preprocessor that translates Extended C++ into C++. The extensions include: + preconditions, postconditions, and class invariants + parameterized classes + exception handling + garbage collection status: ? updated: 10/10/89 language: C (ANSI) package: ? 1984 ANSI C to K&R C preprocessor ? version: ? parts: translator(K&R C) author: ? how to get: from comp.sources.unix archive volume 1 status: ? updated: ? language: C (ANSI) package: unproto ? version: ? 4 ? 1.6 ? parts: translator(K&R C) author: Wietse Venema how to get: ftp pub/unix/unproto4.shar.Z from ftp.win.tue.nl contact: ? updated: ? language: C, ANSI C, C++ package: ? The Roskind grammars ? version: ? parts: parser(yacc) author: Jim Roskind how to get: ftp pub/*grammar* from ics.uci.edu description: The C grammar is CLEAN, it does not use %prec, %assoc, and has only one shift-reduce conflict. The C++ grammar has a few conflicts. status: ? updated: 12/26/89 language: C, C++ package: xxgdb version: 1.06 parts: X11 front end for gdb how to get: retrieve xxgdb from comp.sources.x volumes 11, 12, 13, 14, & 16 contact: Pierre Willard updated: 2/22/92 language: C, C++ package: gdb version: 4.5 parts: symbolic debugger, documentation how to get: ftp /u2/emacs/gdb-4.5.tar.Z from prep.ai.mit.edu author: many, but most recently Stu Grossman and John Gilmore ports: most unix variants, vms, vxworks, amiga, msdos bugs: gnu.gdb.bug discussion: ? restriction: CopyLeft updated: 4/13/92 language: C, C++, Objective C package: emx programming environment for OS/2 parts: gcc, g++, gdb, libg++, .obj linkage, DLL, headers how to get: ftp pub/os2/2.0/programing/emx-0.8e from ftp-os2.nmsu.edu author: Kai-Uwe Rommel updated: 9/21/92 language: C, nroff package: c2man version: 1.1 parts: documentation generator (C -> nroff -man) how to get: alt.sources archive author: Graham Stoney description: c2man is a program for generating Unix style manual pages in nroff -man format directly from ordinary comments embedded in C source code updated: 7/10/92 language: C-Refine, C++-Refine, *-Refine package: crefine version: 3.0 parts: pre-processor, documentation how to get: aquire from any comp.sources.reviewed archive author: Lutz Prechelt description: C-Refine is a preprocessor for C and languages that vaguely resemble C's syntax. It allows symbolic naming of code fragments so as to redistribute complexity and provide running commentary. portability: high ports: unix, msdos, atari, amiga. updated: 7/16/92 language: CAML (Categorical Abstract Machine Language) package: CAML version: 3.1 parts: ? author: ? description: CAML is a language belonging to the ML family including: + lexical binding discipline + static type inference + user-defined (sum and product) types + possibly lazy data structures + possibly mutable data structures + interface with the Yacc parser generator + pretty-printing tools + and a complete library. how to get: ? ftp lang/caml from nuri.inria.fr ? status: ? discussion: ? ports: Sun-3 Sun-4 Sony-68k Sony-R3000 Decstation Mac-A/UX Apollo portability: ? bugs: weis@margaux.inria.fr or caml@margaux.inria.fr updated: ? language: Caml Light package: Caml Light version: 0.4 how to get: ftp lang/caml-light/* from nuri.inria.fr author: Xavier Leroy parts: bytecode compiler, runtime, scanner generator, parser generator ports: most unix, Macintosh, Amiga, MS-DOS conformance: subset of CAML features: very small performance: five to ten times slower than SML-NJ portability: very high contact: Xavier Leroy updated: 10/5/91 language: Candle, IDL (Interface Description Language) package: Scorpion System version: 5.0 author: University of Arizona parts: software development environment for developing software development environments, documentation how to get: ftp scorpion/* from cs.arizona.edu description: 20 tools that can be used to construct specialized programming environments history: The Scorpion Project was started by Prof. Richard Snodgrass as an outgrowth of the SoftLab Project (which pro- duced the IDL Toolkit) that he started when he was at the University of North Carolina. The Scorpion Project is directed by him at the University of Arizona and by Karen Shannon at the University of North Carolina at Chapel Hill. reference: "The Interface Description Language: Definition and Use," by Richard Snodgrass, Computer Science Press, 1989, ISBN 0-7167-8198-0 ports: Sun-3, Sun-4, Vax, Decstation, NeXT, Sequent, HP9000 discussion: info-scorpion-request@cs.arizona.edu contact: scorpion-project@cs.arizona.edu updated: 4/10/91 language: Common Lisp package: CMU Common Lisp version: 16e parts: compiler, runtime, documentation, editor author: ? how to get: ftp *-source.tar.Z from ftp.cs.cmu.edu. precompiled versions also available description: includes macs-like editor (hemlock), pcl, and clx. ports: sparc, mips contact: slisp@cs.cmu.edu updated: 9/1/92 language: Common Lisp package: PCL (Portable Common Loops) version: 8/28/92 PCL parts: library author: ? Richard Harris ? how to get: ftp pcl/* from parcftp.xerox.com description: A portable CLOS implementation. CLOS is the object oriented programming standard for Common Lisp. Based on Symbolics FLAVORS and Xerox LOOPS, among others. Loops stands for Lisp Object Oriented Programming System. status: ? ports: Lucid CL 4.0.1, CMUCL 16e, ? updated: 9/2/92 language: Common Lisp package: WCL version: ? parts: ?, shared library runtime, source debugger author: Wade Hennessey how to get: ftp ? from sunrise.stanford.edu description: A common lisp implementation as a shared library. WCL Is not a 100% complete Common Lisp, but it does have the full development environment including dynamic file loading and debugging. A modified version of GDB provides mixed-language debugging. A paper describing WCL was published in the proceedings of the 1992 Lisp and Functional Programming Conference. contact: Wade Hennessey ports: Sun sparc. updated: 9/29/92 language: CommonLisp package: KCL (Kyoto Common Lisp) parts: translator(C), interpretor how to get: ? ftp pub/kcl*.tar.Z from rascal.ics.utexas.edu ? author: T. Yuasa and M. Hagiya (working under R. Nakajima) at the description: KCL, Kyoto Common Lisp, is an implementation of Lisp, It is written in the language C to run under Un*x-like operating systems. KCL is very C-oriented; for example, the compilation of Lisp functions in KCL involves a subsidiary C compilation. conformance: conforms to the book ``Common Lisp: The Language,'' G. Steele, et al., Digital Press, 1984. contact: yuasa@tutics.tut.ac.jp hagiya@kurims.kurims.kyoto-u.ac.jp discussion: kcl-request@cli.com bugs: kcl@cli.com updated: 6/87 language: CommonLisp package: AKCL (Austin Kyoto Common Lisp) version: 1-600 parts: patches to KCL how to get: ftp pub/akcl-*.tar.Z from rascal.ics.utexas.edu author: Bill Schelter description: AKCL is a collection of ports, bug fixes, and performance improvements to KCL. ports: Decstation3100, HP9000/300, i386/sysV, IBM-PS2/aix, IBM-RT/aix SGI Sun-3/Sunos[34].* Sun-4 Sequent-Symmetry IBM370/aix, VAX/bsd VAX/ultrix updated: 9/17/91 language: CommonLisp package: CLX version: 5.01 parts: library how to get: ftp contrib/CLX.R5.01.tar.Z from export.lcs.mit.edu description: CommonLisp binding for X contact: ? ports: ?, CMU Common Lisp bugs: bug-clx@expo.lcs.mit.edu updated: 8/26/92 language: context-free BNF-like grammar package: TXL: Tree Transformation Language version: 6.0 parts: translator generator author: Jim Cordy how to get: ftp txl/00README for instructions from qusuna.qucis.queensu.ca description: + TXL is a generalized source-to-source translation system suitable for rapidly prototyping computer languages and language processors of any kind. It has been used to prototype several new programming languages as well as specification languages, command languages, and more traditional program transformation tasks such as constant folding, type inference, source optimization and reverse engineering. TXL takes as input an arbitrary context-free grammar in extended BNF-like notation, and a set of show-by-example transformation rules to be applied to inputs parsed using the grammar. updated: 2/23/92 language: csh (C-Shell) package: tcsh version: 6.02 parts: interpreter author: Christos Zoulas how to get: ? description: a modified C-Shell with history editing updated: 5/17/92 language: EDIF (Electronic Design Interchange Format) package: Berkeley EDIF200 version: 7.6 parts: translator-building toolkit author: Wendell C. Baker and Prof A. Richard Newton of the Electronics Research Laboratory, Department of Electrical Engineering and Computer Sciences at the University of California, Berkeley, CA. how to get: ftp from pub/edif in ic.berkeley.edu description: ? ports: ? restriction: no-profit w/o permission updated: 7/90 language: EDIF v 2 0 101 package: University of Manchester EDIF v 2 0 101 Syntax Checker how to get: ftp pub/edif from edif.cs.man.ac.uk description: Parser/Syntax checker for EDIF v 2 0 101 written in ANSI-C language: EuLisp package: Feel (Free and Eventually Eulisp) version: 0.75 parts: interpreter, documentation how to get: ftp pub/eulisp from ftp.bath.ac.uk author: Pete Broadbery description: + integrated object system + a module system + parallelism + interfaces to PVM library, tcp/ip sockets, futures, Linda, and CSP. ports: most unix portability: high, but can use shared memory and threads if available updated: 9/14/92 language: FMPL of Accardi package: FMPL interpreter version: 1 parts: interpreter, documentation author: Jon Blow how to get: ftp src/local/fmpl/* from xcf.berkeley.edu description: FMPL is an experimental prototype-based object-oriented programming language developed at the Experimental Computing Facility of the University of California, Berkeley. + lambda-calculus based constructs. + event-driven (mainly I/O events) updated: 6/2/92 language: FORTH package: TILE Forth version: ? parts: ? compiler, interpreter ? author: Mikael Patel how to get: alt.sources archive description: ? conformance: Forth83 restriction: shareware/GPL ports: ? updated: ? language: FORTH package: cforth version: ? parts: interpreter author: ? how to get: comp.sources.unix archive volume 1 description: ? updated: ? language: Forth, Yerk package: Yerk version: 3.62 parts: ? how to get: ftp pub/Yerk/? from oddjob.uchicago.edu description: Yerk is an object oriented language based on a Forth Kernel with some major modifications. It was originally known as Neon, developed and sold as a product by Kriya Systems from 1985 to 1989. Several of us at The University of Chicago have maintained Yerk since its demise as a product. Because of the possible trademark conflict that Kriya mentions, we picked the name Yerk, which is at least not an acronym for anything, but rather stands for Yerkes Observatory, part of the Department of Astronomy and Astrophysics at U of C. author: ? updated: ? language: Fortran package: f2c version: ? parts: translator(C) author: ? how to get: ? mail subject "send all from f2c/src" to dmg@research.att.com ? bugs: dmg@research.att.com updated: ? 2/16/91 ? language: Fortran package: Floppy version: ? how to get: ffccc in comp.sources.misc archive volume 12 description: ? contact: ? updated: 8/4/92 language: Fortran package: Flow version: ? parts: ? how to get: comp.sources.misc archive volume 31 author: Julian James Bunn descripton: The Flow program is a companion to Floppy, it allows the user to produce various reports on the structure of Fortran 77 code, such as flow diagrams and common block tables. requires: Floppy ports: VMS, Unix, CMS language: FP package: ? funcproglang ? version: ? parts: translator(C) author: ? how to get: comp.sources.unix archive volume 13 descrition: ? Backus Functional Programming ? updated: ? language: Garnet ?? package: Garnet version: 2.1 alpha how to get: ftp from /usr/garnet/? from a.gp.cs.cmu.edu description: ? contact: ? updated: ? language: Garnet package: Multi-Garnet version: 2.1 how to get: ftp /usr/garnet/alpha/src/contrib/multi-garnet from a.gp.cs.cmu.edu author: Michael Sannella description: better contstraint system for Garnet ?? updated: 9/21/92 language: Gofer (Haskell derivitive) package: Gofer version: 2.21 parts: ?, documentation, examples author: Mark Jones how to get: ftp languages/haskell/gofer from src.doc.ic.ac.uk conformances: Gofer does not implement all of Haskell, although it is very close. ports: many, including Sun, PC, Mac, Atari, Amiga updated: 7/6/92 language: Haskell package: Chalmers Haskell (aka Haskell B.) version: ? parts: ? how to get: ftp pub/haskell/chalmers/hbc from animal.cs.chalmers.se requires: LML contact: ? updated: 7/6/92 language: Hermes package: IBM Watson prototype Hermes system version: 0.8alpha patchlevel 01 parts: bytecode compiler, bytecode translator(C), runtime author: Andy Lowry how to get: ftp pub/hermes/README from software.watson.ibm.com description: Hermes is a very-high-level integrated language and system for implementation of large systems and distributed applications, as well as for general-purpose programming. It is an imperative, strongly typed, process-oriented language. Hermes hides distribution and heterogeneity from the programmer. The programmer sees a single abstract machine containing processes that communicate using calls or sends. The compiler, not the programmer, deals with the complexity of data structure layout, local and remote communication, and interaction with the operating system. As a result, Hermes programs are portable and easy to write. Because the programming paradigm is simple and high level, there are many opportunities for optimization which are not present in languages which give the programmer more direct control over the machine. reference: Strom, Bacon, Goldberg, Lowry, Yellin, Yemini. Hermes: A Language for Distributed Computing. Prentice-Hall, Englewood Cliffs, NJ. 1991. ISBN: O-13-389537-8. ports: RS6000 Sun-4 NeXT IBM-RT/bsd4.3 (Sun-3 and Convex soon) discussion: comp.lang.hermes updated: 3/22/92 language: ici package: ici parts: interpreter, documentation, examples author: Tim Long how to get: ? ftp pub/ici.cpio.Z from extro.ucc.su.edu.au ? description: ICI has dynamic arrays, structures and typing with the flow control constructs, operators and syntax of C. There are standard functions to provided the sort of support provided by the standard I/O and the C libraries, as well as addi- tional types and functions to support common needs such as simple data bases and character based screen handling. ports: Sun4, 80x86 Xenix, NextStep, MS-DOS features: + direct access to many system calls + structures, safe pointers, floating point - no associative array builtin. + simple, non-indexed built in database + terminal-based windowing library contact: ? portability: high status: actively developed. updated: 6/22/91 language: Icon package: icon version: 8.7 (8.5, 8.0 depending on platform) parts: interpreter, compiler (some platforms), library author: Ralph Griswold how to get: ftp icon/* from cs.arizona.edu description: Icon is a high-level, general purpose programming language that contains many features for processing nonnumeric data, particularly for textual material consisting of string of characters. - no packages, one name-space - no exceptions + object oiented features + records, sets, lists, strings, tables + unlimited line length + good C interface - unix interface is primitive + co-expressions references: "The Icon Programmming Language", Ralph E. Griswold and Madge T. Griswold, Prentice Hall 1983. "The Implementation of the Icon Programmming Language", Ralph E. Griswold and Madge T. Griswold, Princeton University Press 1986 ports: Amiga, Atari, CMS, Macintosh, Macintosh/MPW, MS-DOS, MVS, OS/2, Unix (most variants), VMS discussion: comp.lang.icon contact: icon-project@cs.arizona.edu updated: 8/21/92 language: IFP (Illinois Functional Programming) package: ifp version: ? parts: interpreter author: ? how to get: comp.sources.unix archive volume 10 description: ? updated: ? language: J ? package: J ? version: 5 ? how to get: ftp languages/apl/* from watserv1.waterloo.edu updated: 7/6/92 language: Janus package: qdjanus version: 1.3 parts: translator(prolog) author: Saumya Debray how to get: ftp janus/qdjanus/* from cs.arizona.edu conformance: mostly compliant with "Programming in Janus" by Saraswat, Kahn, and Levy. description: janus is a janus-to-prolog compiler meant to be used with Sicstus Prolog updated: 5/18/92 language: Janus package: jc version: 1.50 alpha parts: translator(C) author: David Gudeman how to get: ftp janus/jc/* from cs.arizona.edu description: jc is a janus-to-C compiler (considerably faster than qdjanus) bugs: jc-bugs@cs.arizona.edu discussion: janusinterest-request@parc.xerox.com ports: sun-4, sun-3 updated: 6/9/92 language: Kevo package: kevo version: 0.9b2 parts: ?, demo programs, user's guid, papers author: Antero Taivalsaari how to get: ftp /ursa/kevo/* from ursamajor.uvic.ca description: Experimental prototype-based object-oriented system. Although the Kevo system has been built to experiment with ideas which are somewhat irrelevant from the viewpoint of Forth, the system does bear some resemblance to Forth; in particular, the system executes indirect threaded code, and a great deal of the primitives are similar to those of Forth's. ports: Macintosh ('020 or better) contact: kevo-interest@ursamajor.uvic.ca updated: 9/21/92 language: Lambda-Prolog package: Prolog/Mali (PM) version: ? 6/23/92 ? parts: translator(C), linker, libraries, runtime, documentation how to get: ftp pm/* from ftp.irisa.fr author: Pascal Brisset description: Lambda-Prolog, a logic programming language defined by Miller, is an extension of Prolog where terms are simply typed $\lambda$terms and clauses are higher order hereditary Harrop formulas. The main novelties are universal quantification on goals and implication. references: + Miller D.A. and Nadathur G. "Higher-order logic programming", 3rd International Conference on Logic Programming, pp 448-462, London 1986. + Nadathur G. "A Higher-Order Logic as a Basis for Logic Programming", Thesis, University of Pennsylvania, 1987. requires: MALI-V06 abstract memory. MALI is available by anonymous ftp from ftp.irisa.fr ports: unix discussion: prolog-mali-request@irisa.fr contact: pm@irisa.fr updated: 7/6/92 language: lex package: flex version: 2.3.7 parts: scanner generator how to get: ftp /u2/emacs/flex-2.3.7.tar.Z from prep.ai.mit.edu author: Vern Paxson updated: 3/29/91