Article 21951 of comp.lang.misc: Newsgroups: comp.compilers,comp.lang.misc,comp.archives.admin,news.answers,comp.answers Path: nntpd.lkg.dec.com!crl.dec.com!crl.dec.com!bloom-beacon.mit.edu!news.kei.com!world!iecc!compilers-sender From: free-compilers@idiom.com (Steven Robenalt) Subject: Catalog of compilers, interpreters, and other language tools [p1of5] Message-ID: Followup-To: comp.lang.misc Summary: Monthly posting of free language tools that include source code Keywords: compilers, interpreters, languages, tools, FTP Sender: compilers-sender@chico.iecc.com Supersedes: Reply-To: free-compilers@idiom.com (Steven Robenalt) Organization: Idiom Consulting / Berkeley, CA Date: Sat, 1 Jul 1995 11:00:20 GMT Approved: compilers@iecc.com Expires: Tue, 1 Aug 1995 23:59:00 GMT Lines: 1879 Xref: nntpd.lkg.dec.com comp.compilers:9016 comp.lang.misc:21951 comp.archives.admin:1890 news.answers:46983 comp.answers:12591 Archive-name: free-compilers/part1 Last-modified: 1995/05/04 Version: 8.0 ------------------------------------------------------------------------------- Catalog of Free Compilers and Interpreters. ------------------------------------------------------------------------------- Copyright (c) 1992, 1993, 1994, David Muir Sharnoff, All Rights Reserved Copyright (c) 1994, 1995, Steven Allen Robenalt, All Rights Reserved This list catalogues freely available software for language tools, which includes the following: compilers, compiler generators, interpreters, translators, important libraries, assemblers, etc. -- things whose user interface is a language. Natural language processing tools may also be included. This list is primarily aimed at developers rather than researchers, and consists mainly of citations for production quality systems. There is some overlap of coverage between this document and other lists and catalogs. See the references section for a list... All the listed items should be free and come with source code, exceptions have generally been deleted from the list in the past. If you find any such items in the list let me know and I'll remove them. The latest version of the catalog can be ftp'ed: get ftp://ftp.idiom.com/pub/compilers-list/free-compilers There is a static version available through WWW at: (note: the trailing slash (/) is important) http://www.idiom.com/free-compilers/ There is a searchable (but less fancy) version sometimes available at: http://cuiwww.unige.ch/~scg/freecomp Not all entries have complete citations. Some fields are filled with question marks (?). Fields with both the ? and an entry are implicit requests for confirmation. Also, specific questions will often be asked [in brackets --ed]. If you have information not included in here or updates to information listed here, a template has been provided below for you to use. You can send whatever new items or updates you have to . ------------------------------------------------------------------------------- overview (table of contents) ------------------------------------------------------------------------------- Section Parts Catalog of Free Compilers and Interpreters. 1 overview (table of contents) 1 changes and history 1 prototype entry 1 tools 1 scripting languages 1 functional languages 1 C variants 2 compiled, imperative languages 2 object oriented languages 2 lisp family 3 document formatting languages 3 logic programming languages 3 concurrent, parallel, and simulation languages 4 Forth family languages 4 compiler generators and related tools 4 mathematical tools and languages 4 electrical engineering languages 4 Wirth family languages 5 assemblers 5 macro preprocessors 5 special purpose languages 5 natural languages 5 curiosities 5 unable to classify due to lack of knowledge 5 references 5 archives 5 cross-reference 5 ------------------------------------------------------------------------------- changes and history ------------------------------------------------------------------------------- This document grew out of David Muir Sharnoff filing away postings that he saw (mostly Ed Vielmetti's postings to comp.archives) during 1991 and the first half of 1992. At the Summer 1992 USENIX Technical Conference, the other attendees of the archivists BOF convinced David to compile his data into a posting. David posted for about one year, then turned the list over to Mark Hopkins. Mark Hopkins took care of it for the summer of 1993 and then gave it back to David Sharnoff when he dropped off the net. Steve Robenalt took over the list maintenance from Dave in January 1994. It was returned to Mark Hopkins in May 1994, but Dave's organization, Idiom Consulting, remains as the focal point for information to be submitted. In July through November 1994, David created a HTML version of the list while updates piled up. Eric S. Raymond made quite a few edits during this conversion process that had to be edited in by hand 'cause the compilers list was kinda unstable. Eventually, David and Steve took care of the backlog and passed maintenance back to Mark. Now that you are probably completely confused about who does what, Steve is maintaining the list again. After cleaning up a large portion of a rather hefty backlog from the past six months, I would like to request that whenever possible, readers of this list send in entries using the sample form provided, including the required information. If you find a tool useful and it's not here, do the author a favor and submit the information. It makes the updates much easier. If you should wish to make substantial changes to the free compilers list, please talk to us first. The version that you see is not quite the same as the version that we maintain. For this version the changes to the list are: language package -------- ------- new listings: C (ANSI/ISO) Metre Prolog Beta-Prolog 1.5 Tcl Object Tcl 1.0 beta Simula 67 cim 1.62 Expect Expect 5.12 EXPRESS NIST EXPRESS Toolkit Pascal Pascal for Minix OPAL ocs 2.1d BASIC ACE 2.3 lua lua 2.1 Ada 9X AVLAda9X Marpa Marpa Alpha 2.8 Oberon-2 o2c new versions: Perl5 perl5 5.001 C, C++,etc gdb 4.14 RLaB RLaB 1.18d Modula-3 SRC Modula-3 3.5 awk (new) gawk 2.15.6 lex flex 2.5.2 BNF (Extended) PCCTS 1.31 BNF (yacc) Bison-A2.3 Modula-3 m2tom3 translator 2.00 C (ANSI) lcc 3.2 Korn Shell pdksh 5.1.3 DSP56001 asm a56 1.2 Prolog clp(FD) 2.2 Prolog wamcc 2.2 Octave octave 1.1.1 Haskell Glasgow Haskell 0.23 C, C++, Obj-C gcc 2.6.3 Python Python 1.2 BNF Eli 3.8 Bourne Shell Bash 1.14.4 Scheme Hobbit 4b revised entry: Scheme->C Windows NT patches. Tcl Tcl 7.3 OS/2 port BNF (Extended) Gray orthogonal orthogonal BNF (Extended) GMD Toolbox Modula-2 mtc 6502 asm Pascal Pascal P4 ABC Grammar Analysis Tools, Examples ------------------------------------------------------------------------------- prototype entry ------------------------------------------------------------------------------- Every entry should at least have the fields marked with two asterisks (**). language: **Reference Entry Language: what the software compiles/interprets... package: **The name of the package version: **Its current version parts: **compiler, assembler, interpreter, translator, grammar(yacc, lex), library, documentation, examples, assembler, simulator, tutorial, test suite, byte-code compiler, run-time, translator(from->to)... Compilers that use C as an intermediate lanaguage should be noted as "compiler(->C)". Compilers that compile into a coded representation that is interpreted by a runtime module should be noted as "bytecode compiler". Do not say "source code" -- if source is not included, do not send an entry at all! author: **the creator of the package. Email addresses are in the form "Real Name ". Surface mail addresses are not used unless there is no email address. location: **where to get the source, how to get it -- usually an FTP site or two. May have subheaders for specific areas or different ports of the software (don't overdo this!): Only official sites should be listed. The format for ftp directives is "ftp dir/file from host", although valid URL's are also acceptable. No IP address is ever given. No other ftp formats are allowed. Continent: Sites for continent. Country: Sites for country. System: Sites for a particular port. description: **what the package is, possibly including some history A short review encouraged, but no propaganda please. conformance: how well does it conform to the existing Standard, if one exists reference: Research references and other external documentation. If there is more than one entry in the section indent all but first line of each entry by one character If there is only one entry, then don't indent that single entry at all. features: 1. salient features not listed in the description. 2. You may list features with numbered lists 3. Or you may use bullet items: + every bullet item should be a plus + unless you want to say that something is an anti-feature - in which case you should use a minus. + but in any case, you should put the + or - at the beginning of the line. bugs: known bugs (also: where to go to find/report bugs) restriction: restrictions using the software will place on the user. requires: what is needed to install it. A C compiler is assumed. ports: where it has been installed portability: how system-independent is it, system dependencies. status: development status (active, history, supported, etc) discussion: where discussion about the package takes place help: where help may be gotten from support: where support may be gotten from contributions: possible requests for money contributions (but no shareware) announcements: where new releases are announced contact: who to reach concerning the package (if not author) Email addresses are in the form "Real Name ". Surface mail addresses are not used unless there is no email address. updated: **last known update to the package, not time of the update to the entry in the catalog! The format of date is: yyyy/mm/dd, yyyy/mm, or yyyy. No other formats are allowed. In addition to the above, in entries for categories, and languages, cross-references can be made. cref: cross-reference to a category lref: cross-reference to a language iref: (language it's filed under in parenthesis) cross-reference to an implementation ------------------------------------------------------------------------------- tools ------------------------------------------------------------------------------- scripting languages ------------------------------------------------------------------------------- category: scripting languages description: These are languages that are primarily interpreted, and on unix sytems, can ususally be invoked directly from a text file using #!. iref: (Scheme) scsh language: ABC package: ABC version: 1.04.01 parts: interpreter/compiler author: Leo Geurts, Lambert Meertens, Steven Pemberton location: ftp /pub/abc/* from ftp.cwi.nl or http://www.cwi.nl/~steven/abc.html description: ABC is an imperative language embedded in its own environment. It is interactive, structured, high-level, very easy to learn, and easy to use. It is suitable for general everyday programming, such as you would use BASIC, Pascal, or AWK for. It is not a systems-programming language. It is an excellent teaching language, and because it is interactive, excellent for prototyping. ABC programs are typically very compact, around a quarter to a fifth the size of the equivalent Pascal or C program. However, this is not at the cost of readability, on the contrary in fact. reference: "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, MSDOS, atari, mac discussion: abc-list-request@cwi.nl contact: abc@cwi.nl updated: 1991/05/02 language: awk (new) package: mawk version: 1.1.3 parts: interpreter author: Mike Brennan location: ftp public/mawk* from oxy.edu description: a pattern-directed language for massaging text files conformance: superset of (old, V7) awk features: + RS can be a regular expression + faster than most new awks ports: sun3,sun4:sunos4.0.3 vax:bsd4.3,ultrix4.1 stardent3000:sysVR3 decstation:ultrix4.1 msdos:turboC++ status: actively developed contact: Mike Brennan updated: 1993/03/14 language: awk (new) package: GNU awk (gawk) version: 2.15.6 parts: interpreter, documentation author: David Trueman and Arnold Robbins location: ftp gawk-2.15.tar.Z from a GNU archive site description: a pattern-directed language for massaging text files conformance: superset of (old, V7) awk including some Plan 9 features ports: unix, msdos:msc5.1 status: activly developed updated: 1995/03/09 language: BASIC package: bwBASIC (Bywater BASIC interpreter) version: 2.10 parts: interpreter, shell, ? author: Ted A. Campbell location: comp.sources.misc volume 40 description: The Bywater BASIC Interpreter (bwBASIC) implements a large superset of the ANSI Standard for Minimal BASIC (X3.60-1978) implemented in ANSI C, and offers a simple interactive environ- ment including some shell program facilities as an extension of BASIC. The interpreter has been compiled successfully on a range of ANSI C compilers on varying platforms with no alterations to source code necessary. ports: DOS, Unix, Acorn's RISC OS updated: 1993/10/29 language: BASIC package: ? basic ? version: ? parts: paser(yacc), interpreter author: ? location: comp.sources.unix archives volume 2 description: ? updated: ? language: BASIC package: ? bournebasic ? version: ? parts: interpreter author: ? location: comp.sources.misc archives volume 1 description: ? updated: ? language: BASIC package: ubasic version: 8.74 parts: interpreter, documentation, examples author: Yuji Kida location: math.ohio-state.edu in pub/msdos/ubasic/ N.America: ftp SimTel/msdos/ubasic/* from oak.oakland.edu Europe: ftp pub/msdos/SimTel/ubasic/* from ftp.funet.fi description: An implementation of BASIC with high precision real and complex arithmetic (up to 2600 digits), exact rational arithmetics, arithmetic of rational, modulo p or complex polynomials, and strings and linked lists. It supports algebraic, transcendental and arithmetic functions, some C-like and Pascal-like functions. The latest version supports VGA graphics. reference: reviewed in Notices of the A.M.S #36 (May/June 1989), and "A math-oriented high-precision BASIC", #38 (3/91) ports: MS-DOS, VGA capability present. updated: 1994/06/05 language: BASIC package: ? version: ? parts: interpreter author: ? location: ftp pub/unix-c/languages/basic/basic.tar-z from oak.oakland.edu description: public domain version of DEC's MU-Basic with Microsoft Basic mixed together contact: ? updated: ? language: BASIC package: ACE - AmigaBASIC Compiler with Extras version: 2.3 parts: Compiler (produces 68000 assembly code), assembler, linker, run-time libraries (linkable), text and AmigaGuide docs, integrated development environment, large collection of example programs, utilities. author: David Benn. E-mail: D.Benn@appcomp.utas.edu.au location: ftp /pub/ACE/ace23.lha from ftp.appcomp.utas.edu.au ftp dev/basic/ace23.lha from Aminet sites (wuarchive.wustl.edu) description: ACE is a FreeWare Amiga BASIC compiler which, in conjunction with A68K and Blink produces standalone executables. The language defines a large subset of AmigaBASIC but also has many features not found in the latter such as: turtle graphics, recursion, SUBs with return values, structures, arguments, include files, a better WAVE command which allows for large waveforms, external references, named constants and a variety of other commands and functions not found in AmigaBASIC. conformance: Follows AmigaBASIC fairly closely with most differences being minor. Many extra features have been added however. Major AmigaBASIC features yet to be implemented: double-precision floating point math, random files, sprites. bugs: See documentation: ace.doc, p 43-44. restrictions: See documentation: ace.doc, p 42-43 and conformance (above). portability: ACE is targetted at the Amiga but many generic BASIC programs will compile with little or no change. status: ACE is still being developed. Version 2.3 is its sixth release. discussion: Discussion list: send the message "subscribe ace FirstName LastName" to: Listserver@appcomp.utas.edu.au announcements: On the ACE discussion list and the newsgroup comp.sys.amiga.programmer updated: 1994/10/22 language: Bourne Shell package: ash version: ? parts: interpreter, manual page author: Kenneth Almquist location: ftp from any 386BSD, NetBSD, or FreeBSD archive Linux: ftp pub/linux/ports/ash-linux-0.1.tar.gz from ftp.win.tue.nl description: A Bourne Shell clone. It works pretty well. For running scripts, it is sometimes better and sometimes worse than Bash. ports: 386BSD, NetBSD, FreeBSD, Linux updated: ? language: csh (C-Shell) package: tcsh version: 6.05 parts: interpreter, manual page, html manual author: Christos Zoulas location: ftp pub/tcsh/tcsh-6.05.tar.gz from tesla.ee.cornell.edu description: a modified C-Shell with history editing ports: unix, VMS_POSIX, nearing completion: OS/2 EMX. updated: 1994/06/27 language: ERGO-Shell (a window-based Unix shell) package: ERGO-Shell version: 2.1 parts: interpreter author: Regine Freitag location: ftp gmd/ergo/? from ftp.gmd.de description: An ergonomic window-based Unix shell for software engineers. [Can one program in ERGO-Shell? --ed] bugs: Relative path names are not expanded on the SUN 3 port, expansion ability on SUN 4 only on certain conditions. requires: Needs X-windows (X11R4) or OSF/Motif (revision 1.1) ports: Sun 4 contact: Dr. Wolfgang Dzida, GMD or the author updated: 1993/06/04 language: es (a functional shell) package: es version: 0.84 parts: interpreter author: Byron Rakitzis , Paul Haahr location: ftp pub/es/es-0.84.tar.Z from ftp.sys.utoronto.ca description: shell with higher order functions + builtin features implemented as redefineable functions updated: 1993/04/30 language: ESL package: ESL version: 0.2 parts: ? author: David J. Hughes location: Bond.edu.au [131.244.1.1] in /pub/Bond_Uni/Minerva description: Styled scripting language with automatic allocation, associative arrays, compilation to host-independent binary format, bindings to CMU-SNMP library ports: SPARC (under Sun OS 4.1.1), Solaris 2.3, Ultrix 4.3, Linux 1.0 updated: 1994/07/12 language: Glish package: glish version: 2.4.1 parts: interpreter, C++ class library, user manual author: Vern Paxson location: ftp glish/glish-2.4.1.tar.Z from ftp.ee.lbl.gov description: Glish is an interpretive language for building loosely-coupled distributed systems from modular, event-oriented programs. These programs are written in conventional languages such as C, C++, or Fortran. Glish scripts can create local and remote processes and control their communication. Glish also provides a full, array-oriented programming language (similar to S) for manipulating binary data sent between the processes. In general Glish uses a centralized communication model where interprocess communication passes through the Glish interpreter, allowing dynamic modification and rerouting of data values, but Glish also supports point-to-point links between processes when necessary for high performance. reference: "Glish: A User-Level Software Bus for Loosely-Coupled Distributed Systems," Vern Paxson and Chris Saltmarsh, Proceedings of the 1993 Winter USENIX Conference, San Diego, CA, January, 1993. requires: C++ ports: SunOS, Ultrix, HP/UX (rusty) updated: 1993/11/01 language: ici package: ici version: ? parts: interpreter, documentation, examples author: Tim Long location: ftp pub/ici.tar.Z from ftp.su.edu.au ftp pub/oz/ici.tar.Z from nexus.yorku.ca 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 additional types and functions to support common needs such as simple data bases and character based screen handling. features: + direct access to many system calls + structures, safe pointers, floating point + simple, non-indexed built in database + terminal-based windowing library ports: Sun4, 80x86 Xenix, NextStep, MSDOS, HP-UX portability: high status: actively developed. discussion: send "help" to listserv@research.canon.oz.au contact: Andy Newman updated: 1994/04/18 language: Icon package: icon version: 8.8 (8.7, 8.5, 8.0 depending on platform) parts: interpreter, compiler (some platforms), library (v8.8) author: Ralph Griswold location: ftp icon/* from cs.arizona.edu MS-DOS version: ftp norman/iconexe.zip from bellcore.com 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. Some features are reminiscent of SNOBOL, which Griswold had previously designed. - no packages, one name-space - no exceptions + object oriented features + records, sets, lists, strings, tables + unlimited line length - unix interface is primitive + co-expressions reference: "The Icon Programming Language", Ralph E. Griswold and Madge T. Griswold, Prentice Hall, seond edition, 1990. "The Implementation of the Icon Programming Language", Ralph E. Griswold and Madge T. Griswold, Princeton University Press 1986 ports: Amiga, Atari, CMS, Macintosh, Macintosh/MPW, MSDOS, MVS, OS/2, Unix (most variants), VMS, Acorn discussion: comp.lang.icon contact: icon-project@cs.arizona.edu mengarini@delphi.com for MS-DOS version updated: 1992/08/21 language: Icon iref: (BNF) Ibpag2 language: IVY package: Ivy version: experimental parts: interpreter author: Joseph H Allen location: alt.sources 1993/09/28 description: A language with a pleasant syntax compared to perl, tcl or lisp. It has nice features like low punctuation count, blocks indicated by indentation, and similarity to normal procedural languages. This language started out as an idea for an extension language for the editor JOE. updated: 1993/09/28 language: Korn Shell package: SKsh version: 2.1 parts: interpreter, utilities author: Steve Koren location: ftp pub/amiga/incom*/utils/SKsh021.lzh from hubcap.clemson.edu description: SKsh is a Unix ksh-like shell which runs under AmigaDos. it provides a Unix like environment but supports many AmigaDos features such as resident commands, ARexx, etc. Scripts can be written to run under either ksh or SKsh, and many of the useful Unix commands such as xargs, grep, find, etc. are provided. ports: Amiga updated: 1992/12/16 language: Bourne Shell package: Bash (Bourne Again SHell) version: 1.14.4 parts: parser(yacc), interpreter, documentation author: Brian Fox location: ftp bash-1.14.1.tar.gz from a GNU archive site description: Bash is a Posix compatible shell with full Bourne shell syntax, and some C-shell commands built in. The Bourne Again Shell supports emacs-style command-line editing, job control, functions, and on-line help. bugs: gnu.bash.bug, bug-bash@prep.ai.mit.edu restriction: GNU General Public License updated: 1994/07/07 language: Korn Shell package: pdksh version: 5.1.3 parts: interpreter, documentation (complete man page) author: Michael Rendell (maintainer) location: ftp://ftp.cs.mun.ca:pub/pdksh/pdksh.tar.gz description: pdksh is a public domain implementation of ksh88. pdksh was started by Eric Gisin based on Charles Forsyth's version of sh. It has since been maintained by John R MacMillan and Simon J. Gerraty and is currently maintained by Michael Rendell. conformance: Only major feature not implemented (yet) is Korn's @(patter1|pattern2|..) style pattern matching. A few other things are also missing like trap DEBUG (see NOTES file in distribution for details). bugs: should be reported to pdksh@cs.mun.ca. restriction: none ports: Most unix boxes (uses GNU autoconf), OS2. status: active (missing ksh88 features being added, being made POSIX conforming) support: pdksh@cs.mun.ca announcements: posted to comp.unix.shells newsgroup (also, send mail to pdksh-request to be placed on a mailing list for announcements) updated: 1994/12/22 language: LPC package: LPC4 version: 4.05.11 parts: interpreter, bytecode compiler, documentation, sample scripts, sample mudlib author: Fredrik Hubinette location: ftp pub/lpmud/drivers/profezzorn/* from ftp.lysator.liu.se description: A development of Lars Pensj|'s language for MUD, with script-running capability. LPC has a syntax similar to C, but works internally like Perl or some one-cell Lisp. features: mappings, dynamic arrays, binary strings (ie. they can contain zeros) and socket communication functions restriction: May currently not be used for monetary gain. (Imposed by Lars Pensj|) requires: yacc/byacc/bison ports: dynix, hp-ux, Sunos4, Solaris, Linux portability: Should work fine on most Unix. discussion: lpc4-request@lysator.liu.se updated: 1994/06/04 language: lua package: lua version: 2.1 parts: bytecode compiler, grammar(yacc, lex), library, documentation, examples, run-time, interpreter author: TeCGraf, the Computer Graphics Technology Group of PUC-Rio, the Catholic University of Rio de Janeiro, Brazil. contact Luiz Henrique de Figueiredo location: ftp://ftp.icad.puc-rio.br/pub/lua/lua-2.1.tar.gz description: Lua is a language for extending applications. features: simple syntax, variables need no declaration. associative arrays, user-controlled type constructors. variable number of arguments and multiple return values in functions. restriction: Lua is not in the public domain; TeCGraf keeps its copyright. Nevertheless, Lua is freely available for academic purposes. For commercial purposes, please contact TeCGraf. ports: unix (Sun, AIX, dec), DOS, MacOS portability: Lua is written in ANSI C and is completely portable. updated: 1995/02 language: Perl5 (Practical Extraction and Report Language) package: perl version: 5.001 parts: interpreter, debugger, libraries, tests, documentation author: Larry Wall location: many! N.America: ftp://ftp.cis.ufl.edu/pub/perl/src/5.0/perl5.001.tar.gz ftp://prep.ai.mit.edu/pub/gnu/perl5.001.tar.gz ftp://ftp.uu.net/languages/perl/perl5.001.tar.gz ftp://ftp.khoros.unm.edu/pub/perl/perl5.001.tar.gz ftp://ftp.cbi.tamucc.edu/pub/duff/Perl/perl5.001.tar.gz ftp://ftp.metronet.com/perlinfo/source/perl5.001.tar.gz ftp://genetics.upenn.edu/perl5/perl5_001.zip Europe: ftp://ftp.cs.ruu.nl/pub/PERL/perl5.0/perl5.001.tar.gz ftp://ftp.funet.fi/pub/languages/perl/ports/perl5/perl5.001.tar.gz ftp://ftp.zrz.tu-berlin.de/pub/unix/perl/perl5.001.tar.gz ftp://src.doc.ic.ac.uk/packages/perl5/perl5.001.tar.gz http://src.doc.ic.ac.uk/packages/perl5/perl5.001.tar.gz gopher://src.doc.ic.ac.uk/0/packages/perl5/perl5.001.tar.gz Australia: ftp://sungear.mame.mu.oz.au/pub/perl/src/5.0/perl5.001.tar.gz MS-DOS: (beta) send mail to Darryl Okahata description: Perl5 is a major rewrite and enhancement to perl4. It adds real data structures (by way of "references"), un-adorned subroutine calls, and method inheritance. features: + very-high semantic density becuase of powerful operators like regular expression substitution + no arbitrary limits + exceptions + variables can be tied to arbitrary code (like dbm) + direct access to almost all system calls + can access binary data + many powerful idioms for common tasks + 8-bit clean, including nulls + dynamic loading of extensions + constructors, destructors, multiple inheritence, operator overloading - syntax requires variable prefix characters extensions: Also availabe at major archives Tk: ftp://sable.ox.ac.uk/pub/perl/tkperl5a5.tar.gz Curses: ftp://ftp.ncsu.edu/pub/math/wsetzer/cursperl5a6.tar.gz Msql: ftp://ftp.zrz.TU-Berlin.DE/pub/unix/perl/MsqlPerl-a1.tgz Sx (X11): ftp://ftp.pasteur.fr/pub/Perl/Sx/Sx-1.6.tar.gz Database: ftp://ftp.demon.co.uk:/pub/perl/db archives: ftp://ftp.metronet.com/pub/perlinfo ftp://ftp.cs.ruu.nl/pub/PERL ftp://ftp.khoros.unm.edu/pub/perl references: http://www.metronet.com/perlinfo/perl5.html http://www.metronet.com/0/perlinfo/perl5/manual/perl.html http://www.mit.edu:8001/perl/perl.html ftp://ftp.cis.ufl.edu/pub/perl/doc/faq.gz "Programming Perl" by Larry Wall and Randal L. Schwartz, O'Reilly & Associates, Inc. Sebastopol, CA. ISBN 0-93715-64-1 "Learning Perl" by Randal L. Schwartz, O'Reilly & Associates, Inc. Sebastopol, CA. ISBN 1-56592-042-2 bugs: Send bugs to ports: most unix platforms, VMS, MS-DOS portability: very high for unix, not so high for others updated: 1995/03/13 language: Perl5, Tk package: tkperl5 version: alpha 5 parts: library author: Port by: Malcolm Beattie . Tk by: John Ousterhout . location: ftp pub/perl/tkperl5a5.tar.gz from sable.ox.ac.uk ftp src/ALPHA/tkperl5a5.tar.gz from black.ox.ac.uk description: tkperl5 is a port of Tk to `native' Perl5. It takes advantage of perl5's object oriented features and magic variables to implement the Tk widget set in Perl5. Nothing touches the Tcl parser so knowledge of Tcl is not required. tkperl5alpha5 builds against perl 5.000. ports: OSF/1, Ultrix, Next, Solaris, Linux, SunOS, HP-UX updated: 1994/10/20 language: Perl5 package: Sx version: 1.6 parts: library author: Frederic Chauveau location: ftp://ftp.pasteur.fr/pub/Perl/Sx-1.4.tar.gz description: Sx is X11 interface library that uses Xlib and the Athena widget set. updated: 1994/10/25 language: Perl5, Tcl package: Tcl-ext version: alpha 1 parts: interpreter author: Wrapper by: Malcolm Beattie . Tcl by: John Ousterhout . location: ftp pub/perl/Tcl-ext-a1.tar.gz from sable.ox.ac.uk ftp src/ALPHA/Tcl-ext-a1.tar.gz from black.ox.ac.uk description: This is a Tcl extension for perl5. It lets you create Tcl interpreters, evalute scripts and files in them, bind commands into them which can be either C functions (presumably obtained via dynamic loading with dl_open or dl_find_symbol) or perl subroutines, manipulate Tcl variables and tie them to perl variables and so on. updated: 1994/10/23 language: Perl (Practical Extraction and Report Language) package: perl version: 4.0 patchlevel 36 parts: interpreter, debugger, libraries, tests, documentation author: Larry Wall location: ftp pub/perl.4.0/* from jpl-devvax.jpl.nasa.gov OS/2: ftp pub/os2/all/unix/prog*/perl4019.zip from hobbes.nmsu.edu Macintosh: ftp software/mac/src/mpw_c/Mac_Perl_405_* from nic.switch.ch Amiga: ftp perl4.035.V010.* from wuarchive.wustl.edu VMS: ftp software/vms/perl/* from ftp.pitt.edu Atari: ftp amiga/Languages/perl* from atari.archive.umich.edu MSDOS: ftp pub/msdos/perl/* from ftp.ee.umanitoba.ca ftp pub/msdos/perl/bperl* from oak.oakland.edu Windows NT: ftp pub/pc/win3/nt/ntperl*.zip from cica.cica.indiana.edu MVS: ftp dist/perl-4036.tar.Z from oozelum.csi.cam.ac.uk Netware: contact Jack Thomasson description: perl is an interpreted language optimized for scanning arbitrary text files, extracting information from those text files, and printing reports based on that information. It's also a good language for many system management tasks. reference: "Programming Perl" by Larry Wall and Randal L. Schwartz, O'Reilly & Associates, Inc. Sebastopol, CA. ISBN 0-93715-64-1 "Learning Perl" by Randal L. Schwartz, O'Reilly & Associates, Inc. Sebastopol, CA. ISBN 1-56592-042-2 The perl FAQ, ftp from rtfm.mit.edu features: + very-high semantic density becuase of powerful operators like regular expression substitution + exceptions, provide/require + associative array can be bound to dbm files + no arbitrary limits + direct access to almost all system calls + can access binary data + many powerful idioms for common tasks + 8-bit clean, including nulls - three variable types: scalar, array, and hash table - syntax requires variable and function prefix characters bugs: comp.lang.perl; Larry Wall ports: almost all unix, MSDOS, Mac, Amiga, Atari, OS/2, VMS, NT, MVS portability: very high for unix, not so high for others discussion: comp.lang.perl Macintosh: mpw-perl-request@iis.ee.ethz.ch updated: 1993/02/07 language: perl, awk, sed, find package: a2p, s2p, find2perl version: ? parts: translators(perl) author: Larry Wall location: comes with perl description: translators to turn awk, sed, and find programs into perl programs. updated: ? language: Perl package: perl profiler. version: ? 1 parts: profiler author: Anthony Iano-Fletcher location: Source posted on comp.lang.perl in mid-June 1993 description: Profiles Perl scripts (mkpprof). Collates data from Perl scripts (pprof) updated: 1993/06/17 language: Perl package: Dylperl version: ? parts: ? author: Roberto Salama location: posted to comp.lang.perl, 1993/08/11, description: A dynamic linking package for perl. Dynamically-loaded functions are accessed as if they were user-defined funtions. This code is based on Oliver Sharp's May 1993 article in Dr. Dobbs Journal (Dynamic Linking under Berkeley UNIX). ports: ? updated: 1993/08/11 language: Perl package: curseperl version: ? parts: ? author: Larry Wall location: comes with perl description: A curses library for perl updated: ? language: Proxy package: Proxy version: 1.4 parts: interpreter, documentation author: Burt Leavenworth location: ftp pub/scheme-repository/scm/proxy.zip from ftp.cs.indiana.edu description: Proxy is an interpreter dor a rapid prototyping/specification language with C/C++ like syntax based on modelling software using data structures such as sets, maps, sequences, structures and objectss. It allows the developer to make incremental changes to a design and test them immediately. Proxy is written in Scheme, provides a Scheme interface. New in version 1.4 is a non-preemptive CSP-like multi-tasking facility. ports: MS-DOS updated: 1994/09/23 language: Python package: Python version: 1.2 parts: interpeter, libraries, documentation, emacs macros author: Guido van Rossum OS/2 port by: Simon K Johnston location: ftp pub/python* from ftp.cwi.nl N.America: ftp pub/plan/python/cwi from gatekeeper.dec.com N.America: ftp languages/python fromftp.uu.net Europe: ftp pub/unix/languages/python from ftp.fu-berlin.de Finland: ftp pub/languages/python from ftp.funet.fi UK: ftp uunet/languages/python from unix.hensa.ac.uk description: Python is a simple, yet powerful programming language that bridges the gap between C and shell programming, and is thus ideally suited for rapid prototyping. Its syntax is put together from constructs borrowed from a variety of other languages; most prominent are influences from ABC, C, Modula-3 and Icon. Python is object oriented and is suitable for fairly large programs. + packages + exceptions + good C interface + dynamic loading of C modules + methods, inheritance - arbitrary restrictions + supports the native windowing system with most platforms - does not support a common windowing api across platforms reference: Python documentation URL extensions: tkinter (Tcl's Tk), termios, curses, syslog, sybase ports: unix, Macintosh, OS/2, Windows 3.1 (with Win32s), Windows NT discussion: python-list-request@cwi.nl updated: 1994/10/11 language: Python iref: (BNF variant) kwParsing ? language: PILOT package: pilot version: 1.6 parts: compiler(->C), interpreter, library, documentation, examples, tutorial, test suite. author: Eric S. Raymond location: ftp locke.ccil.org:pub/retro/pilot-1.6.shar.gz (in the Museum of Retrocomputing) description: PILOT is a primitive CAI language first designed in 1962 on IBM mainframes. It is rather weak and has very odd lexical rules, but is easy to learn and use. I wrote this implementation strictly as a hack, but it works and does include an interactive tutorial written in PILOT itself which is also a decent test load. This implementation is both an interpreter for the PILOT language and a compiler for it using C as an intermediate language. conformance: Reference implementation of the IEEE Standard for PILOT, 1154-1191 bugs: report to Eric S. Raymond restrictions: If you plan to make money from it, contact the author. portability: Any ANSI C host. announcements: comp.lang.misc,alt.lang.intercal updated: 1994/10/16 language: Python package: vpApp version: 0.2 parts: Class Library, User Reference author: Per Spilling Real Name location: ftp.cwi.nl in /pub/python/vpApp.tar.gz. description: vpApp = visual-programming application. It supports the building of applications in Python. requires: Python interpreter with built-in X support. updated: 1994/05/06 language: Q (also small subsets of Common Lisp and Scheme) package: Q version: ? 1 parts: interpreter, compiler framework, libraries, documentation author: Per Bothner location: ftp pub/Q.* from ftp.cygnus.com description: Q is a very high-level programming language, and a test-bed for programming language ideas. Where APL uses arrays to explicit looping, Q uses generalized sequences (finite or infinite, stored or calculated on demand). It has lexical scoping, and some support for logical and constraint programming. The syntax was designed for convenient interactive use. A macro facility together with primitives to run programs is used to make an interactive command language with full shell features. The Q system is written in C++, and its run-time code may be useful to people implementing other languages. ports: Linux and SUN 4 portability: Should work on 32-bit Unix-like systems updated: 1993/06/07 language: REXX package: The Regina Rexx Interpreter version: 0.05i parts: interpreter, documentation, test programs author: Anders Christensen location: ftp pub/rexx/regina-0.05g.tar.Z from flipper.pvv.unit.no N.America: ftp pub/freerexx/regina/regina-0.05d.tar.Z from rexx.uwaterloo.ca description: A Rexx interpreter. The VMS version has an almost complete set of DCL lexical functions in the interpreter. Ports to MS-DOS and OS/2 exist by lack special support for these platforms. conformance: Almost completely to Rexx Language Level 4.00 with some Rexx SAA API extensions. restriction: GNU General Public License ports: Unix, VMS, MS-DOS (partial), OS/2 (partial) discussion: comp.lang.rexx updated: 1993/10/15 language: REXX package: ? version: 102 parts: interpreter author: ? al ? location: ftp alrexx/rx102.tar.Z from rexx.uwaterloo.ca USA: ftp ? from tony.cat.syr.edu description: ? requires: C++ ports: unix discussion: comp.lang.rexx contact: ? updated: 1992/05/13 language: REXX package: REXX/imc version: 1.6 parts: Interpreter, documentation. author: Ian Collier location: ftp pub/freerexx/imc/rexx-imc-1.6.tar.Z from rexx.uwaterloo.ca description: REXX for Unix. A general-purpose programming language designed by Mike Cowlishaw of IBM UK for readability and ease of use. Also useful as a control language for Unix or for applications which make use of REXX's programming interface (REXX/imc may be compiled as a dynamic C library for applications to include on some systems). REXX is an official scripting language of VM/CMS, OS/2 and AmigaDOS. conformance: REXX language level 4.00 (more or less), with some small extensions. The C programming interface is a subset of the SAA interface exhibited by OS/2 REXX. reference: "The REXX Language" 2nd edition, by M.F. Cowlishaw; Prentice-Hall 1990. ports: SunOS, AIX 3.2 portability: Requires Unix-domain sockets (restriction may be relaxed in the future). Dynamic link function dlopen() is useful but not essential. status: Under slow development. Contact author for help/support. discussion: comp.lang.rexx (general forum for all REXX-related products). announcements: comp.lang.rexx updated: 1994/05/18 language: sed package: GNU sed version: 2.04 parts: interpreter, documentation author: Tom Lord location: ftp sed-* from a GNU archive site description: A SED interpreter. Sed is a stream editing filter language. features: Modulo n line addressing. bugs: bug-gnu-utils@prep.ai.mit.edu updated: 1994/04/30 language: rc (Plan 9 shell) package: rc version: 1.4 parts: interpretor author: Byron Rakitzis location: ftp pub/rc/* from ftp.white.toronto.edu description: a free implementation of the Plan 9 shell. discussion: rc-request@hawkwind.utcs.toronto.edu updated: 1992/05/26 language: S-Lang package: slang version: 0.94 parts: interpreter, documentation, examples author: John E. Davis location: ftp pub/slang/* from amy.tch.harvard.edu description: A small but highly functional embedded interpreter. S-Lang was a stack-based postfix language resembling Forth and BC/DC with limited support for infix notation. Now it has a C-like infix syntax. Arrays, Stings, Integers, Floating Point, and Autoloading are all suported. The editor JED embeds S-lang. restriction: GNU Library General Public License ports: MSDOS, Unix, VMS portability: Must be compiled with large memory model on MSDOS. updated: 1993/06/12 language: Snobol4 package: beta2 version: 0.91 parts: compiler(->C) author: Phil Budne location: ftp snobol4/budne/beta2.tar.Z from cs.arizona.edu description: An implementation of Ralph Griswold's SNOBOL 4, a classic early language design specialized for text and string manipulation that (among other things) influenced UNIX rexexp syntax. See also Icon. This compiler is implemented as macro programs in SIL (SNOBOL Implementation Language); this is a SIL implementation plus macros with C as the target language. features: + supports loading of C library functions on BSD systems contact: snobol4@arizona.edu ports: various UNIX flavors, including 'generic' and 'POSIX' APIs updated: 1986/06/24 language: Snobol4 package: vanilla version: ? parts: compiler, documentation author: Catspaw, Inc. location: ftp snobol4/vanilla.arc from cs.arizona.edu description: An implementation of Ralph Griswold's SNOBOL 4, a classic early language design specialized for text and string manipulation that (among other things) influenced UNIX rexexp syntax. See also Icon. This implementation is closely related to Phil Budne's 'beta2' SNOBOL. ports: MSDOS contact: ? updated: 1994/11/01 language: ssh (Steve's Shell) package: ssh version: 1.7 parts: interpreter author: Steve Baker with help from Thomas Moore location: comp.sources.unix volume 26 description: A unix shell with a lot of csh/ksh-like features. ports: sequent, sun, next, ultrix, bsdi updated: 1993/04/15 language: subscript package: sub (seismic unix basic) version: 0.9 parts: Embedded interpreter, demo application, User's Guide, example inputs for demo. author: Martin L. Smith (martin@ner.com) location: hilbert.mines.colorado.edu (138.67.12.63) in pub/cwpcodes/*sub*.tar description: subscript is a bytecode-compiled scripting language that provides a convenient way of manipulating binary stream data. It is currently distributed embedded in a demo application (sub), which illustrates the processing of seismic data, but the interpreter/compiler core is portable to other applications. features: the interpreted language provides atomic manipulation of vectors of floating-point values. requires: yacc. ports: Unixware 1.x, SunOS 4.x, NextStep, Linux 0.99. status: Undergoing active development, with future inclusion into the Colorado School of Mines' Seismic Unix package. updated: ? language: Tcl (Tool Command Language) package: Tcl version: 7.3 parts: interpreter, libraries, tests, documentation author: John Ousterhout location: ftp.cs.berkeley.edu in ucb/tcl/tcl* MSDOS: harbor.ecn.purdue.edu in /pub/tcl/distrib/mstcl73e.zip Macintosh: bric-a-brac.apple.com in pub/ticl harbor.ecn.purdue.edu in pub/tcl/distrib/MacTcl7.3.sea.* Examples: ftp tcl/* from barkley.berkeley.edu Kanji: ftp pub/lang/tcl/jp/tk3.2jp-patch.Z from srawgw.sra.co.jp OS/2: ftp /os2/unix/tcl2-73c.zip from hobbes.nmsu.edu description: A small text-oriented embedded language similar to LISP with add-on extensions that allow it to also function more as a shell. Tcl also allows algebraic expressions to be written for simplicity and convenience. Its greatest strength lies in its uniform representation of everything as a string. This is also its weakness. + may be used as an embedded interpreter + exceptions, packages (called libraries) - only a single name-space + provide/require - no dynamic loading ability + 8-bit clean - only three variable types: strings, lists, associative arrays bugs: ? requires: DOS port requires Desqview/X. ports: MSDOS, others in progress (see comp.lang.tcl FAQ) discussion: comp.lang.tcl updated: 1993/11/15 language: Tcl, Tk package: Tk version: 3.5 parts: GUI library author: John Ousterhout location: ftp ucb/tcl/tk* from ftp.cs.berkeley.edu description: Tk is a X11 gui library that is designed to interoperate with Tcl. It provides a very easy way to create sophisticated applications. The appearence of Tk is very similar to Motif. updated: 1993/11/15 language: Tcl package: BOS (The Basic Object System) version: 1.31 parts: library author: Sean Levy location: ftp tcl/? from barkley.berkeley.edu description: BOS is a C-callable library that implements the notion of object and which uses Tcl as its interpreter for interpreted methods (you can have "compiled" methods in C, and mix compiled and interpreted methods in the same object, plus lots more stuff). I regularly (a) subclass and (b) mixin existing objects using BOS to extend, among other things, the set of tk widgets (I have all tk widgets wrapped with BOS "classes"). BOS is a class-free object system, also called a prototype-based object system; it is modeled loosely on the Self system from Stanford. updated: 1992/08/21 language: Tcl package: Tcl-DP version: 3.2 parts: library author: Larry Rowe ? location: mm-ftp.cs.berkeley.edu [128.32.149.157] in the /pub/multimedia/Tcl-DP directory. description: Tcl-DP extends the "send" by removing the restriction that you can only send to other clients of the same X11 server. [could someone give a better description? --ed] updated: 1994/06/01 language: Tcl package: Tickle version: 5.0v1 parts: editor, file translator, interpreter author: time@ice.com location: /pub/vendor/ice/tickle/Tickle5.0v1.hqx from ftp.msen.com description: A Macintosh Tcl interprter and library. It includes a text editor (>32k); file translation utilities; support for tclX extensions; some unix-equivelent utilites; access to Macintosh functions (Resource Manager, Communications Toolbox, OSA Components, Editions, and Apple Events); OSA Script Support; and Drag and Drop. bugs: time@ice.com? requires: ? ports: Mac portability: Mac-specific package updated: 1994/01/12 lref: Tcl language: Tcl package: Wafe version: 1.0 parts: interface author: Gustaf Neumann location: ftp pub/src/X11/wafe/wafe-1.0.tar.gz from ftp.wu-wien.ac.at description: Wafe (Widget[Athena]front end) is a package that implements a symbolic interface to the Athena widgets (X11R5) and OSF/Motif. A typical Wafe application consists of two parts: a front-end (Wafe) and an application program which runs typically as a separate process. The distribution contains sample application programs in Perl, GAWK, Prolog, Tcl, C and Ada talking to the same Wafe binary. portability: very high, just needs X11R4 or X11R5. discussion: send "subscribe Wafe " to listserv@wu-wien.ac.at updated: 1994/06/26 language: Tcl package: Extended Tcl (tclx) version: 7.3b parts: library author: Mark Diekhans , Karl Lehenbauer location: ftp pub/tcl/distrib/tclX7.3b.tar.gz from ftp.neosoft.com ftp pub/tcl/extensions/tclX7.3b.tar.gz from harbor.ecn.purdue.edu description: Extended Tcl adds statements to the Tcl language to provide high-level access unix system primitives. contact: tcl-project@NeoSoft.com updated: 1994/07/17 language: Tcl package: tcl-debug version: ? parts: debugger author: Don Libes location: ftp pub/expect/tcl-debug.tar.Z from ftp.cme.nist.gov description: A debugger for Tcl that can be easily embedded in other applications. It is included with many other Tcl libraries. updated: ? language: Tcl package: MTtcl - Multi-threaded Tcl version: 0.8 parts: interpreter, library location: ftp tcl/extensions/MTtcl0.8.tar.gz from ftp.aud.alcatel.com description: The MTtcl package gives Tcl/Tk programmers access to the multi-threading features of Solaris 2. The package comes in two parts; a modified version of Tcl 7.3, and a Tcl threads extension. Modifications were necessary to enable Tcl to work "safely" in the presence of multiple threads. The Tcl interpretter uses a number of static and global variables to execute scripts. If two threads are using the same global, the behavior of the script may be unpredictable. This "safe" Tcl is called MT-Sturdy Tcl. The threads extension brings multi-thread programming into the Tcl environment. Multiple scripts can be interpretted simultaneously with communication and synchronization between scripts. There is special support for using threads in Tk scripts. Documentation for the threads commands are in the form of man pages. requires: Sparc, Solaris 2.3, Sparcworks 3.0 C compiler, Tcl 73, Tk 3.6 ports: Sparc Solaris 2.3 updated: 1994/11/02 language: Tcl package: Cygnus Tcl Tools version: Release-930124 parts: ? author: david d 'zoo' zuhn location: ftp pub/tcltools-* from cygnus.com description: A rebundling of Tcl and Tk into the Cyngus GNU build framework with 'configure'. updated: 1993/01/24 language: Tcl package: tclmidi version: 2.0 parts: ?? interpreter, documentation author: Mike Durian location: comp.sources.misc (v43i109) description: A language based on Tcl for creating/editing MIDI files. With the proper driver interface it can play them too. It supports function calls, recursion and conditionals (e.g. making the chorus of your song a function, using loops for repeats, etc.) Device drivers supplied for BSD, Linus and SVR4. requires: Tcl-7.X portability: Should work on POSIX compliant systems. updated: 1994/07/25 language: Tcl package: narray version: 0.10 author: Sam Shen location: ftp://overload.lbl.gov/pub/narray description: NArray is an extension to help Tcl cope with large in-memory numeric arrays. NArray's require only a few more bytes than the storage required by the array. In addition to providing array referencing and setting, narray allows functions to be mapped over each element of the array. These functions are compiled into byte code for performance about 100x faster than straight tcl and only 5-10x slower than C. (These numbers are ball-park figures, actual results depend on the situation.) If you have netCDF, then narray's can be saved to and loaded from netCDF files. updated: 1994/09/24 language: Tcl, Tk package: tknt version: 3.6 release 4 parts: interpeter, libraries, documentation author: port by Gordon Chaffee and Lawrence A. Rowe based on work by Ken Kubota of the University of Kentucky and Software Research Associates, Inc. of Japan. location: ftp pub/multimedia/winnt/tknt36r4/* from ftp.cs.berkeley.edu Europe: ftp pub/tcl/winnt/* from ftp.ibp.fr description: A port of Tcl/Tk and Tcl-DP to Windows NT. It has run under Windows NT 3.1, Windows NT 3.5 Beta 1, and Chicago Beta 1. Small parts of this distribution were taken from the tkwin package by Ken Kubota of the Mathematical Sciences Computing Facility at the University of Kentucky. bugs: tknt@plateau.CS.Berkeley.EDU updated: 1994/09/22 language: Tcl package: Object Tcl version: 1.0beta parts: Tcl extension package including language reference, C++ binding reference. author: Dean Sheehan location: http://www.ixi.com/devt/ObjectTcl (source & doc) UK: http://www.x.co.uk/devt/ObjectTcl (source & doc) ftp://ftp.aud.alcatel.com (source only) description: Object Tcl is a standard Tcl extension package that supports object oriented programming within Tcl with a tight object oriented coupling to C++. bugs: otcl@x.co.uk requires: Tcl 7.? contact: otcl@x.co.uk updated: 1995/03 language: Marpa package: Marpa is TCL 7.3 extended with an enhanced Earley's Algorithm version: Alpha 2.8 parts: parser-generator, examples, document author: Jeffrey Kegler location: ftp /pub/jeffrey/marpa/v2.8/marpa.2.8.tar.gz from ftp.best.com description: Marpa is a TCL 7.3 extended with an ambiguous context-free parser which uses Earley's algorithm. It is hacker friendly, with a variety of handy features. It is intended for use in implementing parsers that use the same crude but effective approaches to parsing that humans use, whether these humans be reading natural language or computer code. TCL code is attached to every production, explicitly or by default, and this is used to evaluate the result of the parse. Speed is reasonable if not blinding, and Marpa is in use in some applications. Marpa is the outcome of the Milarepa prototype which implemented a different general parsing algorithm in Perl. restriction: GNU Public License Version 2 requires: TCL 7.3, GNU C compiler, GNU Make updated: 1995/04/19 language: Expect package: Expect version: 5.12 parts: interpreter, library, debugger, examples, documentation author: Don Libes location: ftp pub/expect/expect.tar.gz from ftp.cme.host.gov description: Used to automate, test, or GUI-ize interactive programs without any changes to underlying programs. Standalone version is driven with Tcl. A library is provided for use with C, C++, or any language that can call C functions. reference: "Exploring Expect", ISBN 1-56592-090-2, publisher: O'Reilly. Man pages included with software distribution. Numerous technical papers in conferences and journals, some of which are available via anonymous ftp from ftp.cme.nist.gov:pub/expect/*.ps.Z bugs: expect@nist.gov restriction: Expect itself is public-domain. Certain pieces such as Tcl are copyrighted but have unlimited availability. Nothing is GNU copylefted. requires: UNIX or something like it ports: ported to all UNIX systems and some non-UNIX systems portability: uses autoconf for automatic configuration status: stable, but certain extensions are being actively developed discussion: comp.lang.tcl help: author or comp.lang.tcl (or see next support field) support: official: Cygnus Support, unofficial: author, comp.lang.tcl, contributions: Awards or thank-you letters gratefully accepted. announcements: comp.lang.tcl contact: author updated: 1994/11/25 language: Z-shell package: zsh version: 2.5.0 parts: interpreter author: Paul Falstad location: ftp pub/bas/zsh/zsh-*.tar.z from carlo.phys.uva.nl comp.sources.misc (v43i089) description: zsh is most similar to ksh, while many of the additions are to please csh users. features: + multi-line commands editable as a single buffer, + variable editing (vared), + command buffer stack, + recursive globbing, + manipulation of arrays, + spelling correction. ports: Berkeley-based Unix, SVR4-based Unix discussion: zsh-request@cs.uow.edu.au contact: zsh-list@cs.uow.edu.au updated: 1994/07/13 functional languages ------------------------------------------------------------------------------- category: functional languages description: [someone have a good one-liner? --ed] lref: es lref: LIFE lref: ALLOY language: Caml package: CAML version: 3.1 parts: compiler, interactive development environment author: Ascander Suarez, Pierre Weis, Michel Mauny, others (INRIA) location: ftp lang/caml/* from ftp.inria.fr description: Caml is a programming language from the ML/Standard ML family, with functions as first-class values, static type inference with polymorphic types, user-defined variant and product types, and pattern-matching. The CAML V3.1 implementation adds lazy and mutable data structures, a "grammar" mechanism for interfacing with the Yacc parser generator, pretty-printing tools, high-performance arbitrary-precision arithmetic, and a complete library. bugs: caml@margaux.inria.fr ports: Sun-3 Sun-4 Sony-68k Sony-R3000 Decstation Mac-A/UX Apollo portability: low (built on a proprietary runtime system) status: maintained but no longer developed discussion: caml-list@margaux.inria.fr, comp.lang.ml contact: Pierre Weis updated: 1991/10/20 language: Caml package: Caml Light version: 0.6 parts: bytecode compiler, emacs mode, libraries, scanner generator, parser generator, runtime, interactive development environment author: Xavier Leroy, Damien Doligez (INRIA) location: ftp lang/caml-light/* from ftp.inria.fr description: Caml is a programming language from the ML/Standard ML family, with functions as first-class values, static type inference with polymorphic types, user-defined variant and product types, and pattern-matching. The Caml Light implementation adds a Modula-2-like module system, separate compilation, lazy streams for parsing and printing, graphics primitives, and an interface with C. features: very small bugs: caml-light@margaux.inria.fr ports: most unix, Macintosh, MSDOS (16 and 32 bit modes), Windows, Atari ST portability: very high status: actively developed discussion: caml-list@margaux.inria.fr, comp.lang.ml contact: Xavier Leroy updated: 1993/10/06 language: CAML, Bigloo package: Camloo version: 0.2 parts: ? author: ? Manuel.Serrano@inria.fr, Pierre.Weis@inria.fr location: ftp from ftp.inria.fr [192.93.2.54], in Camloo0.2 description: An implementation of CAML in Bigloo. It can be considered as an alternative to the regular camlc compiler. In particular, it has successfully compiled many complex Caml Light programs, including camlc and the Coq system (the ``calculus of constructions'', a proof assistant). conformance: Full compliance with Caml Light 0.6 and Caml Light Libraries (including camlyacc and camllex). requires: Bigloo1.6c (available from same address). contact: Manuel.Serrano@inria.fr, Pierre.Weis@inria.fr. updated: 1994/06/13 language: Concurrent Clean package: The Concurrent Clean System version: 0.8.1 parts: development environment, documentation, compiler(byte-code), compiler(native), interpreter(byte-code), examples author: Research Institute for Declarative Systems, University of Nijmegen location: ftp pub/Clean/* from ftp.cs.kun.nl description: The Concurrent Clean system is a programming environment for the functional language Concurrent Clean, developed at the University of Nijmegen, The Netherlands. The system is one of the fastest implementations of functional languages available at the moment. Its I/O libraries make it possible to do modern, yet purely functional I/O (including windows, menus, dialogs etc.) in Concurrent Clean. With the Concurrent Clean system it is possible to develop real-life applications in a purely functional language. + lazy and purely functional + strongly typed - based on Milner/Mycroft scheme + module structure + modern I/O + programmer-infulenced evaluation order by annotations ports: Sun-3, Sun-4, Macintosh contact: clean@cs.kun.nl updated: 1992/11/07 language: FP package: ? funcproglang ? version: ? parts: translator(C) author: ? location: comp.sources.unix archive volume 13 description: ? Backus Functional Programming ? updated: ? language: Gofer (Haskell derivative) package: Gofer version: 2.30 parts: interpreter, compiler(->C), documentation, examples author: Mark Jones location: ftp pub/haskell/gofer/* from nebula.cs.yale.edu UK: ftp pub/haskell/gofer/* from ftp.dcs.glasgow.ac.uk Sweden: ftp pub/haskell/gofer/* from ftp.cs.chalmers.se description: Gofer is based quite closely on the Haskell programming language, version 1.2. It supports lazy evaluation, higher order functions, pattern matching, polymorphism, overloading etc and runs on a wide range of machines. conformance: Gofer does not implement all of Haskell, although it is very close. ports: many, including Sun, PC, Mac, Atari, Amiga status: maintained but not developed (for a while anyway) updated: 1994/06/10 language: Gofer iref: (BNF ?) Ratatosk language: Haskell package: Chalmers Haskell (aka Haskell B.) version: 0.999.5 parts: compiler, interpreter, library, documentation, examples author: Lennart Augustsson location: ftp pub/haskell/chalmers/* from nebula.cs.yale.edu UK: ftp pub/haskell/chalmers/* from ftp.dcs.glasgow.ac.uk Sweden: ftp pub/haskell/chalmers/* from ftp.cs.chalmers.se description: Full-featured implementation of Haskell 1.2, with quite a few "Haskell B" extensions requires: LML ports: many, including Sun, DEC, Sequent, PC, Symmetry (unsupported versions for NS32000, RT/PC, CRAY, SUN3, VAX, ARM, and RS6000.) discussion: haskell-request@cs.yale.edu Europe: haskell-request@dcs.glasgow.ac.uk contact: hbc@cs.chalmers.se updated: 1993/08/02 language: Haskell package: Glasgow Haskell Compiler (GHC) version: 0.23 parts: translator (C, SPARC), profiler author: AQUA project, headed by Simon Peyton Jones location: ftp pub/haskell/glasgow/* from nebula.cs.yale.edu UK: ftp pub/haskell/glasgow/* from ftp.dcs.glasgow.ac.uk Sweden: ftp pub/haskell/glasgow/* from ftp.cs.chalmers.se description: A near complete subset of Haskell 1.2, with numerous extensions. conformance: Almost all of Haskell 1.2 is implemented. reference: Papers at ftp.dcs.glasgow.ac.uk (only) in pub/glasgow-fp, "Imperative functional programming", Peyton Jones & Wadler, POPL '93 "Unboxed data types as first-class citizens", Peyton Jones & Launchbury, FPCA '91 "Profiling lazy functional languages", Sansom & Peyton Jones, Glasgow workshop '92 "Implementing lazy functional languages on stock hardware", Peyton Jones, Journal of Functional Programming, Apr 1992 features: + An extensible I/O system is provided, based on a "monad" + In-line C code + Fully fledged unboxed data types, + Incrementally-updatable arrays + Mutable reference types. + Generational garbage collector bugs: requires: GNU C 2.1+, perl ports: solid: Sun4, Sun3; sort of: HP-PA, Alpha, DECstation portability: should be high contact: updated: 1994/07/27 language: Haskell package: Yale Haskell version: 2.1 parts: compiler, documentation, reference manual (dvi format) author: Yale Haskell project location: ftp pub/haskell/yale/* from nebula.cs.yale.edu UK: ftp pub/haskell/yale/* from ftp.dcs.glasgow.ac.uk Sweden: ftp pub/haskell/yale/* from ftp.cs.chalmers.se description: ? features: X-window interface, available at the Haskell level too. requires: CMU Common Lisp, Lucid, Common Lisp, Allegro Common Lisp, or Harlequin LispWorks ports: SunOS 4.1.2, Sparc 10 (sun4m) 4.1.3 discussion: haskell-request@cs.yale.edu Europe: haskell-request@dcs.glasgow.ac.uk contact: haskell-request@cs.yale.edu updated: 1994/07/29 language: Hope package: ? version: ? parts: ? author: ? location: ftp pub/papers/R.Paterson/hope.tar.gz from santos.doc.ic.ac.uk description: It's a fairly old functional language, its predecessor NPL having grown out of Burstall and Darlington's work on program transformation in the late 70s. Its key innovation, algebraic data types and pattern matching, has since become a fixture in all modern functional programming languages. When it was created (around 1980) it had adopted the key innovation of the language ML (also developed at Edinburgh), namely polymorphic types, which are also now a standard feature in FPLs. In my [rap's --ed] opinion, Hope's advantage over most other FPLs is its small size and simplicity. I think that makes it the ideal vehicle for learning functional programming. I also find it handy for prototyping various ideas, and sometimes I fiddle with the interpreter to add experimental features. references: http://santos.doc.ic.ac.uk/~rap/Hope/ ports: Unix, Mac, PC contact: Ross Paterson updated: 1992/11/27 language: IFP (Illinois Functional Programming) package: ifp version: 0.5 parts: interpreter author: Arch D. Robison location: comp.sources.unix archive volume 10 description: A variant of Backus' "Functional Programming" language with a syntax reminiscent of Modula-2. The interpreter is written in portable C. reference: Arch D. Robison, "Illinois Functional Programming: A Tutorial," BYTE, (February 1987), pp. 115--125. Arch D. Robison, "The Illinois Functional Programming Interpreter," Proceedings of 1987 SIGPLAN Conference on Interpreters and Interpretive Techniques, (June 1987), pp. 64-73 ports: Unix, MS-DOS, CTSS (Cray) updated: ? language: ML package: LML version: ? parts: compiler(?), interactive environment author: ? location: ftp pup/haskell/chalmers/* from animal.cs.chalmers.se description: lazy, completely functional variant of ML. ports: ? contact: ? updated: 1992/07/06 language: Standard ML package: SML/NJ (Standard ML of New Jersey) version: 0.93 parts: compiler, libraries, extensions, interfaces, documentation, build facility author: D. B. MacQueen , Lal George , AJ. H. Reppy , A. W. Appel location: ftp dist/ml/* from research.att.com description: Standard ML is a modern, polymorphically typed, (impure) functional language with a module system that supports flexible yet secure large-scale programming. Standard ML of New Jersey is an optimizing native-code compiler for Standard ML that is written in Standard ML. It runs on a wide range of architectures. The distribution also contains: + an extensive library - The Standard ML of New Jersey Library, including detailed documentation. + CML - Concurrent ML + eXene - an elegant interface to X11 (based on CML) + SourceGroup - a separate compilation and "make" facility CML, eXene and SourceGroup not in the Macintosh port, but the Mac port has a built-in editor. ports: M68K, SPARC, MIPS, HPPA, RS/6000, I386/486, Macintosh, OS/2 updated: 1993/02/18 language: Concurrent ML package: Concurrent ML version: 0.9.8 parts: extension author: ? location: ftp pub/CML* from ftp.cs.cornell.edu or get SML/NJ description: Concurrent ML is a concurrent extension of SML/NJ, supporting dynamic thread creation, synchronous message passing on synchronous channels, and first-class synchronous operations. First-class synchronous operations allow users to tailor their synchronization abstractions for their application. CML also supports both stream I/O and low-level I/O in an integrated fashion. bugs: sml-bugs@research.att.com requires: SML/NJ 0.75 (or later) updated: 1993/02/18 language: PFL (Persistant Functional Language) package: pfl version: 0.1 parts: ?, documentation, libraries author: Carol Small location: ftp pub/linux/? from ftp.demon.co.uk description: PFL is a computationally complete database environment restriction: GNU General Public License requires: GNU C++ contact: Tim Holmes updated: 1994/06/01 language: SASL iref: (SASL) Tim Budd's C++ implementation of Kamin's interpreters language: Standard ML package: sml2c version: ? parts: compiler(->C), documentation, tests author: School of Computer Science, Carnegie Mellon University location: ftp /usr/nemo/sml2c/sml2c.tar.Z from dravido.soar.cs.cmu.edu Linux: ftp pub/linux/smlnj-0.82-linux.tar.Z from ftp.dcs.glasgow.ac.uk description: sml2c is a Standard ML to C compiler. sml2c is a batch compiler and compiles only module-level declarations, i.e. signatures, structures and functors. It provides the same pervasive environment for the compilation of these programs as SML/NJ. As a result, module-level programs that run on SML/NJ can be compiled by sml2c without any changes. Based on SML/NJ version 0.67 and shares front end and most of its runtime system, but does not support SML/NJ style debugging and profiling. conformance: superset + first-class continuations, + asynchronous signal handling + separate compilation + freeze and restart programs ports: IBM-RT Decstation3100 Omron-Luna-88k Sun-3 Sun-4 386(Mach) portability: easy, easier than SML/NJ contact: david.tarditi@cs.cmu.edu anurag.acharya@cs.cmu.edu peter.lee@cs.cmu.edu updated: 1991/06/27 language: Standard ML package: The ML Kit version: 1 parts: interprter, documentation author: Nick Rothwell, David N. Turner, Mads Tofte , and Lars Birkedal at Edinburgh and Copenhagen Universities. location: ftp diku/users/birkedal/* from ftp.diku.dk UK: ftp export/ml/mlkit/* from lfcs.ed.ac.uk description: The ML Kit is a straight translation of the Definition of Standard ML into a collection of Standard ML modules. For example, every inference rule in the Definition is translated into a small piece of Standard ML code which implements it. The translation has been done with as little originality as possible - even variable conventions from the Definition are carried straight over to the Kit. The Kit is intended as a tool box for those people in the programming language community who may want a self-contained parser or type checker for full Standard ML but do not want to understand the clever bits of a high-performance compiler. We have tried to write simple code and modular interfaces. updated: 1993/03/12 language: Standard ML package: Moscow SML version: 1.10 parts: bytecode compiler, runtime, libraries, documentation author: Sergei Romanenko location: ftp pub/Peter.Sestoft/mosml/*mos* from dina.kvl.dk description: Moscow SML provides a light-weight implementation of the Standard ML Core language, a strict functional language widely used in teaching and research. Moscow SML is particularly suitable for teaching and experimentation, where fast compilation and modest storage consumption are more important than fast program execution. Thanks to the efficient run-time system of Caml Light, Moscow SML compiles fast and uses little memory. Typically it uses 5-10 times less memory than SML/NJ and 2-3 times less than Edinburgh ML. Yet the bytecode is only 3 to 12 times slower than SML/NJ 0.93 compiled native code (fast on PCs, slower on RISCs). Moscow SML implements arithmetic exceptions, and thus deals with the entire Core language. requires: Caml Light 0.61 ports: anything Caml Light supports updated: 1994/09/30 language: SISAL 1.2 package: The Optimizing SISAL Compiler version: 12.9+ parts: compiler, manuals, documentation, examples, debugger, user support author: Thomas M. DeBoni location: ftp pub/sisal from sisal.llnl.gov description: Sisal is a functional language aimed at parallel numerical and scientific programming. It provides Fortran-like performance (or better), automatic parallelism, and excellent portability. It is an easy language to learn and use; Sisal programs tend to be easier to read and understand than those in other functional or parallel languages. The Optimizing Sisal Compiler, OSC, allows efficient use of machine resources during serial or parallel execution, and guarantees determinate results under any execution environment. ports: Unix, Cray-2 Y-MP & C-90 and Convex Sequent and SGI, Sun/Sparc, Vax, HP, PC, Mac portability: Can run on many Unix machines, shared-memory machines, workstations or personal computers. updated: 1994/07/15 language: OPAL package: ocs version: 2.1d parts: compiler(->C), interpreter, translator, library, documentation, examples, tutorial, run-time. author: The OPAL Group at Technical Univ. of Berlin. location: ftp /pub/local/uebb/ocs/* from ftp.tu-berlin.de Europe: ftp pub/unix/languages/opal/* from ftp.fu-berlin.de U.S. : ftp opal/* from ftp.isi.edu description: The language OPAL has been designed as a testbed for the development of functional programs. Opal molds concepts from Algebraic Specification and Functional Programming, which shall favor the (formal) development of (large) production-quality software that is written in a purely functional style. The core of OPAL is a strongly typed, higher-order, strict applicative language which belongs to the tradition of HOPE and ML. The algebraic flavour of OPAL shows up in the syntactical appearance and the preference of parameterization to polymorphism. reference: ftp.tu-berlin.de:pub/local/uebb/papers/DesignImplOpal.ps.gz features: In the latest "pseudoknot" benchmark, its performance falls in the top group of the functional languages tested. Orders of magnitude faster than the interpreted fps. bugs: Report bugs to opal-bugs@cs.tu-berlin.de restriction: Constructors cannot have more then 24 components. requires: gcc 2.x + gnu make 3.64 or better. ports: Most unix( SPARCs, DECstations, NeXTs, PC-Linux, HP7xx). portability: Very portable,one just needs to find out which compiler switches are needed. status: active, supported. discussion: opal-discussion@cs.tu-berlin.de help: opal@cs.tu-berlin.de support: opal@cs.tu-berlin.de opal-bugs@cs.tu-berlin.de announcements: opal-announce@cs.tu-berlin.de contact: opal@cs.tu-berlin.de updated: 1994/10/28 -- Send compilers articles to compilers@iecc.com, meta-mail to compilers-request@iecc.com.