Category : Tutorials + Patches
Archive   : FREECOMP.ZIP

Output of file : COMPILER.TXT contained in archive : FREECOMP.ZIP
From: [email protected] (Steve Robenalt)
Subject: Catalog of compilers, interpreters, and other language tools
Followup-To: comp.lang.misc

Archive-name: free-compilers
Last-modified: 1993/12/30
Version: 6.2

Catalog of Free Compilers and Interpreters.

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
pub/compilers-list/free-compilers from

This catalog is available through World Wide Web. A searchable
hypertext version can be accessed through

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].

Please send updates to . If you
fill out the template (see the first entry in the tools section) it is
a lot easier for me to keep things going.


-Steve Robenalt
(Now maintaining the list)

overview (table of contents)

overview (table of contents)
changes and history
prototype entry
scripting languages
functional languages
C and variants
compiled, imperitive languages
object oriented languages
LISP family langauges
Wirth family languages
logic programming languages
concurrent, parellel, and simulation languages
Forth family languages
compiler generators and related tools
mathematical tools and languages
electrical engineering languages
document formatting languages
macro preprocessors
special purpose languages
natural languages
unable to classify due to lack of knowledge

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 archivits 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 it dropped off the
net. Steve Robenalt has taken over the list
maintenance from David, staring with this (January '94) edition, but Dave's
organization, Idiom Consulting, remains as the focal point for information
to be submitted.

For this version the changes are:

Minimal changes are included in this post. I'm getting up to speed on the
logistics of maintaining the list. but a system shutdown locked up most of
my info/edits for the holidays. Expect more next month as I will be able to
access all of the previous edits. I also plan to start filling in some of
the blanks in the list as time permits.

language package
-------- -------
new listings:
Issabelle Issabelle-93
libm fdlibm (freely distributable math library)
Web CWeb 3.1 (C++ support, partial listing)
Web CWeb 3.x (ANSI C version)
new versions:
haskell glasgow haskell
COCOL COCO/R (New Modula-2 version)
Attribute grammar Ox (Updated entry from author)
new cross-references:
Python Python
new references:
new archives:

prototype entry
Every entry should at least have the fields marked with two asterixes (**).

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.
how to get: **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". No IP address is given.
N.America: Sites for North Americans.
Europe: Sites Europeans should use
Japan: Sites for people in Japan
OS/2: Sites with OS/2 ports.
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.
features: salient features not listed in the description.
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)
updated: **last known update to the package, not time of the update
to the entry in the catalog!

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 implamentation


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
using #!.

language: ABC
package: ABC
version: 1.04.01
parts: interpreter/compiler
author: Leo Geurts, Lambert Meertens,
Steven Pemberton
how to get: ftp programming/languages/abc/* from or
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: [email protected]
contact: [email protected]
updated: 1991/05/02

language: awk (new)
package: mawk
version: 1.1.3
parts: interpreter
author: Mike Brennan
how to get: ftp public/mawk* from
description: ?
conformance: superset
+ RS can be a regular expression
features: + 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.3
parts: interpreter, documentation
author: David Trueman and
Arnold Robbins
how to get: ftp gawk-2.15.tar.Z from a GNU archive site
description: ?
conformance: superset including some Plan 9 features
ports: unix, msdos:msc5.1
status: activly developed
updated: 1993/11/08

language: BASIC
package: bwBASIC (Bywater BASIC interpreter)
version: 2.10
parts: interpreter, shell, ?
author: Ted A. Campbell
how to get: 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: ?
how to get: comp.sources.unix archives volume 2
description: ?
updated: ?

language: BASIC
package: ? bournebasic ?
version: ?
parts: interpreter
author: ?
how to get: comp.sources.misc archives volume 1
description: ?
updated: ?

language: BASIC
package: ubasic
version: 8
parts: ?
author: Yuji Kida
how to get: ? ask archie ?
description: ?
reference: reviewed in Notices of the A.M.S #36 (May/June 1989),
and "A math-oriented high-precision BASIC", #38 (3/91)
contact: ?
updated: 1992/07/06

language: BASIC
package: ?
version: ?
parts: interpreter
author: ?
how to get: ftp pub/unix-c/languages/basic/basic.tar-z from
description: public domain version of DEC's MU-Basic with Microsoft
Basic mixed together
contact: ?
updated: ?

language: Bourne Shell
package: ash
version: ?
parts: interpreter, manual page
author: Kenneth Almquist
how to get: ftp from any 386BSD, NetBSD, or FreeBSD archive
linux: ftp pub/linux/ports/ash-linux-0.1.tar.gz from
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.04
parts: interpreter
author: Christos Zoulas
how to get: ftp ? from
description: a modified C-Shell with history editing
ports: unix, OpenVMS
updated: 1993/07/09

language: ERGO-Shell (a window-based Unix shell)
package: ERGO-Shell
version: 2.1
parts: interpreter
author: Regine Freitag
how to get: ftp gmd/ergo/? from
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
how to get: ftp pub/es/es-0.84.tar.Z from
description: shell with higher order functions
+ builtin features implemented as redefineable functions
updated: 1993/04/30

language: Glish
package: glish
version: 2.4.1
parts: interpreter, C++ class library, user manual
author: Vern Paxson
how to get: ftp glish/glish-2.4.1.tar.Z from
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
how to get: ftp pub/ici.cpio.Z from
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
portability: high
status: actively developed.
discussion: send "help" to [email protected]
contact: Andy Newman
updated: 1992/11/10

language: Icon
package: icon
version: 8.7 (8.5, 8.0 depending on platform)
parts: interpreter, compiler (some platforms), library (v8.8)
author: Ralph Griswold
how to get: ftp icon/* from
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
- no packages, one name-space
- no exceptions
+ object oiented features
+ records, sets, lists, strings, tables
+ unlimited line length
- unix interface is primitive
+ co-expressions
reference: "The Icon Programmming Language", Ralph E. Griswold and
Madge T. Griswold, Prentice Hall, seond edition, 1990.
"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, MSDOS, MVS, OS/2,
Unix (most variants), VMS, Acorn
discussion: comp.lang.icon
contact: [email protected]
updated: 1992/08/21

language: Icon
iref: (BNF) ibpag2

language: IVY
package: Ivy
version: experimental
parts: interpreter
author: Joseph H Allen
how to get: 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
how to get: ftp pub/amiga/incom*/utils/SKsh021.lzh from
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: Korn Shell
package: Bash (Bourne Again SHell)
version: 1.13.4
parts: parser(yacc), interpreter, documentation
author: Brian Fox
how to get: ftp bash-1.12.tar.Z from a GNU archive site
description: Bash is a Posix compatable 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, [email protected]
restriction: GNU General Public License
updated: 1993/11/15

language: Korn Shell
package: pdksh
version: 4.9
parts: interpreter
author: Simon J. Gerraty
how to get: comp.sources.misc volume 4
description: It is not intended to be the ultimate shell but rather a usable
ksh work alike.
conformance: Almost identical to ksh88, but missing arrays
contact: Simon J Gerraty ( is down)
ports: Sun, 386bsd, ?
updated: 1993/10/11

language: Perl5 (Practical Extraction and Report Language)
package: perl
version: 5.0 alpha 3
parts: interpreter, debugger, libraries, tests, documentation
author: Larry Wall
how to get: ftp pub/perl5.0/* from
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. It is not
stable (yet).
ports: SunOS
updated: 1993/11

language: Perl (Practical Extraction and Report Language)
package: perl
version: 4.0 patchlevel 36
parts: interpreter, debugger, libraries, tests, documentation
author: Larry Wall
how to get: ftp pub/perl.4.0/* from
OS/2 port: ftp pub/os2/all/unix/prog*/ from
Mac port: ftp software/mac/src/mpw_c/Mac_Perl_405_* from
Amiga port: ftp perl4.035.V010.* from
VMS port: ftp software/vms/perl/* from
Atari port: ftp amiga/Languages/perl* from
DOS port: ftp pub/msdos/perl/* from
DOS port#2: ftp pub/msdos/perl/bperl* from
Windows NT: ftp ? from
MVS: ftp dist/perl-4036.tar.Z from
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 [??? --ed]
The perl FAQ, ftp from
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: [email protected]
updated: 1993/02/07

language: perl, awk, sed, find
package: a2p, s2p, find2perl
version: ?
parts: translators(perl)
author: Larry Wall
how to get: comes with perl
description: translators to turn awk, sed, and find programs into perl programs.
updated: ?

language: perl, yacc
package: perl-byacc
version: 1.8.2
parts: parser-generator(perl)
author: Rick Ohnemus
how to get: ftp local/perl-byacc.tar.Z from
description: A modified version of byacc that generates perl code. Has '-p'
switch so multiple parsers can be used in one program (C or
portability: Should work on most (?) Unix systems. Also works with
SAS/C 6.x on AMIGAs.
updated: 1993/01/24

language: Perl
package: perl profiler.
version: ? 1
parts: profiler
author: Anthony Iano-Fletcher
how to get: 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: ?
author: Roberto Salama
how to get: 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: ?
author: Larry Wall
how to get: comes with perl
description: A curses library for perl
updated: ?

language: Python
package: Python
version: 0.9.9
parts: interpeter, libraries, documentation, emacs macros
author: Guido van Rossum
how to get: ftp pub/python* from
N.America: ftp pub/? from
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
- arbitrary restrictions
ports: unix and Macintosh
discussion: [email protected]
updated: 1993/07/31

language: Q (also small subsets of Common Lisp and Scheme)
package: Q
version: ? 1
parts: interpreter, compiler framework, libraries, documentation
author: Per Bothner
how to get: ftp pub/Q.* from
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
how to get: ftp pub/rexx/regina-0.05g.tar.Z from
N.America: ftp pub/freerexx/regina/regina-0.05d.tar.Z
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
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 ?
how to get: ftp alrexx/rx102.tar.Z from
USA: ftp ? from
description: ?
requires: C++
ports: unix
discussion: comp.lang.rexx
contact: ?
updated: 1992/05/13

language: REXX
package: imc
version: 1.3
parts: interpreter
author: ?
how to get: ftp pub/freerexx/imc/rexx-imc-1.3.tar.Z from
description: ?
ports: SunOS
updated: ?

language: sed
package: GNU sed
version: 2.03
parts: interpreter, ?
author: Tom Lord
how to get: ftp sed-* from a GNU archive site
description: A SED interpreter. Sed is a stream editing filter language.
bugs: [email protected]
updated: 1993/08/09

language: rc (Plan 9 shell)
package: rc
version: 1.4
parts: interpretor
author: Byron Rakitzis
how to get: ftp pub/rc/* from
description: a free implementation of the Plan 9 shell.
discussion: [email protected]
updated: 1992/05/26

language: S-Lang
package: slang
version: 0.94
parts: interpreter, documentation, examples
author: John E. Davis
how to get: ftp pub/slang/* from
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.
restrictions: 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: SIL (Macro Implementation of SNOBOL4)
version: 3.11
parts: ?
author: ?
how to get: ftp snobol4/* from
description: ?
contact: [email protected]
updated: 1986/07/29

language: Snobol4
package: vanilla
version: ?
parts: ?
author: Catspaw, Inc.
how to get: ftp snobol4/vanilla.arc from
description: ?
ports: MSDOS
contact: ?
updated: 1992/02/05

language: ssh (Steve's Shell)
package: ssh
version: 1.7
parts: interpreter
author: Steve Baker with help from Thomas Moore
how to get: 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: TCL (Tool Command Language)
package: Tcl
version: 7.2
parts: interpreter, libraries, tests, documentation
author: John Ousterhout
how to get: ftp ucb/tcl/tcl* from
MSDOS: ftp ? from
Macintosh: ftp pub/ticl from
Macintosh: ftp pub/tcl/distrib/MacTcl7.0.sea.* from
Examples: ftp tcl/* from
Kanji: ftp pub/lang/tcl/jp/tk3.2jp-patch.Z from
description: TCL started out as a small language that could be
embedded in applications. It has now been extended
into more of a general purpose shell type programming
language. TCL is like a text-oriented Lisp, but lets
you write algebraic expressions for simplicity and to
avoid scaring people away.
+ 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: ?
ports: ?
discussion: comp.lang.tcl
updated: 1993/11/15

language: TCL, Tk
package: Tk
version: 3.5
parts: Tcl interpreter, Tk?
author: John Ousterhout
how to get: ftp ucb/tcl/tk* from
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
how to get: ftp tcl/? from
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
updated: 1992/08/21

language: TCL
package: Tcl-DP
version: 3.0
parts: library
author: Larry Rowe ?
how to get: ftp pub/multimedia/Tcl-DP from
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: ?

language: TCL
package: Wafe
version: 0.95
parts: interface
author: Gustaf Neumann
how to get: ftp pub/src/X11/wafe/wafe-0.95.tar.gz from
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.
discussion: send "subscribe Wafe " to [email protected]
portability: very high, just needs X11R4 or X11R5.
updated: 1993/07/01

language: TCL
package: Extended Tcl (tclx)
version: 7.2a
parts: library
author: Mark Diekhans , Karl ?
how to get: ftp pub/tcl/beta/tclX7.1a-B5.tar.Z from
description: Extended Tcl adds statements to the TCL language to provide
high-level access unix system primitives.
contact: [email protected]
updated: 1993/11/19

language: TCL
package: tcl-debug
version: ?
parts: debugger
author: Don Libes
how to get: ftp pub/expect/tcl-debug.tar.Z from
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: Cygnus Tcl Tools
version: Release-930124
parts: ?
author: david d 'zoo' zuhn
how to get: ftp pub/tcltools-* from
description: A rebundling of Tcl and Tk into the Cyngus GNU build
framework with 'configure'.
updated: 1993/01/24

language: Z-shell
package: zsh
version: 2.3.1 (2.4 in beta)
parts: interpreter
author: Paul Falstad
how to get: ftp pub/bas/zsh/zsh-*.tar.z from
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: [email protected]
contact: [email protected]
updated: 1993/03/23

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)
how to get: ftp lang/caml/* from
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: [email protected]
ports: Sun-3 Sun-4 Sony-68k Sony-R3000 Decstation Mac-A/UX Apollo
portability: low (built on a propietary runtime system)
status: maintained but no longer developed
discussion: [email protected],
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)
how to get: ftp lang/caml-light/* from
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: [email protected]
ports: most unix, Macintosh, MSDOS (16 and 32 bit modes), Atari ST
portability: very high
status: actively developed
discussion: [email protected],
contact: Xavier Leroy
updated: 1993/10/06

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
how to get: ftp pub/Clean/* from
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: [email protected]
updated: 1992/11/07

language: FP
package: ? funcproglang ?
version: ?
parts: translator(C)
author: ?
how to get: comp.sources.unix archive volume 13
description: ? Backus Functional Programming ?
updated: ?

language: Gofer (Haskell derivative)
package: Gofer
version: 2.28b
parts: interpreter, compiler(->C), documentation, examples
author: Mark Jones
how to get: ftp pub/haskell/gofer/* from
UK: ftp pub/haskell/gofer/* from
Sweden: ftp pub/haskell/gofer/* from
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: 1993/08/02

langauge: 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
how to get: ftp pub/haskell/chalmers/* from
UK: ftp pub/haskell/chalmers/* from
Sweden: ftp pub/haskell/chalmers/* from
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: [email protected]
europe: [email protected]
contact: [email protected]
updated: 1993/08/02

language: Haskell
package: Glasgow Haskell Compiler (GHC)
version: 0.19
parts: translator (C, SPARC), profiler
author: AQUA project, headed by Simon Peyton Jones

location: ftp pub/haskell/glasgow/* from
UK: ftp pub/haskell/glasgow/* from
Sweden: ftp pub/haskell/glasgow/* from
description: A near complete subset of Haskell 1.2, with numerous
conformance: Almost all of Haskell 1.2 is implemented.
reference: Papers at (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
requires: GNU C 2.1+, perl
ports: solid: Sun4, Sun3; sort of: HP-PA, Alpha, DECstation
portability: should be high
updated: 1993/12/17

language: Haskell
package: Yale Haskell
version: 2.0.5
parts: compiler, documentation, reference manual (dvi format)
author: Yale Haskell project
how to get: ftp from (*
how to get: ftp pub/haskell/yale/* from
UK: ftp pub/haskell/yale/* from
Sweden: ftp pub/haskell/yale/* from
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: [email protected]
europe: [email protected]
contact: [email protected]
updated: 1993/07/14

language: Hope
package: ?
version: ?
parts: ?
author: ?
how to get: ftp ? from
description: Functional language with polymorphic types and lazy lists.
First language to use call-by-pattern.
ports: Unix, Mac, PC
updated: 1992/11/27

language: IFP (Illinois Functional Programming)
package: ifp
version: 0.5
parts: interpreter
author: Arch D. Robison
how to get: 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: [1] Arch D. Robison, "Illinois Functional Programming: A
Tutorial," BYTE, (February 1987), pp. 115--125.
[2] 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: ?
how to get: ftp pup/haskell/chalmers/* from
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
how to get: ftp dist/ml/* from
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
updated: 1993/02/18

language: Concurrent ML
package: Concurrent ML
version: 0.9.8
parts: extension
author: ?
how to get: ftp pub/CML* from 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
bugs: [email protected]
requires: SML/NJ 0.75 (or later)
updated: 1993/02/18

language: SASL
iref: (Pascal) 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
how to get: ftp /usr/nemo/sml2c/sml2c.tar.Z from
Linux: ftp pub/linux/smlnj-0.82-linux.tar.Z from
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: [email protected] [email protected]
[email protected]
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.
how to get: ftp diku/users/birkedal/* from
UK: ftp export/ml/mlkit/* from
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: SISAL 1.2
package: The Optimizing SISAL Compiler
version: 12.0
parts: compiler?, manuals, documentation, examples, debugger,...
author: David C. Cann
how to get: ftp pub/sisal from
description: Sisal is a functional language designed to be competitive with
Fortran, and other imperative languages for scientific jobs.
In particualar, OSC uses advanced optimizing techniques to
achieve fast speeds for computation intensive programs.
It also features routines for making efficient use
of parallel processors, such as that on the Cray.
ports: ?
updated: ?

C variants
category: C variants
description: These are languages that are closely based on C.
lref: C-Refine, C++-Refine, *-Refine
lref: (C,Duel) Duel (a C debugging language)

language: C, C++, Objective-C, RTL
package: GNU CC (gcc)
version: 2.5.5
parts: compiler, runtime, examples, documentation
Library listed separately
author: Richard Stallman and others
how to get: ftp gcc-2.4.5.tar.gz from a GNU archive site
msdos: ftp pub/msdos/djgpp/* from
Macintosh: ftp mpw-gcc-1.37.1r14 from ?
description: A very high quality, very portable compiler for C, C++,
Objective-C. The compiler is designed to support multiple
front-ends and multiple back-ends by translating first
into RTL (Register Transfer Language) and from there into
assembly for the target architecture. Front ends for
Ada, Pascal, and Fortran are all under development.
conformance: C: superset of K&R C and ANSI C.
C++: not exactly cfront 3.0? [could someone tell me which
version of cfront it is equivalent to, if any? --ed]
Objective-C: ?
bugs: gnu.gcc.bug
restriction: GNU General Public License
ports: 3b1, a29k, aix385, alpha, altos3068, amix, arm, convex,
crds, elxsi, fx2800, fx80, genix, hp320, clipper,
iris,i860, i960, irix4, m68k, m88ksvsv.3, mips-news,
mot3300, next, ns32k, nws3250-v.4, hp-pa, pc532,
plexus, pyramid, romp, rs6000, sparc-sunos,
sparc-solaris2, sparc-sysv.4, spur, sun386, tahoe, tow,
umpis, vax-vms, vax-bsd, we32k, hitachi-{SH,8300}
portability: very high in the theory, somewhat annoying in practice
status: actively developed
announcements: gnu.gcc.announce
updated: 1993/11/27

language: C
package: GNU C Library (glibc)
version: 1.06
parts: library
author: ?
how to get: ftp glibc-1.06.tar.Z from a GNU archive site
Source for "crypt" must be FTP'ed from non-USA site if you are
outside the USA (site: glibc-1.06-crypt.tar.z from []).
description: The run-time library for the GNU C compiler, gcc. The source
for libc.a. This package is separately maintained.
conformance: ANSI and POSIX.1 superset. Large subset of POSIX.2
bugs: Reports sent to mailing list [email protected].
updated: 1993/06/25

language: C
package: fdlibm
version: ?
parts: library
author: Dr. K-C Ng
how to get: How to get fdlibm by email - as three email messages of 100KB each:
mail [email protected]
send all from fdlibm

How to get fdlibm by ftp:
cd netlib
get fdlibm.tar
description: Dr. K-C Ng has developed a new version of libm that is the basis
for the bundled /usr/lib/ in Solaris 2.3 for SPARC and
for future Solaris 2 releases for x86 and PowerPC. It provides
the standard functions necessary to pass the usual test suites.
This new libm can be configured to handle exceptions in
accordance with various language standards or in the spirit of
IEEE 754. The C source code should be portable to any IEEE 754
system with minimal difficulty.
conformance: IEEE 754
bugs: Send comments and bug reports to:
[email protected].
updated: 1993/12/18

language: C
package: c68/c386
version: 4.2a
parts: compiler
author: Matthew Brandt, Christoph van Wuellen, Keith and Dave Walker
how to get: ftp pub/Minix/common-pkgs/c386-4.2.tar.Z from
description: K&R C plus prototypes and other ANSI features.
targetted to several 68k and i386 assemblers, incl. gas.
floating point support by inline code or emulation.
lots of available warnings. better code generation than ACK.
ports: 386 and 68k Minix. generic unix actually.
status: actively worked on by the Walkers.
discussion: comp.os.min
updated: ?

language: C
package: GNU superoptimizer
version: 2.2
parts: exhaustive instruction sequence optimizer
author: Torbjorn Granlund with Tom Wood
how to get: ftp superopt-2.2.tar.Z from a GNU archive site
description: GSO is a function sequence generator that uses an exhaustive
generate-and-test approach to find the shortest instruction
sequence for a given function. You have to tell the
superoptimizer which function and which CPU you want to get
code for.
This is useful for compiler writers.
bugs: Torbjorn Granlund
restriction: GNU General Public License
ports: Alpha, Sparc, i386, 88k, RS/6000, 68k, 29k, Pyramid(SP,AP,XP)
updated: 1993/02/16

language: C
package: xdbx
version: 2.1
parts: X11 front end for dbx
author: ?
how to get: retrieve xxgdb from comp.sources.x volumes 11, 12, 13, 14, & 16
description: ?
contact: Po Cheung
updated: 1992/02/22

language: C
package: ups
version: 2.1
parts: interpreter, symbolic debugger, tests, documentation
author: Mark Russell
how to get: ? ftp from contrib/ups*.tar.Z from ?
unofficial: unofficial enhancements by Rod Armstrong ,
available by ftp misc/unix/ups/contrib/rob from
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
bugs: Mark Russell
ports: Sun, Decstation, VAX(ultrix), HLH Clipper
discussion: [email protected]
updated: 1991/05/20

language: C
package: C-Interp
version: ?
parts: interpreter
author: ?
how to get: ftp Mac/Misc/C_Interp.sit from
description: An interpreter for a small subset of C, originally part of a
communications package.
contact: ? Chuck Shotton
updated: 1993/05/14

langauge: C
package: ae (application executive)
version: 1?
parts: interpreter
author: Brian Bliss [Is this right? --ed]
how to get: ftp pub/at.tar.Z from
description: ae (the "application executive") is a C interpreter library
which is compiled with an application; hence, the interpreter
exists in the same process and address space. it includes a
dbx symbol table scanner to access compiled vars & routines, or
you can enter them manually by providing a type/name
declaration and the address. when the interpreter is invoked,
source code fragments are read from the input stream (or a
string), parsed, and evaluated immediately. The user can call
compiled functions in addition to a few built-in intrinsics,
declare new data types and data objects, etc. Different input
streams can be evaluated in parallel on alliant machines.
ports: SunOS (cc or gcc), Alliant FX, Cray YMP (soon)
updated: 1992/04/21

language: C (ANSI), lcc
package: lcc
version: 1.8
parts: compiler, test suite, documentation
author: Dave Hanson
how to get: ftp pub/lcc/lccfe-*.tar.Z from
description: + hand coded C parser (faster than yacc)
+ retargetable
+ code "as good as GCC"
ports: vax (mips, sparc, 68k backends are commercial)
status: small-scale production use using commerical backends; the
commercial backends are cheap (free?) to universities.
discussion: [email protected]
updated: 1992/02/20

language: C, lcc
package: Chop
version: 0.6
parts: code generator
author: Alan L. Wendt
how to get: ftp pub/chop/0.6.tar.Z from
description: The current revision, 0.6, is interfaced with Fraser and
Hanson's lcc front end. The result is a highly fast C compiler
with good code selection and no global optimization.
Project Status: Chop compiles and runs a number of small test
programs on the Vax. I'm currently updating the NS32k and 68K
retargets for lcc compatibility. After I get them working,
I'll work on getting the system to compile itself, get struct
assignments working, improve the code quality and compile
speed, and run the SPEC benchmarks. That will be rev 1.0.
reference: "Fast Code Generation Using Automatically-Generated Decision
updated: 1993/04/28

language: C
package: GCT
version: 1.4
parts: test-coverage-preprocessor
author: Brian Marick
how to get: ftp pub/testing/gct.file/ftp.* from
description: GCT is test-coverage tool based on GNU C. Coverage tools
measure how thoroughly a test suite exercises a program.
restriction: CopyLeft
ports: sun3, sun4, rs/6000, 68k, 88k, hp-pa, ibm 3090,
ultrix, convex, sco
discussion: [email protected]
support: commercial support available from author, (217) 351-7228
updated: 1993/02/12

language: C
package: MasPar mpl, ampl
version: 3.1
parts: compiler
author: ?
how to get: ftp put/mpl-* from
description: mpl & ampl - the intrinsic parallel languages for MasPar's
machines are C (ampl is actually a gcc port these days). You
can get the source from
contact: ?
updated: ?

language: C
package: gc
version: 3.4
parts: library
author: Hans-J. Boehm , Alan J. Demers
how to get: ftp pub/russell/gc3.4.tar.Z from
description: This is a garbage colecting storage allocator that is intended
to be used as a plug-in replacement for C's malloc. Since the
collector does not require pointers to be tagged, it does not
attempt to ensure that all inaccessible storage is reclaimed.
However, in our experience, it is typically more successful at
reclaiming unused memory than most C programs using explicit
deallocation. Unlike manually introduced leaks, the amount of
unreclaimed memory typically stays bounded.
ports: Sun-3, Sun-4 , Vax/BSD, Ultrix, i386/Unix, SGI, Alpha/OSF/1,
Sequent (single threaded), Encore (single threaded),
RS/600, HP-UX, Sony News, A/UX, Amiag, NeXT.
updated: 1993/11/05

language: C
package: dsp56k-gcc
version: ?
parts: compiler
author: ?
how to get: ftp pub/ham/dsp/dsp56k-tools/dsp56k-gcc.tar.Z from
Australia: ftp pub/micros/56k/g56k.tar.Z from
description: A port of gcc 1.37.1 to the Motorola DSP56000 done by
contact: ?
updated: ?

language: C
package: dsp56165-gcc
version: ?
parts: compiler
author: Andrew Sterian
how to get: ftp usenet/alt.sources/? from
description: A port of gcc 1.40 to the Motorola DSP56156 and DSP56000.
updated: ?

language: C
package: Harvest C
version: 1.3
parts: compiler, assembler, linker.
author: ?
how to get: ftp mac/development/languages/harves* from
description: The parts of the system are all integrated in a unique
application, which manages a "project" composed by several C
source files and resource files (which contain data).
ports: Macintosh
contact: Eric W. Sink
updated: 1992/05/26

language: C, C++
package: Cyclo - cyclomatic complexity tool
version: the one and only version
parts: code analysis tool
author: Roger D Binns
how to get: alt.sources archive, 1993/06/28,
description: It measures cyclomatic complexity, shows function calls and
can draw flowgraphs of ANSI C and C++ code.
requires: lex, C++
updated: 1993/06/28

language: C
package: cxref
version: ?
parts: code analysis tool
author: Arnold Robbins
how to get: use archie
description: A cross-reference genrator
updated: ?

language: C
package: xref
version: ?
parts: code analysis tool
author: Jim Leinweber
how to get: use archie
description: A cross-reference genrator
updated: 1985?

language: C, C++
package: Xcoral
version: 1.72
parts: editor
author: ?
how to get: ftp X/contrib/clients/xcoral* from
description: Xcoral is a multiwindows mouse-based text editor, for X Window
System, with a built-in browser to navigate through C functions
and C++ classes hierarchies... Xcoral provides variables width
fonts, menus, scrollbars, buttons, search, regions,
kill-buffers and 3D look. Commands are accessible from menus
or standard key bindings. Xcoral is a direct Xlib client and
run on color/bw X Display.
contact: ?
updated: 1993/03/14

language: C++
package: Lily (LIsp LibrarY)
version: 0.1
parts: library
author: Roger Sheldon
how to get: ftp uploads/lily-0.1.tar.gz from
description: Lilly is a C++ class library which gives C++ programmers the
capability to write LISP-style code. Lily's garbage collection
mechanism is not sufficient for commercial use. The
documentation is incomplete.
requires: C++ (g++ or Turbo C++, but not cfront)
restriction: GNU Library General Public License
updated: 1993/11/08

language: C++
package: C++SIM
version: 1.0
parts: library
author: Mark Little
how to get: ftp ? from
description: C++SIM is a class library that provides the same sort of
features found in the simulation class libraries of SIMULA.
updated: 1993/06/14

language: C++
package: ? signatures for GCC 2.5.2. ?
version: ?
parts: patches to GNU CC, documentation
author: Gerald Baumgartner
how to get: ftp pub/gb/* from
description: Signatures are very similar to abstract base classes except
that they have their own heirarchy and can be applied to
compiled classes. They provide a means of separating
subtyping and inheritance.
requires: GNU CC 2.5.2
updated: 1993/11/03

language: C++
package: aard ???
version: ?
parts: memory use tracer
author: ?
how to get: ftp pub/aard.tar.Z from
description: We have a prototype implementation of a tool to do memory
checking. It works by keeping track of the typestate of each
byte of memory in the heap and the stack. The typestate can be
one of Undefined, Uninitialized, Free or Set. The program can
detect invalid transitions (i.e. attempting to set or use
undefined or free storage or attempting to access uninitialized
storage). In addition, the program keeps track of heap
management through malloc and free and at the end of the run
will report all memory blocks that were not freed and that are
not accessible (i.e. memory leaks).
The tools works using a spliced-in shared library.
requires: Sparc, C++ 3.0.1, SunOS 4.X
contact: Steve Reiss
updated: ?

language: C++
package: ET++
version: 3.0-alpha
parts: class libraries, documentation
author: ?
how to get: ftp C++/ET++/* from
description: ?
contact: Erich Gamma
updated: 1992/10/26

language: C++
package: C++ grammar
version: ?
parts: parser (yacc)
author: ?
how to get: comp.sources.misc volume ?
description: [is this a copy of the Roskind grammar or something else? --ed]
updated: 1991/10/23

language: C++
package: cppp
version: 1.14
parts: parser (yacc)
author: Tony Davis
how to get:
description: A compiler front-end for C++, with complete semantic
processing. Outputs abstract syntax graph.
restriction: Permission needed for incorporation into commercial software.
requires: Native C++ compiler, lex, yacc, make, sed (or hand editing)
status: Upgrading the back end.
updated: 1993/05/26

language: C++
package: C++ Object Oriented Library
version: COOL ?, GECOOL 2.1, JCOOL 0.1
parts: libraries, tests, documentation
author: ?
how to get: GECOOL, JCOOL: ftp pub/COOL/* from
COOL: ftp pub/COOL.tar.Z from
description: A C++ class library developed at Texas Instruments. Cool
contains a set of containers like Vectors, List, Hash_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. JCOOL's main
difference from COOL and GECOOL is that it uses real C++
templates instead of a similar syntax that is preprocessed by
a special 'cpp' distributed with COOL and GECOOL.
ports: ?
contact: Van-Duc Nguyen
updated: 1992/08/05

language: C++
package: GNU C++ Library (libg++)
version: 2.5.1
parts: library
author: Per Bothner ?
how to get: libg++-2.5.1.tar.gz from a GNU archive site
description: The run-time library for the GNU C++ compiler.
This package is separately maintained.
conformance: ? ANSI and POSIX.1 superset
bugs: [email protected]
updated: 1993/06/30

language: C++
package: ??? A C++ Parser toolkit
version: ?
parts: library
author: Mayan Moudgill
how to get: ftp pub/Parse.shar from
description: A collection of C++ classes that make building a
recursive descent parser/scanner very easy.
ports: Sun 4 with cfront 3.0,
portability: uses mmap(); probably low.
updated: 1993/04/11

language: C++, Extended C++
package: EC++
version: ?
parts: translator(C++), documentation
author: Glauco Masotti
how to get: ? ftp languages/c++/EC++.tar.Z from ?
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: 1989/10/10

language: C++
package: LEDA
version: 3.0
parts: libraries
author: ?
how to get: ftp pub/LEDA/* from
description: library of efficient data types and algorithms.
New with 3.0: both template and non-template versions.
contact: Stefan N"aher
updated: 1992/11/30

language: E (a persistent C++ variant)
package: GNU E
version: 2.3.3
parts: compiler
author: ?
how to get: ftp exodus/E/gnu_E* from
description: GNU E is a persistent, object oriented programming language
developed as part of the Exodus project. GNU E extends C++
with the notion of persistent data, program level data objects
that can be transparently used across multiple executions of a
program, or multiple programs, without explicit input and
output operations.
GNU E's form of persistence is based on extensions to the C++
type system to distinguish potentially persistent data objects
from objects that are always memory resident. An object is
made persistent either by its declaration (via a new
"persistent" storage class qualifier) or by its method of
allocation (via persistent dynamic allocation using a special
overloading of the new operator). The underlying object
storage system is the Exodus storage manager, which provides
concurrency control and recovery in addition to storage for
persistent data.
restriction: Copyleft; not all runtime sources are available (yet)
requires: release 2.1.1 of the Exodus storage manager
contact: [email protected]
updated: 1993/01/20

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
description: ?
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
description: ?
contact: ?
updated: ?

language: C (ANSI)
package: cproto
version: ?
parts: translator(K&R C)
author: Chin Huang
how to get: from comp.sources.misc archive volume 29
description: cproto generates function prototypes from function definitions.
It can also translate function definition heads between K&R
style and ANSI C style.
ports: Unix, MS-DOS
updated: 1992/07/18

language: C (ANSI)
package: cextract
version: 1.7
parts: translator(K&R C), header file generator
author: Adam Bryant
how to get: ftp from any comp.sources.reviewed archive
description: A C prototype extractor, it is ideal for generating
header files for large multi-file C programs, and will
provide an automated method for generating all of the
prototypes for all of the functions in such a program.
It may also function as a rudimentary documentation
extractor, generating a sorted list of all functions
and their locations
ports: Unix, VMS
updated: 1992/11/03

language: ANSI C
package: cgram
version: ?
parts: grammar
author: Mohd Hanafiah Abdullah
how to get: ftp pub/comp.compilers/cgram-ll1.Z from
description: An ANSI C grammar in LL(k) (1 <= k <= 2). It's written in
Scheme, so you need to have a Scheme interpreter to process
the grammar using a program (f-f-d.s) that extracts the
requires: Scheme
ports: ?
updated: ?

language: C, ANSI C, C++
package: The Roskind grammars
version: cpp5 (cf2.0)
parts: parser(yacc), documenation
author: Jim Roskind
how to get: ftp gnu/c++grammar2.0.tar.Z from
ftp pub/C++/c++grammar2.0.tar.Z from
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.
Also included is an extension to byacc that produces
graphical parse trees automatically.
conformance: the C grammar si true ANSI; the C++ grammar supports
cfront 2.0 constructs.
requires: byacc 1.8 (for graphical parse trees)
status: actively developed
updated: 1991/07/01

language: C, C++
package: xxgdb
version: 1.06
parts: X11 front end for gdb
author: ?
how to get: retrieve xxgdb from comp.sources.x volumes 11, 12, 13, 14, & 16
description: ?
contact: Pierre Willard
updated: 1992/02/22

language: C, C++
package: gdb
version: 4.11
parts: symbolic debugger, documentation
author: many, but most recently Fred Fish ,
Stu Grossman , and
John Gilmore , all of Cygnus Support
how to get: ftp gdb-*.tar.[zZ] from a GNU archive site
description: gdb is a full-featured symbolic debugger. It fills the
same niche as dbx. Programs must be compiled with debugging
restriction: CopyLeft
ports: most unix variants, vms, vxworks, amiga, msdos
updated: 1993/10/29

language: C, C++, Objective-C
package: emx programming environment for OS/2
version: 0.8g
parts: gcc, g++, gdb, libg++, .obj linkage, DLL, headers
author: Eberhard Mattes
how to get: ftp os2/2_x/unix/gnu/emx0.8g from
Europe: ftp soft/os2/emx-0.8g from
description: ?
discussion: subscribe to emx-list using [email protected]
updated: 1992/09/21

language: C
package: Pthreads
version: 1.17
parts: library
author: PART (POSIX / Ada-Runtime Project)
how to get: ftp pub/PART/pthreads* from
description: As part of the PART project we have been designing and
implementing a library package of preemptive threads which is
compliant with POSIX 1003.4a Draft 6. A description of the
interface for our Pthreads library is now available on ftp.
restriction: GNU General Public License
discussion: send "Subject: subscribe-pthreads" to [email protected]
ports: Sun-4/SunOS 4.1.x
contact: [email protected]
updated: 1993/07/22

language: C, nroff, texinfo
package: c2man
version: 2.0 patchlevel 17
parts: documentation generator (C -> nroff -man, -> texinfo)
author: Graham Stoney
how to get: ftp usenet/comp.sources.reviewed/volume03/c2man*
Europe: ftp /pub/archive/comp.sources/reviewed/c2man*
Patches: ftp pub/netnews/sources.bugs/volume93/sep/c2man* from
description: c2man is an automatic documentation tool that extracts comments
from C source code to generate manual pages in the same format
as sections 2 & 3 of the Unix Programmer's Manual. It requires
minimal effort from the programmer by looking for comments near
the objects they document, rather than imposing a rigid
function-comment syntax.
conformance: supports both K&R and ISO/ANSI C coding styles
features: + generates output in nroff -man or texinfo format
+ handles comments as part of the language grammar
+ automagically documents enum parameter & return values
+ handles C (/* */) and C++ (//) style comments
- doesn't handle C++ grammar (yet)
requires: yacc (or bison), lex (or flex), nroff (or groff) or texinfo
ports: Unix, OS/2, MSDOS
portability: very high for unix, via Configure.
status: actively developed; contributions by users are encouraged.
announcements: patches appear first in comp.sources.bugs, later in
comp.sources.reviewed after a review period.
updated: 1993/11/02

language: Small-C
package: smallc
version: ?
parts: compiler
author: ?
how to get: ?, comp.sources.unix volume 5
description: Small-C is a subset of the C programming language for which a
number of public-domain compilers have been written. The
original compiler was written by Ron Cain and appeared in the
May 1980 issue of Dr.Dobb's Journal. More recently, James
E.Hendrix has improved and extended the original Small-C
compiler and published "The Small-C Handbook", ISBN
0-8359-7012-4 (1984). Both compilers produce 8080 assembly
language, which is the most popular implementation of Small-C
to-date. My 6502 Small-C compiler for the BBC Micro is based
on "RatC", a version of the original Ron Cain compiler
described by R.E.Berry and B.A.Meekings in "A Book on C", ISBN
0-333-36821-5 (1984). The 6502 compiler is written in Small-C
and was bootstrapped using Zorland C on an Amstrad PC1512 under
MSDOS 3.2, then transferred onto a BBC Micro using Kermit. The
compiler can be used to cross-compile 6502 code from an MSDOS
host, or as a 'resident' Small-C compiler on a BBC Micro.
conformance: subset of C
ports: 68k, 6809, VAX, 8080, BBC Micro, Z80
updated: 1989/01/05

language: Maisie
package: Maisie
version: 2.1
parts: ?, user manual, examples
author: Wen-Toh Liao
how to get: ftp pub/maisie. from
description: C-based parallel programming language that uses asynchronous
typed-message passing and supports light-weight processes.
The language is C with enhancements to allow processes to be
defined, created, and destroyed, to send and receive messages,
and manipulate the system clock.
ports: PVM/3.1, Cosmic Environment, and SUN Sockets.
updated: 1993/06/14

language: MeldC (MELD, C)
package: MeldC
version: 2.0
parts: microkernel, compiler, debugger, manual, examples
author: MELD Project, Programming Systems Laboratory at
Columbia University
how to get: obtain license from
description: MeldC 2.0: A Reflective Object-Oriented Coordination
Programming Language MELDC is a C-based, concurrent,
object-oriented language built on a reflective architecture.
The core of the architecture is a micro-kernel (the MELDC
kernel), which encapsulates a minimum set of entities that
cannot be modeled as objects. All components outside of the
kernel are implemented as objects in MELDC itself and are
modularized in the MELDC libraries. MELDC is reflective in
three dimensions: structural, computational and architectural.
The structural reflection indicates that classes and
meta-classes are objects, which are written in MELDC. The
computational reflection means that object behaviors can be
computed and extended at runtime. The architectural reflection
indicates that new features/properties (e.g., persistency and
remoteness) can be constructed in MELDC.
restriction: must sign license, cannot use for commercial purposes
ports: Sun4/SunOS4.1 Mips/Ultrix4.2
updated: 1992/12/15

language: uC++
package: uC++
version: 3.7
parts: compiler, reference
author: ? Peter A. Ruhr
how to get: ftp pub/uSystem/u++-3.7.tar.Z from
description: An extended C++ with light-weight concurrency for Unix-like
systems. uC++ is pronounced "micro-C++".
reference: Software--Practice and Experience, 22(2):137-172, February 1992.
requires: dmake 3.0+ (ftp pub/dmake/dmake38.tar.Z from
GNU C++ 2.3.3
ports: Sequent, Sun-4, Sun-3, Ultrix, SGI, RS/6000, HP-PA
portability: Needs "setitimer" and "sigcontext" from Unix-like systems.
updated: 1993/06/10

language: Objective-C
package: Collection Library for GNU Objective-C
version: Alpha Release
parts: library
author: R. Andrew McCallum ?
how to get: ftp pub/ObjC/libcoll-*.tar.z from
description: It's a library of Objective-C objects with similar
functionality to Smalltalk's Collection objects. It includes:
Set, Bag, Array, LinkedList, LinkList, CircularArray, Queue,
Stack, Heap, SortedArray, MappedCollector, GapArray and
updated: 1993/06/01

compiled, imperitive languages
category: compiled, imperitive languages
description: This is the set of traditional infix languages other than C
and Pascal which each have their own section.
cref: C variants
cref: Wirth family languages
lref: Simula
lref: Fortran

language: Ada
package: Ada/Ed
version: 1.11.0a+
parts: translator(?), interpreter, ?
author: ?
how to get: ftp pub/Ada/Ada-Ed from
description: Ada/Ed is a translator-interpreter for Ada. It is
intended as a teaching tool, and does not have the
capacity, performance, or robustness of commercial
Ada compilers. Ada/Ed was developed at New York
University, as part of a long-range project in
language definition and software prototyping.
conformance: Ada 83. Last validated with version 1.7 of the ACVC tests.
being an interpreter, it does not implement most
representation clauses, and thus does not support systems
programming close to the machine level.
ports: Unix, MSDOS, Amiga, Atari
contact: Michael Feldman
updated: 1992/05/08

language: Ada
package: Ada grammar
version: ?
parts: scanner(lex), parser(yacc)
author: ?
how to get: ftp from or mail to
[email protected]
description: ?
contact: [email protected]
updated: 1991/10/12

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
description: ?
conformance: subset
updated: 1992/04/08

language: Ada
package: NASA PrettyPrinter
version: ?
parts: Ada LR parser, ?
author: ? Michael Feldman in comp.compilers
provided the initial reference to this package, he also has a
yacc grammar for ada.
how to get: ftp from Ada Software Repository on
description: pretty-print program that contains an ada parser
requires: Ada
updated: 1991/02/01

language: Ada
package: yacc grammar for Ada
version: ?
parts: parser(yacc)
author: Herman Fischer
how to get: ftp PD2:GRAM2.SRC
description: ?
contact: ?
updated: 1991/02/01

language: Ada
package: Paradise
version: 2.0
parts: library
author: ?
how to get: ftp pub/Ada/Paradise from
description: Paradise is a subsystem (a set of packages) developped
to implement inter-processes, inter-tasks and
inter-machines communication for Ada programs in
the Unix world. This subsystem gives the user full
access to files, pipes, sockets (both Unix and
Internet), and pseudo-devices.
ports: Sun, Dec, Sony Mips, Verdex compiler, DEC compiler,
Alsys/Systeam compiler
contact: [email protected]
updated: 1992/09/30

language: Ada
package: Adamakegen
version: 2.6.3
parts: makefile generator
author: Owen O'Malley
how to get: ftp ftp/pub/arcadia/adamakegen* from
description: A program that generates makefiles for Ada programs
requires: Icon
ports: Verdix, SunAda
updated: 1993/03/02

language: Ada 9X
package: GNAT
version: 1.4.5
parts: parser, library management system, documentation?
author: The GNAT Development Team
how to get: ftp pub/gnat/* from
description: A bootstrapped implementation of a Ada83 subset.
conformance: Currently only a subset of of Ada 83 is working. Compliance
to Ada 9X being worked on.
status: Activly developed. Very early release, but able to compile
updated: 1993/08/29

language: Algol, Foogol
package: foogol
version: ?
parts: compiler
author: ?
how to get: comp.sources.unix archive volume 8
description: ?
conformance: subset of Algol
ports: VAX
updated: ?

language: Algol
lref: Simula

language: BCPL
package: ?
version: ?
parts: ?
author: ?
how to get: ftp systems/amiga/programming/languages/BCPL/BCPL4Amiga.lzh
description: The original INTCODE interpreter for BCPL.
ports: Amiga, Unix, MSDOS
contact: ?
updated: ?

language: BCPL
package: ?
version: ?
parts: ?
author: ?
how to get: ftp [.languages]bcpl.tar_z from
description: A BCPL* (Basic Combined Programming Language) compiler
bootstrap kit with an INTCODE interpreter in C.
contact: Ken Yap
updated: ?

language: E
package: Amiga E
version: 2.1b
parts: compiler, assembler, linker, utilities
author: Wouter van Oortmerssen
how to get: ftp amiga/dev/lang/AmigaE21b.lha from
description: An Amiga specific E compiler. E is a powerful and flexible
procedural programming language and Amiga E a very fast com-
piler for it, with features such as compilation speed of
20000 lines/minute on a 7 Mhz amiga, inline assembler and
linker integrated into compiler, large set of integrated
functions, module concept with 2.04 includes as modules,
flexible type-system, quoted expressions, immediate and typed
lists, low level polymorphism, exception handling and much,
much more. Written in Assembly and E.
ports: Amiga
portability: not portable at all
status: actively developed
discussion: comp.sys.amiga.programmer (sometimes)
updated: 1993/03/01

language: Eiffel
package: ?
version: ?
parts: source checker
author: Olaf Langmack and Burghardt Groeber
how to get: ftp pub/heron/ep.tar.Z from
description: A compiler front-end for Eiffel-3 is available. It has been
generated automatically with the Karlsruhe toolbox for
compiler construction according to the most recent public
language definition. The parser derives an easy-to-use
abstract syntax tree, supports elementary error recovery
and provides a precise source code indication of errors. It
performs a strict syntax check and analyses 4000 lines of
source code per second on a Sun-SPARC workstation.
updated: 1992/12/14

language: Sather
package: Sather programming language and environment
version: 0.2i
parts: compiler(->C), debugger, libraries, documentation, emacs macros
author: International Computer Science Institute in Berkeley, CA
how to get: ftp pub/sather/sa-0.2i.tar.Z from
Europe: ftp pub/Sather/* from
Australia: ftp pub/sather/* from
Japan: ftp pub/lang/sather/* from
description: Sather is a new object-oriented computer language
developed at the International Computer Science
Institute. It is derived from Eiffel and attempts to
retain much of that language's theoretical cleanliness
and simplicity while achieving the efficiency of C++.
It has clean and simple syntax, parameterized classes,
object-oriented dispatch, multiple inheritance, strong
typing, and garbage collection. The compiler generates
efficient and portable C code which is easily
integrated with existing code.
package: A variety of development tools including a debugger and browser
based on gdb and a GNU Emacs development environment
have also been developed. There is also a class library
with several hundred classes that implement a variety
of basic data structures and numerical, geometric,
connectionist, statistical, and graphical abstractions.
We would like to encourage contributions to the library
and hope to build a large collection of efficient,
well-written, well-tested classes in a variety of areas
of computer science.
conformance: reference implemantation
bugs: [email protected]
ports: Sun-4 HP9000/300 Decstation5000 MIPS SonyNews3000 Sequent/Dynix
SCO SysVR3.2 NeXT (from others: RS6000 SGI)
portability: high
status: actively developed.
discussion: [email protected]
updated: 1992/07/02

language: XPL (PL/I dialect)
package: XPL optimizing Compiler
version: 1
parts: compiler, documentation
author: Robin Vowels
how to get: mail to [email protected]
description: The compiler is a standard implementation of XPL and is based on
McKeeman, Horning, and Wortman's improved XCOM (which employs
hashed symbol table generation). It includes the extra built-in
The following areas have been optimized: procedures calls when
the argument and corresponding parameter are of the same type,
and when the argument is a constant; constant subscripts; use of
CORELHALFWORD and COREWORD; string constants of length one;
iterative DO statements by transferring code to the end of the
String constants of length one do not require a descriptor,
hence more descriptors are available for string variables.
Comparison operations are treated as commutative, and an
improved Commute algorithm is used. Halfword instructions are
generated for BIT(16) variables.
These areas have been improved or re-written: calls on OUTPUT,
catenation, integer-to-string conversion, multiply, divide, and
MOD. An emitter for SS-type instructions has been added.
The compiler achieves an 11% reduction in object code
compiling itself, an 11% increase in compilation rate, a 55%
increase in compilation speed when the $E toggle is set.
Special treatment for catenating a string to an integer
substantially decreases consumption of the free string area, and
decreases string moves. The latter improvement is most
noticeable on small core machines.
Core requirements: less than the improved XCOM on which it is
based (approx. 98000 bytes). Symbol table size is 468.
ports: IBM System 370
portability: The compiler is written in XPL. The code generators are
updated: 1993/08/07

object oriented langauges
category: object oriented langauges
description: In general, object oriented langauges were categorized
elsewhere. Only those that were not anything but object-
oriented are here.
lref: ABCL ???
lref: ABCL/R2
lref: ALLOY
lref: C++
lref: CLU
lref: Common Lisp
lref: Dylan
lref: GNU E
lref: MeldC
lref: Objective-C
lref: Perl5
lref: Python
lref: Sather
lref: Simula
iref: (TCL) BOS
iref: (Scheme) STk
iref: (Scheme) SOS

language: O'small
package: O'small
version: Initial release
parts: compiler?, parser/scanner specification
author: ? Andreas Hense
how to get: FTP /pub/osmall/machine/* from (
description: A concise, formally defined object-oriented language suited
for teaching object oriented programming.
reference: (Numerous references listed in software documentation)
Christoph Boeschen. Christmas - An abstract machine for
O'small. Master's thesis, Universit"at des Saarlandes,
Fachbereich 14, June 1993.
requires: sml-yacc, sml-lex, sml-noshare (details in HowToGetML).
ports: Sun 4, SPARC (binaries provided).
portability: Probably portable to other Unix's.
updated: 1993/06/25

language: O'small
package: ?
version: ?
parts: interpreter
author: ?
how to get: ?
description: ?
requires: Miranda
ports: ?
portability: ?
updated: ?

language: Self
package: Self
version: 2.0
parts: ?, compiler?, debugger, browser
author: The Self Group at Sun Microsystems & Stanford University
how to get: ftp ? from
description: The Self Group at Sun Microsystems Laboratories, Inc., and
Stanford University is pleased to announce Release 2.0 of the
experimental object-oriented exploratory programming language
Self. Release 2.0 introduces full source-level debugging of
optimized code, adaptive optimization to shorten compile
pauses, lightweight threads within Self, support for
dynamically linking foreign functions, changing programs within
Self, and the ability to run the experimental Self graphical
browser under OpenWindows.
Designed for expressive power and malleability, Self combines a
pure, prototype-based object model with uniform access to state
and behavior. Unlike other languages, Self allows objects to
inherit state and to change their patterns of inheritance
dynamically. Self's customizing compiler can generate very
efficient code compared to other dynamically-typed
object-oriented languages.
ports: Sun-3 (no optimizer), Sun-4
portability: ? [Can it be ported to non-Sun or non-Unix systems?]
discussion: [email protected]
contact: ?
updated: 1992/08/13

language: Smalltalk
package: Little Smalltalk
version: 3
parts: ?
author: Tim Budd ?
how to get: ftp pub/budd/? from
description: ?
ports: unix, pc, atari, vms
status: ?
updated: ?

language: Smalltalk
package: GNU Smalltalk
version: 1.1.1
parts: ?
author: Steven Byrne
how to get: ftp smalltalk-1.1.1.tar.Z from a GNU archive site
description: ?
bugs: gnu.smalltalk.bug
discussion: ?
contact: ?
updated: 1991/09/15

language: Smalltalk
package: msgGUI
version: 1.0
parts: library
author: Mark Bush
how to get: ftp pub/Packages/mst/mstGUI-1.0.tar.Z from
description: GUI for GNU Smalltalk. This this package contains the basics
for creating window applications in the manner available in
other graphical based Smalltalk implementations.
updated: 1992/12/14

language: Smalltalk
package: Mei
version: 0.50
parts: interpreters(Lisp,Prolog), examples, libraries, tools, editor,
author: Atsushi Aoki and others
how to get: ftp pub/goodies/misc/Mei.tar.Z from
N.America: ftp pub/MANCHESTER/misc/Mei from
Japan: ftp pub/lang/smalltalk/mei/Mei0.50.tar.Z from
description: Mei is a set of class libraries for Objectworks Smalltalk
Release 4.1. it includes: 1. Grapher Library (useful for
drawing diagrams); 2. Meta Grapher Library (grapher to develop
grapher); 3. Drawing tools and painting tools (structured
diagram editors and drawing editors); 4. GUI editor (graphical
user interface builder); 5. Lisp interpreter; 6. Prolog
interpreter; 7. Pluggable gauges; 8. Extended browser;
(package, history, recover, etc.)
restriction: GNU General Public License
requires: Objectworks Smalltalk Release 4.1
contact: Watanabe Katsuhiro
updated: 1993/01/20

language: Smalltalk
iref: (Pascal) Tim Budd's C++ implementation of Kamin's interpreters

lisp family
category: lisp family
description: [The programming langauges for those who like parenthesis --ed]

language: Dylan
package: Thomas
version: ? first public release ?
parts: translator(Scheme)
author: Matt Birkholz , Jim Miller
, Ron Weiss
how to get: ftp pub/DEC/Thomas from
description: Thomas, a compiler written at Digital Equipment
Corporation's Cambridge Research Laboratory compiles
a language compatible with the language described
in the book "Dylan(TM) an object-oriented dynamic
language" by Apple Computer Eastern Research and
Technology, April 1992. It does not perform well.
Thomas is NOT Dylan(TM).
requires: Scheme
ports: MIT's CScheme, DEC's Scheme->C, Marc Feeley's Gambi, Mac, PC,
Vax, MIPS, Alpha, 680x0
updated: 1992/09/11

language: Dylan
package: Marlais
version: 0.2a
parts: interpreter
author: Brent Benson
how to get: ftp pub/marlais-0.2a.tar.gz from
description: Marlais is a simple-minded interpreter for a programming
language strongly resembling Dylan [1]. It is not intended as
a final release, but rather to fill a perceived void where
Dylan implementations are concerned. This is a "hackers
release" and is intended as a vehicle for education,
experimentation and also to encourage people to port it to
different architectures, add features, and fix bugs. Marlais
is alpha software and should not be used by people desiring
ports: Sun-3, Sun-4, VAX/BSD, OS/2, Linux, Sequent Symmetry,
Encore, HP-UX, Ultrix, SGI, Sony News, A/UX
updated: 1993/09/23

language: EuLisp
package: Feel (Free and Eventually Eulisp)
version: 0.75
parts: interpreter, documentation
author: Pete Broadbery
how to get: ftp pub/eulisp from
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: 1992/09/14

language: Common Lisp
package: CMU Common Lisp
version: 17c
parts: incremental compiler, profiler, runtime, documentation,
editor, debugger
author: ?
how to get: ftp pub/* from from
description: CMU Common Lisp is public domain "industrial strength" Common
Lisp programming environment. Many of the X3j13 changes have
been incorporated into CMU CL. Wherever possible, this has
been done so as to transparently allow use of either CLtL1 or
proposed ANSI CL. Probably the new features most interesting
to users are SETF functions, LOOP and the WITH-
+ The new CMU CL compiler (Python) is more sophisticated
thatn other Common Lisp compilers. It produces better code
and is easier to use.
+ The programming environment based on the Hemlock editor
is better integrated than gnu-emacs based environments.
conformance: mostly X3J13 compatible.
ports: Sparc/Mach Sparc/SunOS Mips/Mach IBMRT/Mach
contact: [email protected]
updated: 1993/11/18

language: Common Lisp
package: PCL (Portable Common Loops)
version: 8/28/92 PCL
parts: library
author: ? Richard Harris ?
how to get: ftp pcl/* from
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.
ports: Lucid CL 4.0.1, CMUCL 16e, ?
status: ?
updated: 1992/09/02

language: Common Lisp
package: WCL
version: 2.14
parts: ?, shared library runtime, source debugger
author: Wade Hennessey
how to get: ftp pub/wcl/* from
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.
requires: GNU C 2.1 (not 2.2.2)
ports: Sparc/SunOS
updated: 1992/10/28

language: Common Lisp
package: KCL (Kyoto Common Lisp)
version: ?
parts: compiler(->C), interpreter
author: T. Yuasa , M. Hagiya

how to get: ? ftp pub/kcl*.tar.Z from ?
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.
bugs: [email protected]
restriction: must sign license agreement
discussion: [email protected]
updated: 1987/06

language: Common Lisp
package: AKCL (Austin Kyoto Common Lisp)
version: 1-615
parts: improvements
author: Bill Schelter ,
how to get: ftp pub/akcl-*.tar.Z from
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 NeXT
updated: 1992/04/29

language: Common Lisp
package: CLX
version: 5.01
parts: library
author: ?
how to get: ftp contrib/CLX.R5.01.tar.Z from
description: Common Lisp binding for X
bugs: [email protected]
ports: ?, CMU Common Lisp
contact: ?
updated: 1992/08/26

language: Common Lisp
package: CLISP
version: 1993/10/06
parts: interpreter, bytecode compiler, runtime library, editor
author: Bruno Haible ,
Michael Stoll
how to get: ftp /pub/lisp/clisp from
description: CLISP is a Common Lisp (CLtL1) implementation by Bruno Haible
of Karlsruhe University and Michael Stoll of Munich University,
both in Germany. It needs only 1.5 MB of RAM. German and
English versions are available, French coming soon. Packages
running in CLISP include PCL and, on Unix machines, CLX. A
native subset of CLOS is included.
conformance: CLtL1 + parts of CLtL2
restriction: GNU General Public License
ports: Atari, Amiga, MS-DOS, OS/2, Linux, Sun4, Sun386i, HP90000/800
and others
discussion: send "subscribe clisp-list" to
[email protected]
contact: Bruno Haible
updated: 1993/10/06

language: Common Lisp
package: Cartier's Contribs
version: 1.2
parts: libraries, documentation
author: Guillaume Cartier
how to get: ftp pub/mcl2/contrib/Cartiers* from
description: libraries for MCL
requires: Macintosh Common Lisp
updated: 1992/11/30

language: Common Lisp
package: QT-OBJECTS
version: ?
parts: library
author: Michael Travers and others
how to get: ?
description: interface between MCL and QuickTime
requires: Macintosh Common Lisp
updated: 1992/12/20

language: Common Lisp
package: Memoization ?
version: ?
parts: library
author: Marty Hall
how to get: ftp pub/Memoization from
description: Automatic memoization is a technique by which an existing
function can be transformed into one that "remembers"
previous arguments and their associated results
updated: 1992/11/30

language: Common Lisp
package: GINA (Generic Interactive Application)
version: 2.2
parts: language binding, class library, interface builder
author: ?
how to get: ftp /gmd/gina from
N.America: ftp contrib/? from
description: GINA is an application framework based on Common Lisp and
OSF/Motif to simplify the construction of graphical
interactive applications. It consists of:
+ CLM, a language binding for OSF/Motif in Common Lisp.
+ the GINA application framework, a class library in CLOS
+ the GINA interface builder, an interactive tool implemented
with GINA to design Motif windows.
requires: OSF/Motif 1.1 or better. Common Lisp with CLX, CLOS, PCL and
ports: Franz Allegro, Lucid, CMU CL and Symbolics Genera
discussion: [email protected]
updated: ?

language: Common Lisp
package: CLiCC
version: 0.6.1
parts: compiler(->C), runtime library
author: Heinz Knutzen ,
Ulrich Hoffman ,
Wolfgang Goerigk
how to get: ftp pub/kiel/apply/clicc* from
description: A Common Lisp to C compiler, meant to be used as a supplement
to existing CLISP systems for generating portable applications.
Target C code must be linked with CLiCC runtime library to
produce executable.
conformance: Subset of Common Lisp + CLOS (named: CL_0, or CommonLisp_0)
CL_0 based on CLtL1.
restriction: Freely distributable and modifiable
ports: Runs in Lucid Lisp, AKCL, CLISP, ...
status: Working towards CLtL2 and ANSI-CL conformance.
updated: 1993/08/04

language: Franz Lisp
package: Liszt?
version: ?
parts: compiler(->C)
author: port to C by J W Dalton
how to get: ask author
description: A version of Liszt that emits C
updated: ?

language: Lisp
package: RefLisp
version: 2.67
parts: interpreter, documentation, examples, profiler
author: Bill Birch
how to get: ftp implementations/reflisp/* from the directory
/afs/ on
description: The interpreter is a shallow-binding (i.e., everything has
dynamic scope), reference counting design making it suitable
for experimenting with real-time and graphic user interface
programming. Common Lisp compatibility macros are provided, and
most of the examples in "Lisp" by Winston & Horn have been run
on RefLisp. RefLisp makes no distinction between symbol-values
and function-values, so a symbol can be either but not both.
There are Lisp modules for lexical scope and for running
indefinite extent Scheme programs.
ports: MSDOS (CGA/EGA/VGA), Unix (AIX)
status: "Last Update for a While," author is emigrating to Australia
updated: 1993/02/09

language: Lisp
package: xlisp
version: 2.1
parts: interpreter
author: David Micheal Betz
how to get: ftp pub/xlisp* from
US Mail: contact Tom Almy
Windows: ftp util/ from
Version2.0: ftp pub/xlisp/* from
Macintosh: ftp pub/bskendig/? from (source comming)
description: XLISP is an experimental programming language
combining some of the features of Common Lisp with an
object-oriented extension capability. It was
implemented to allow experimentation with
object-oriented programming on small computers.
conformance: subset of Common Lisp with additions of Class and Object
restriction: ? no commercial use ?
ports: unix, amiga, atari, mac, MSDOS
portability: very high: just needs a C compiler

discussion: comp.lang.lisp.x
updated: 1992/05/26 (unix), 1987/12/16 (other platforms)

language: Lisp
package: "LISP, Objects, and Symbolic Programming"
version: ?
parts: book with compiler included
author: Robert R. Kessler and Amy R. Petajan,
published by Scott, Foresman and Company, Glenview, IL
how to get: bookstore...
description: ? (A short synopsis might help if anyone has one)
updated: 1988

language: Lisp
package: franz lisp
version: ?
parts: ?
author: ?
how to get: [does anyone know where you get franz lisp??? --ed]
description: ?
discussion: [email protected]
updated: ?

language: Lisp (WOOL - Window Object Oriented Language)
package: GWM (Generic Window Manager)
version: ?
parts: interpreter, examples
author: ?
how to get: ftp contrib/gwm/* from
France: ftp pub/gwm/* from
description: Gwm is an extensible window manager for X11. It is
based on a WOOL kernel, and interpreted dialect of lisp
with specific winow management primitives.
discussion: gwm-talk@???
contact: ?
updated: ?

language: Lisp (elisp - Emacs Lisp)
package: ILISP
version: 5.0
parts: Emacs interface
author: ?? Ivan Vazquez
how to get: ftp to ( in pub/ilisp/ilisp.tar.Z
description: ILISP provides a somewhat lisp-machine like interface to lisp
listeners from Emacs.
bugs: [email protected] (or [email protected]).
discussion: [email protected]
support: Mailing list requests/deletions to [email protected]
updated: 1993/06/28

language: Lisp (elisp - Emacs Lisp)
package: GNU Emacs
version: 19.21
parts: editor, interpreter, documentation, source debugger
author: Richard Stallman and others
how to get: pub/gnu/emacs-19.17.tar.gz from any GNU site.
description: An editor that is almost an operating system. Quite
programmable. And it even fits in your tackle box.
bugs: gnu.emacs.bug, e-mail to [email protected]
ports: Unix, VMS, ?
discussion: alt.religion.emacs, gnu.emacs.sources
announcements: gnu.emacs.announce
updated: 1993/11/16

language: Lisp
iref: (Pascal) Tim Budd's C++ implementation of Kamin's interpreters

language: Oaklisp
package: oaklisp
version: 1.2
parts: interface, bytecode compiler, runtime system, documentation
author: Barak Pearlmutter, Kevin Lang
how to get: ftp /afs/* from
description: Oaklisp is a Scheme where everything is an object. It
provides multiple inheritence, a strong error system,
setters and locators for operations, and a facility for
dynamic binding.
status: actively developed?
contact: [email protected] ?
updated: 1992/05 ?

language: Scheme
package: Schematik
parts: programming environment
author: Chris Kane, Max Hailperin
how to get: ftp /pub/next/scheme/* from
Europe: ftp /pub/next/ProgLang from
description: Schematik is a NeXT front-end to MIT Scheme for
the NeXT. It provides syntax-knowledgeable text
editing, graphics windows, and user-interface to
an underlying MIT Scheme process. It comes packaged
with MIT Scheme 7.1.3 ready to install on the NeXT.
ports: NeXT, MIT Scheme 7.1.3
portability: requires NeXTSTEP
contact: [email protected]
updated: 1993/03/11

language: Scheme
package: T
version: 3.1
parts: compiler
author: ?
how to get: ftp pub/systems/t3.1 from
description: a Scheme-like language developed at Yale. T is
written in itself and compiles to efficient native
(A multiprocessing version of T is available from
bugs: [email protected]
ports: Decstation, Sparc, sun-3, Vax(unix), Encore, HP, Apollo,
Mac (A/UX)
contact: [email protected].
updated: 1991/11/26

language: Scheme
package: scm
version: 4c5
parts: interpreter, conformance test, documentation
author: Aubrey Jaffer
how to get: ftp archive/scm/scm* from
Canada: ftp pub/oz/scheme/new/* from
Europe: ftp pub/bosullvn/jacal/* from
description: ?
conformance: Scm conforms to the Revised^4 Report
restriction: GNU General Public License
ports: unix, amiga, atari, mac, MSDOS, nos/ve, vms
status: actively developed
contributions: send $$$ to Aubrey Jaffer, 84 Pleasant St., Wakefield, MA 01880
updated: 1993/10/05

language: Scheme
package: Scheme Library (slib)
version: 1d5
parts: library, documentation
author: ?
how to get: ftp archive/scm/slib*.tar.Z from
description: SLIB is a portable scheme library meant to provide
compatibiliy and utility functions for all standard scheme
ports: Scm4b, Chez, ELK 1.5, GAMBIT, MITScheme, Scheme->C,
Scheme48, T3.1.
status: actively developed
contact: Aubrey Jaffer
updated: 1993/10/09

language: Scheme
package: Hobbit
version: release 2
parts: compiler(->C), documentation
author: Tanel Tammet
how to get: ftp archive/scm/hobbit2.tar.Z from
description: The main aim of hobbit is to produce maximally fast C programs
which would retain most of the original Scheme program
structure, making the output C program readable and modifiable.
Hobbit is written in Scheme and is able to self-compile.
Hobbit release 1 works together with the scm release scm4b3.
Future releases of scm and hobbit will be coordinated.
requires: scm 4b3
updated: 1993/04/25

language: Scheme
package: siod (Scheme In One Day, or Scheme In One Defun)
version: 2.9
parts: ?
author: George Carrette
how to get: ftp src/lisp/siod-v2.8-shar from
description: Small scheme implementation in C arranged as a set of
subroutines that can be called from any main program
for the purpose of introducing an interpreted extension
language. Compiles to ~20K bytes of executable. Lisp
calls C and C calls Lisp transparently.
ports: VAX/VMS, VAX Unix, Sun3, Sun4, Amiga, Macintosh, MIPS, Cray
updated: 1992/09/01

language: Scheme
package: MIT Scheme (aka C-Scheme)
version: 7.2
parts: interpreter, large runtime library, emacs macros,
native-code compiler, emacs-like editor, source-level debugger
author: MIT Scheme Team (primarily Chris Hanson, Jim Miller, and
Bill Rozas, but also many others)
how to get: ftp archive/scheme-7.2 from
DOS floppies ($95) and Unix tar tapes ($200) from
Scheme Team / c/o Prof. Hal Abelson / MIT AI Laboratory /
545 Technology Sq. / Cambridge, MA 02139
description: Scheme implementation with rich set of utilities.
conformance: full compatibility with Revised^4 Report on Scheme,
one known incompatibility with IEEE Scheme standard
bugs: [email protected]
ports: 68k (hp9000, sun3, NeXT), MIPS (Decstation, Sony, SGI),
HP-PA (600, 700, 800), Vax (Ultrix, BSD), Alpha (OSF),
i386 (DOS/Windows, various Unix)
status: activly developed
discussion: [email protected]
(cross-posted to comp.lang.scheme.c)
updated: 1992/08/24

language: Scheme
package: Scheme->C
version: 15mar93
parts: compiler(->C)
author: Digital Western Research Laboratory; Joel Bartlett
how to get: ftp pub/DEC/Scheme-to-C/* from
description: Translates Revised**4 Scheme to C that is then compiled
by the native C compiler for the target machine. This
design results in a portable system that allows either
stand-alone Scheme programs or programs written in both
compiled and interpreted Scheme and other languages.
conformance: superset of Revised**4
+ "expansion passing style" macros
+ foreign function call capability
+ interfaces to Xlib (Ezd & Scix)
+ records
reference: send Subject "help" to [email protected]
for technical report. Other documentation in
Scheme-to-C directory on gatekeeper.
ports: VAX/ULTRIX, DECstation ULTRIX, Alpha AXP OSF/1,
Microsoft Windows 3.1, Apple Macintosh 7.1,
HP 9000/300, HP 9000/700, Sony News, SGI Iris and
Harris Nighthawk and other Unix-like m88k systems.
The 01nov91 version is also available on Amiga, SunOS,
NeXT, and Apollo systems.
status: actively developed, contributed ports welcomed
updated: 1993/03/15

language: Scheme, Tk
package: STk
version: 1.00
parts: interpreter
author: Gallesio Erick
how to get: ftp pub/STk-1.00.tar.gz from
description: A Scheme interpreter blended with Ousterhout's Tk package.
STk expresses all of Tk as scheme objects. STk includes
a CLOS/Dylan-like OO extenstion, but the extension is slow.
conformance: almost R4RS
ports: SunOS 4.1.x, Ultrix/MIPS
updated: 1993/09/06

language: Scheme
package: PC-Scheme
version: 3.03
parts: compiler, debugger, profiler, editor, libraries
author: Texas Instruments
how to get: ftp archive/pc-scheme/* from
description: Written by Texas Instruments. Runs on MS-DOS 286/386 IBM PCs
and compatibles. Includes an optimizing compiler, an
emacs-like editor, inspector, debugger, performance testing,
foreign function interface, window system and an
object-oriented subsystem. Also supports the dialect used in
Abelson and Sussman's SICP.
conformance: Revised^3 Report, also supports dialect used in SICP.
restriction: official version is $95, contact [email protected]
ports: MSDOS
updated: 1992/02/23

language: Scheme
package: PCS/Geneva
version: ?
parts: compiler, debugger, profiler, editor, libraries
author: ?
how to get: send email to [email protected]
description: PCS/Geneva is a cleaned-up version of Texas Instrument's PC
Scheme developed at the University of Geneva. The main
extensions to PC Scheme are 486 support, BGI graphics, LIM-EMS
pagination support, line editing, and assmebly-level
contact: [email protected]
updated: ?

language: Scheme
package: Gambit Scheme System
version: 2.0
parts: interpreter, compiler, linker, libraries
author: Marc Feeley
how to get: ftp pub/parallele/gambit/* from
description: Gambit is an optimizing Scheme compiler/system. The
Macintosh port can run with Toolbox and has a built-in
conformance: IEEE Scheme standard and `future' construct.
ports: 68k: unix, sun3, hp300, bbn gp100, NeXT, Macintosh
updated: ?

language: Scheme
package: Elk (Extension Language Kit)
version: 2.1
parts: interpreter, libraries
author: Oliver Laumann , Carsten Bormann

how to get: ftp pub/elk/elk-2.1.tar.Z from
N.America: ftp contrib/elk-2.1.tar.Z from
description: Elk is a Scheme interpreter designed to be used as a
general extension language.
+ interfaces to Xlib, Xt, and various widget sets.
+ dynamic loading of extensions
+ almost all artificial limitations removed
+ generational/incremental garbage collector
conformance: Mostly R3RS compatable.
ports: unix, ultrix, vax, sun3, sun4, 68k, i386, mips, ibm rt,
rs6000, hp700, sgi, sony, DOS (gcc+DJGPP or go32)
updated: 1992/11/30

language: Scheme
package: ezd - easy drawing for programs on X displays
version: 15mar93
parts: interpreter/server
author: ?
how to get: ftp pub/DEC/ezd/* from
description: Ezd is a graphics server that sits between an application
program and the X server and allows both existing and new
programs easy access to structured graphics. Ezd users have
been able to have their programs produce interactive drawings
within hours of reading the man page. Structured graphics:
application defined graphical objects are ordered into drawings
by the application. Loose coupling to the application
program: unlike most X tools, ezd does not require any event
handling by the application. The ezd server mantains window
contents. When an event occurs on such an object, an
application supplied Scheme expression is evaluated.
contact: Joel Bartlett ?
updated: 1993/03/10

language: Scheme
package: XScheme
version: 0.28
parts: ?
author: David Betz
how to get: ftp pub/scheme/* from
description: ?
discussion: comp.lang.lisp.x
contact: ?
updated: 1992/02/02

language: Scheme
package: Fools' Lisp
version: 1.3.2
parts: ?
author: Jonathan Lee
how to get: ftp src/local/fools.tar.Z from
description: a small Scheme interpreter that is R4RS conformant.
ports: Sun-3, Sun-4, Decstation, Vax (ultrix), Sequent, Apollo
updated: 1991/10/31

language: Scheme
package: Scheme88
version: ?
parts: ?
author: ?
how to get: ftp pub/scheme/* from
description: ?
contact: ?
updated: ?

language: Scheme
package: UMB Scheme
version: ?
parts: ?, editor, debugger
author: William Campbell
how to get: ftp pub/scheme/* from
description: ?
conformance: R4RS Scheme
ports: ?
updated: ?

language: Scheme
package: PseudoScheme
version: 2.8
parts: translator(Common Lisp)
author: Jonathan Rees
how to get: ?
description: ?
conformance: R3RS except call/cc.
requires: Common Lisp
ports: Lucid, Symbolics CL, VAX Lisp, Explorer CL
announcements: [email protected]
updated: ?

language: Scheme
package: SOS (Scheme Object System)
version: ?
author: Chris Hanson ?
parts: ?
how to get: ftp archive/cph/sos.tar.gz from
description: ?
update: ?

language: Scheme
package: Similix
version: 5.0
parts: partial evaulator, debugger
author: Anders Bondorf
how to get: ftp pub/diku/dists/Similix.tar.Z from
description: Similix is an autoprojector (self-applicable partial
evaluator) for a higher order subset of the strict functional
language Scheme. Similix handles programs with user defined
primitive abstract data type operators which may process
global variables (such as input/output operators).
conformance: extension of large subset of R4RS Scheme.
requires: Scheme
ports: Scm, Chez Scheme
portability: high
contact: Anders Bondorf
updated: 1993/05/18

language: Scheme
package: syntax-case
version: 2.1
parts: macro system, documentation
author: R. Kent Dybvig
how to get: ftp pub/scheme/syntax-case.tar.Z from
Macintosh: /pub/mac/gambit/ from
description: We have designed and implemented a macro system that is
vastly superior to the low-level system described in
the Revised^4 Report; in fact, it essentially
eliminates the low level altogether. We also believe
it to be superior to the other proposed low-level
systems as well, but each of you can judge that for
yourself. We have accomplished this by "lowering the
level" of the high-level system slightly, making
pattern variables ordinary identifiers with essentially
the same status as lexical variable names and macro
keywords, and by making "syntax" recognize and handle
references to pattern variables.
reference: + Robert Hieb, R. Kent Dybvig, and Carl Bruggeman "Syntactic
Abstraction in Scheme", IUCS TR #355, 6/92 (revised 7/3/92)
+ R. Kent Dybvig, "Writing Hygienic Macros in Scheme with
Syntax-Case", IUCS TR #356, 6/92 (revised 7/3/92).
ports: Chez Scheme, Mac port runs under MacGambit 2.0
updated: 1992/07/06

language: Scheme
package: x-scm
version: ?
parts: ?
author: Larry Campbell
how to get: alt.sources archive
description: x-scm is a bolt-on accessory for the "scm" Scheme interpreter
that provides a handy environment for building Motif and
OpenLook applications. (There is some support as well for raw
Xlib applications, but not enough yet to be useful.)
requires: scm, X
ports: ?
updated: 1992/08/10

language: Scheme, Prolog
package: "Paradigms of AI Programming"
version: ?
parts: book with interpreters and compilers in Common Lisp
author: Peter Norvig
how to get: bookstore, and ftp pub/norvig/* from
description: ?
updated: ?

language: Scheme
package: Psd (Portable Scheme Debugger)
version: 1.1
parts: debugger
author: Kellom{ki Pertti
how to get: ftp pub/src/languages/schemes/psd.tar.Z from
description: source code debugging from emacs
restriction: GNU GPL
requires: R4RS compliant Scheme, GNU Emacs.
ports: scm, Elk, Scheme->C
updated: 1992/10/08

language: Scheme
package: Tiny Clos
version: first release
parts: ?
author: ?
how to get: ftp pub/mops/* from
description: A core part of CLOS (Common Lisp Object System) ported to
Scheme and rebuilt using a MOP (Metaobject Protocol).
This should be interesting to those who want to use MOPs
without using a full Common Lisp or Dylan.
ports: MIT Scheme 11.74
discussion: mailing list: mops, administered by [email protected]
contact: Gregor Kiczales
updated: 1992/12/14

language: Scheme
package: VSCM
version: II Nov9
parts: runtime, bytecode compiler
author: Matthias Blume
how to get: ftp pub/scheme/imp/vscmII*.tar.Z from
de: ftp pub/scheme/yorku/imp/vscmII*
uk: ftp pub/uunet/languages/lisp/scheme/repository/imp/vscmII*
description: VSCM is a highly portable implementation of Scheme, written in
ANSI C and Scheme. Portability is achieved by exlusive use of
legal ANSI C features -- as opposed to a plethora of #ifdef's
to adjust to various system peculiarities. (Of course, in real
life ANSI C doesn't guarantee portability per se, because there
are too many systems with broken compilers or broken
features: exception and interrupt handling, executable portable memory
images, coroutines, continuations with multiple arguments
conformance: R4RS, IEEE P1178
ports: Unix, Macintosh
portability: very high
status: actively developed
discussion: comp.lang.scheme
updated: 1993/11/09

language: Scheme
package: PSI
version: pre-release
parts: interpreter, virtual machine
author: Ozan Yigit , David Keldsen, Pontus Hedman
how to get: from author
description: I am looking for a few interested language hackers to play with
and comment on a scheme interpreter. I would prefer those who
have been hacking portable [non-scheme] interpreters for many
years. The interpreter is PSI, a portable scheme interpreter
that includes a simple dag compiler and a virtual machine. It
can be used as an integrated extension interpreter in other
systems, allows for easy addition of new primitives, and it
embodies some other interesting ideas. There are some unique[2]
code debug/trace facilities, as well, acceptable performance
resulting from a fairly straight-forward implementation.
Continuations are fully and portably supported, and perform
well. PSI is based on the simple compilers/vm in Kent
Dbyvig's thesis.
conformance: R^4RS compatible with a number of useful extensions.
updated: 1993/02/19

language: Scheme
package: Bigloo
version: 1.4
parts: interpreter, compiler(->ANSI C), runtime
author: Manuel Serrano
how to get: ftp INRIA/Projects/icsla/Implementations/bigl* from
description: The main goal of Bigloo is to deliver small and fast stand
alone applications.
features: Optimization supported.
conformance: IEEE Scheme standard with some extensions for regex handling
ports: sun, sony news, sgi, linux, hp-ux
portability: very high for unix systems
updated: 1993/09/08

language: Scheme
package: Scheme84
version: ?
parts: ?
author: ?
how to get: Send a tape w/return postage to: Scheme84 Distribution /
Nancy Garrett / c/o Dan Friedman / Department of Computer
Science / Indiana University / Bloomington, Indiana. Call
description: ?
requires: VAX, Franz Lisp, VMS or BSD
contact: [email protected]
updated: ?

language: Scheme
iref: (Pascal) Tim Budd's C++ implementation of Kamin's interpreters

Wirth family languages
category: Wirth family languages
description: These are the langauges that were either designed by Nikolas
Wirth are are descended from them. [if you think these should
be folded in to the compiled, imperative langauges section, let
me know --ed.]
lref: IFP

language: CLU
iref: (Pascal) Tim Budd's C++ implementation of Kamin's interpreters

language: Modula-2, Pascal
package: m2
version: ? 7/2/92 ?
parts: ? compiler ?
author: Michael L. Powell. See description below.
how to get: ftp pub/DEC/Modula-2/m2.tar.Z from
description: A modula-2 compiler for VAX and MIPS. A Pascal
compiler for VAX is also included. The Pascal compiler
accepts a language that is almost identical to Berkeley
Pascal. It was originally designed and built by Michael L.
Powell, in 1984. Joel McCormack made it faster, fixed lots of
bugs, and swiped/wrote a User's Manual. Len Lattanzi ported it
to the MIPS.
conformance: extensions:
+ foreign function and data interface
+ dynamic array variables
+ subarray parameters
+ multi-dimensional open array parameters
+ inline proceedures
+ longfloat type
+ type-checked interface to C library I/O routines
restriction: must pass changes back to Digital
ports: vax (ultrix, bsd), mips (ultrix)
contact: [email protected]
updated: 1992/07/06

language: Modula-2
package: Ulm's Modula-2 System
version: 2.2.1
parts: compiler, library, tools
author: Andreas Borchert
compiler derived from the ETHZ compiler for the Lilith system
how to get: ftp pub/soft/modula/ulm/sun3/modula-2.2.1.tar.Z from Please get the READ_ME too.
description: ?
conformance: PIM3
restriction: commercial use requires licence;
compiler sources available by separate licence agreement
(licence fee is not required if it is possible to
transfer the sources across the network)
requires: gas-1.36 (to be found in the same directory)
ports: Sun3, Nixdorf Targon/31, Concurrent 3200 Series
contact: Andreas Borchert
updated: 1992/03/02

language: Modula-2
package: mtc
version: ?
parts: translator(C)
author: ?
how to get: ftp soft/unixtools/compilerbau/mtc.tar.Z
description: ?
ports: ?
updated: 1991/10/25

language: Modula-2, Modula-3
package: M2toM3
version: 1.01
parts: translator(Modula-2 -> Modula-3), libraries
author: Peter Klein
how to get: ftp pub/Modula3 from
description: M2toM3 is a simple Modula-2 to Modula-3 translator which
covers most of the syntactic differences between those
languages. No context sensitive analysis is done, so WITH
statements, local modules, enumeration type literals and
variant RECORDS have to be dealt with by hand.
Part of the SUN Modula 2 library is emulated by the Modula 3
requires: a Modula-3 system
updated: 1992/12

language: pm2
package: PRAM emulator and parallel modula-2 compiler ??
version: ?
parts: compiler, emulator
author: ?
how to get: ftp pub/pram/* from
description: A software emulator for parallel random access machine (PRAM)
and a parallel modula-2 compiler for the emulator. A PRAM
consists of P processors, an unbounded shared memory, and a
common clock. Each processor is a random access machine (RAM)
consisting of R registers, a program counter, and a read-only
signature register. Each RAM has an identical program, but the
RAMs can branch to different parts of the program. The RAMs
execute the program synchronously one instruction in one clock
pm2 programming language is Modula-2/Pascal mixture having
extensions for parallel execution in a PRAM. Parallelism is
expressed by pardo-loop- structure. Additional features include
privat/shared variables, two synchronization strategies, load
balancing and parallel dynamic memory allocation.
contact: Simo Juvaste
updated: 1993/02/17

language: Modula-3
package: SRC Modula-3
version: 2.11
parts: compiler(->C), runtime, library, documentation
author: ?
how to get: ftp pub/DEC/Modula-3/m3-*.tar.Z from
MS-DOS: ftp pub/DEC/Modula-3/contrib/m3pc* from
description: The goal of Modula-3 is to be as simple and safe as it
can be while meeting the needs of modern systems
programmers. Instead of exploring new features, we
studied the features of the Modula family of languages
that have proven themselves in practice and tried to
simplify them into a harmonious language. We found
that most of the successful features were aimed at one
of two main goals: greater robustness, and a simpler,
more systematic type system. Modula-3 retains one of
Modula-2's most successful features, the provision for
explicit interfaces between modules. It adds objects
and classes, exception handling, garbage collection,
lightweight processes (or threads), and the isolation
of unsafe features.
conformance: implements the language defined in SPwM3.
ports: i386/AIX 68020/DomainOS Acorn/RISCiX MIPS/Ultrix 68020/HP-UX
RS6000/AIX IBMRT/4.3 68000/NextStep i860/SVR4 SPARC/SunOS
68020/SunOS sun386/SunOS Multimax/4.3 VAX/Ultrix
discussion: comp.lang.modula3
contact: Bill Kalsow
updated: 1992/02/09

language: Oberon2
package: Oberon-2 LEX/YACC definition
version: 1.4
parts: parser(yacc), scanner(lex)
author: Stephen J Bevan
how to get: ftp pub/oberon/tools/o2lexyac.tar.Z from
or mail [email protected] with Subject "b-server-request~
and body "send oberon/oberon_2_p_v1.4.shar"
description: A LEX and YACC grammar for Oberon 2 based on the one given
in the listed reference.
reference: The Programming Language Oberon-2
H. M\"{o}ssenb\"{o}ck, N. Wirth
Institut f\"{u}r Computersysteme, ETH Z\"{u}rich
January 1992
ftp Oberon/Docu/ from
restriction: Portions of the source under copyright by U. Manchester.
status: un-officially supported
updated: 1992/07/06

language: Oberon
package: Ceres workstation Oberon System
version: ?
parts: compiler
author: ?
how to get: ftp Oberon/? from
description: file format is Oberon, binary header
status: The sources to the various _full_ implementations are indeed
not available but the source to most of the complete Ceres
workstation Oberon System, including NS32032 code generator but
less low level system specific is available. This includes the
complete Oberon compiler written in Oberon.
updated: ?

language: Parallaxis
package: parallaxis
version: 2.0
parts: ?, simulator, x-based profiler
author: ?
how to get: ftp pub/parallaxis from
description: Parallaxis is a procedural programming language based
on Modula-2, but extended for data parallel (SIMD) programming.
The main approach for machine independent parallel programming
is to include a description of the virtual parallel machine
with each parallel algorithm.
ports: MP-1, CM-2, Sun-3, Sun-4, DECstation, HP 700, RS/6000
contact: ? Thomas Braunl ?
updated: 1992/10/23

language: Pascal
package: p2c
version: 1.20
parts: translator(Pascal->C)
author: Dave Gillespie
how to get: ftp ? from
description: ?
conformance: supports ANSI/ISO standard Pascal as well as substantial
subsets of HP, Turbo, VAX, and many other Pascal dialects.
ports: ?
updated: 1990/04/13

language: Pascal
package: Pascal P4 compiler and interpreter
version: ? 1
parts: compiler, assembler/interpreter, documentation
author: Urs Ammann, Kesav Nori, Christian Jacobi
how to get: ftp pascal/* from
description: A compiler for Pascal written in Pascal, producing an
intermediate code, with an assembler and interpreter
for the code.
reference: Pascal Implementation, by Steven Pemberton and Martin
Daniels, published by Ellis Horwood, Chichester, UK
(an imprint of Prentice Hall), ISBN: 0-13-653-0311.
Also available in Japanese.
contact: [email protected]
updated: 1993/07/05

language: Pascal
package: ? iso_pascal ?
version: ?
parts: scanner(lex), parser(yacc)
author: ?
how to get: comp.sources.unix archive volume 13
description: ?
updated: ?

language: Pascal
package: ? frontend ?
version: Alpha
parts: frontend (lexer, parser, semantic analysis)
author: Willem Jan Withagen
how to get: ftp pub/src/pascal/front* from
description: a new version of the PASCAL frontend using the Cocktail
compiler tools.
updated: 1993/02/24

language: Pascal
package: ptc
version: ?
parts: translator(Pascal->C)
author: ?
how to get: ftp languages/ptc from ? (use archie?)
description: ?
contact: ?
updated: ?

language: Turbo Pascal, Turbo C
package: tptc
version: ?
parts: translator(Turbo Pascal->Turbo C)
author: ?
how to get: ftp mirrors/msdos/turbopas/tptc17*.zip from
description: (It does come with full source and a student recently used it
as a start for a language that included stacks and queues as a
built-in data type.
contact: ?
updated: ?

language: Pascal
iref: (Pascal) Tim Budd's C++ implementation of Kamin's interpreters

logic programming languages
category: logic programming languages
description: langauges designed to manipulate logic predicates. Often
used to build expert systems

language: BABYLON (Prolog variant???)
package: BABYLON
version: ?
parts: development environment
author: ?
how to get: ftp gmd/ai-research/Software/* from
description: BABYLON is a development environment for expert systems. It
includes frames, constraints, a prolog-like logic formalism,
and a description language for diagnostic applications.
requires: Common Lisp
ports: many ?
contact: ?
updated: ?

language: Goedel
package: Goedel
version: 1.3
parts: book, compiler, user manual, system modules, example programs
author: Jiwei Wang
how to get: ftp pub/logic-prgm/goedel/? from
or ftp goedel/? from
description: An implementation of a significant subset of Goedel. Goedel is
a declarative, general-purpose strongly-typed logic programming
language. The type system is based on many-sorted logic with
parametric polymorphism. Modularity is supported, as well as
infinite precision arithmetic, limited constraint satisfaction,
and finite sets.
requires: SICStus Prolog version 2.1 #6 (or later). Run time system for
SPARCstation provided, though.
contact: [email protected]
status: completing development over the next year.
updated: 1993/06/30

language: Janus
package: qdjanus
version: 1.3
parts: translator(prolog)
author: Saumya Debray
how to get: ftp janus/qdjanus/* from
description: janus is a janus-to-prolog compiler meant to be used
with Sicstus Prolog
conformance: mostly compliant with "Programming in Janus" by
Saraswat, Kahn, and Levy.
updated: 1992/05/18

language: Janus
package: jc
version: 1.50 alpha
parts: compiler(->C)
author: David Gudeman
how to get: ftp janus/jc/* from
description: jc is a janus-to-C compiler (considerably faster than qdjanus).
jc is a _sequential_ implementation of a _concurrent_ language.
bugs: [email protected]
ports: sun-4, sun-3, Sequent Symmetry
status: jc is an experimental system, undergoing rapid development.
It is in alpha release currently.
discussion: [email protected]
updated: 1992/06/09

language: LIFE (Logic, Inheritance, Functions, and Equations)
package: Wild_LIFE
version: first-release
parts: interpreter, manual, tests, libraries, examples
author: Paradise Project, DEC Paris Research Laboratory.
how to get: ftp pub/plan/Life.tar.Z from
description: LIFE is an experimental programming language with a
powerful facility for structured type inheritance. It
reconciles styles from functional programming, logic
programming, and object-oriented programming. LIFE
implements a constraint logic programming language with
equality (unification) and entailment (matching)
constraints over order-sorted feature terms. The
Wild_LIFE interpreter has a comfortable user interface
with incremental query extension ability. It contains
an extensive set of built-in operations as well as an X
Windows interface.
conformance: semantic superset of LOGIN and LeFun. Syntax is similar
to prolog.
bugs: [email protected]
ports: MIPS-Ultrix
portability: good in theory
discussion: [email protected]
contact: Peter Van Roy
updated: 1992/12/14

language: Lolli (logic programming)
package: Lolli
version: ?
parts: ?
author: ? Josh Hodas ?
how to get: ftp pub/Lolli/Lolli-07.tar.Z. from
description: Lolli is an interpreter for logic programming based
on linear logic principles.
Lolli can be viewed as a refinement of the the
Hereditary Harrop formulas of Lambda-Prolog. All the
operators (though not the higher order unification) of
Lambda-Prolog are supported, but with the addition of
linear variations. Thus a Lolli program distinguishes
between clauses which can be used as many, or as few,
times as desired, and those that must be used exactly once.
requires: ML
updated: 1992/11/08

language: Parlog
package: SPM System (Sequential Parlog Machine)
version: ?
parts: ?, documenation
author: ?
how to get: ? ftp lang/Parlog.tar.Z from
description: a logic programming language ?
reference: Steve Gregory, "Parallel Logic Programming in PARLOG",
Addison-Wesely, UK, 1987
restriction: ? no source code ?
ports: Sun-3 ?
updated: ??

language: Prolog
package: SB-Prolog
version: 3.1 ?
parts: ?
author: interpreter
how to get: ftp pub/sbprolog from
description: ?
restriction: GNU General Public License
contact: ? [email protected] ?
updated: ?

language: Prolog
package: XSB
version: 1.2
parts: interpreter, preprocessor(HiLog), documentation
author: XSB research group / SUNY at Stony Brook
how to get: ftp pub/XSB/XSB.tar.Z from (
description: XSB extends the standard functionality of Prolog (being a
descendant of PSB- and SB-Prolog) to include implementations of
OLDT (tabling) and HiLog terms. OLDT resolution is extremely
useful for recursive query computation, allowing programs to
terminate correctly in many cases where Prolog does not. HiLog
supports a type of higher-order programming in which predicate
symbols can be variable or structured. This allows unification
to be performed on the predicate symbols themselves in addition
to the arguments of the predicates. Of course, Tabling and
HiLog can be used together.
ports: Sun, Solaris, NeXT, Linux, 386 BSD, IRIX, HP-UX
portability: Generally to 32-bit machines.
contact: [email protected]
updated: 1993/07/28

language: Prolog
package: Modular SB-Prolog
version: ?
parts: interpreter
author: ?
how to get: ftp pub/dts/mod-prolog.tar.Z from
description: SB-Prolog version 3.1 plus modules
restriction: GNU General Public License
ports: Sparc
contact: Brian Paxton
updated: ?

language: ALF [prolog variant]
package: alf (Algebraic Logic Functional programming language)
version: ?
parts: runtime, compiler(Warren Abstract Machine)
author: Rudolf Opalla
how to get: ftp pub/programming/languages/LogicFunctional from
description: ALF is a language which combines functional and
logic programming techniques. The foundation of
ALF is Horn clause logic with equality which consists
of predicates and Horn clauses for logic programming,
and functions and equations for functional programming.
Since ALF is an integration of both programming
paradigms, any functional expression can be used
in a goal literal and arbitrary predicates can
occur in conditions of equations.
updated: 1992/10/08

language: CLP (Constraint Logic Programming language) [Prolog variant]
package: CLP(R)
version: 1.2
parts: runtime, compiler(byte-code), contstraint solver
author: IBM
how to get: mail to Joxan Jaffar
description: CLP(R) is a constraint logic programming language
with real-arithmetic constraints. The implementation
contains a built-in constraint solver which deals
with linear arithmetic and contains a mechanism
for delaying nonlinear constraints until they become
linear. Since CLP(R) subsumes PROLOG, the system
is also usable as a general-purpose logic programming
language. There are also powerful facilities for
meta programming with constraints. Significant
CLP(R) applications have been published in diverse
areas such as molecular biology, finance, physical
modelling, etc. We are distributing CLP(R) in order
to help widen the use of constraint programming, and
to solicit feedback on the system
restriction: free for academic and research purposes only
ports: unix, msdos, OS/2
contact: Roland Yap , Joxan Jaffar
updated: 1992/10/14

language: Prolog (variant)
package: Aditi
version: Beta Release
parts: interpreter, database
author: Machine Intelligence Project, Univ. of Melbourne, Australia
how to get: send email to [email protected]
description: The Aditi Deductive Database System is a multi-user
deductive database system. It supports base relations
defined by facts (relations in the sense of relational
databases) and derived relations defined by rules that
specify how to compute new information from old
information. Both base relations and the rules
defining derived relations are stored on disk and are
accessed as required during query evaluation. The
rules defining derived relations are expressed in a
Prolog-like language, which is also used for expressing
queries. Aditi supports the full structured data
capability of Prolog. Base relations can store
arbitrarily nested terms, for example arbitrary length
lists, and rules can directly manipulate such terms.
Base relations can be indexed with B-trees or
multi-level signature files. Users can access the
system through a Motif-based query and database
administration tool, or through a command line
interface. There is also in interface that allows
NU-Prolog programs to access Aditi in a transparent
manner. Proper transaction processing is not supported
in this release.
ports: Sparc/SunOS4.1.2 Mips/Irix4.0
updated: 1992/12/17

language: Lambda-Prolog
package: Prolog/Mali (PM)
version: ? 6/23/92 ?
parts: compiler(->C), linker, libraries, runtime, documentation
author: Pascal Brisset
how to get: ftp pm/* from
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.
reference: + 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
ports: unix
discussion: [email protected]
contact: [email protected]
updated: 1992/07/06

language: Prolog (variant)
package: CORAL
version: ?
parts: interpreter, interface(C++), documentation
author: ?
how to get: ftp ? from
description: The CORAL deductive database/logic programming system was
developed at the University of Wisconsin-Madison. The CORAL
declarative language is based on Horn-clause rules with
extensions like SQL's group-by and aggregation operators, and
uses a Prolog-like syntax. * Many evaluation techniques are
supported, including bottom-up fixpoint evaluation and top-down
backtracking. * A module mechanism is available. Modules are
separately compiled; different evaluation methods can be used
in different modules within a single program. * Disk-resident
data is supported via an interface to the Exodus storage
manager. * There is an on-line help facility
requires: AT&T C++ 2.0 (G++ soon)
ports: Decstation, Sun4
updated: 1993/01/29

language: Prolog
package: BinProlog
version: 1.71
parts: interpreter?, documentation
author: ?
how to get: ftp BinProlog/* from
description: BinProlog 1.71 is at this time probably the
fastest freely available C-emulated Prolog.
ports: IBM-PC/386, Sun-4, Sun-3, NeXT
contact: Paul Tarau
updated: 1993/04/03

language: Prolog
package: SWI-Prolog
version: 1.7.2
parts: ?
author: Jan Wielemaker
how to get: ftp pub/SWI-Prolog from
OS/2: ftp pub/toolw/SWI/* from
description: ?
conformance: superset
features: "very nice Ed. style prolog, best free one I've seen"
restriction: GNU General Public License
ports: Sun-4, Sun-3 (complete); Linux, DEC MIPS (done but
incomplete, support needed); RS6000, PS2/AIX, Atari ST,
Gould PN, NeXT, VAX, HP-UX (known problems, support needed);
MSDOS (status unknown), OS/2
status: activly developed
discussion: [email protected]
contact: (OS/2) Andreas Toenne
updated: 1993/07/23

language: Prolog
package: Frolic
version: ?
parts: ?
author: ?
how to get: ftp pub/frolic.tar.Z from
description: ?
requires: Common Lisp
contact: ?
updated: 1991/11/23

language: Prolog
package: ? Prolog package from the University of Calgary ?
version: ?
parts: ?
author: ?
how to get: ftp pub/prolog1.1/prolog11.tar.Z from
description: + delayed goals
+ interval arithmetic
requires: Scheme
portability: relies on continuations
contact: ?
updated: ?

language: Prolog
package: ? slog ?
version: ?
parts: translator(Prolog->Scheme)
author: [email protected]
how to get: ftp public/ from
description: macros expand syntax for clauses, elations etc, into Scheme
ports: Chez Scheme
portability: reliese on continuations
updated: ?

language: Prolog
package: LM-PROLOG
version: ?
parts: ?
author: Ken Kahn and Mats Carlsson
how to get: ftp archives/lm-prolog.tar.Z from
description: ?
requires: ZetaLisp
contact: ?
updated: ?

language: Prolog
package: Open Prolog
version: ?
parts: ?
author: ?
how to get: ftp languages/open-prolog/* from
description: ?
ports: Macintosh
contact: Michael Brady
updated: ?

language: Prolog
package: UPMAIL Tricia Prolog
version: ?
parts: ?
author: ?
how to get: ftp pub/Tricia/README from
description: ?
updated: ?

language: Prolog
package: ?; ? (two systems)
version: ?; ?
parts: ?; ?
author: ?
how to get: ftp ai.prolog/Contents from
description: ?; ?
ports: MSDOS, Macintosh; MSDOS
contact: Michael Covington
updated: ?; ?

language: Prolog
package: XWIP (X Window Interface for Prolog)
version: 0.6
parts: library
author: ?
how to get: ftp contrib/xwip-0.6.tar.Z from
description: It is a package for Prologs following the Quintus foreign
function interface (such as SICStus). It provides a (low-level)
Xlib style interface to X. The current version was developed
and tested on SICStus 0.7 and MIT X11 R5 under SunOS 4.1.1.
portability: It is adaptable to many other Unix configurations.
contact: [email protected]
updated: 1993/02/25

language: Prolog
package: PI
version: ?
parts: library
author: ?
how to get: ftp pub/prolog/ytoolkit.tar.Z from
description: PI is a interface between Prolog applications and XWindows that
aims to be independent from the Prolog engine, provided that it
has a Quintus foreign function interface (such as SICStus,
YAP). It is mostly written in Prolog and is divided in two
libraries: Edipo - the lower level interface to the Xlib
functions; and Ytoolkit - the higher level user interface
contact: Ze' Paulo Leal
updated: 1993/03/02

language: Prolog
package: ISO draft standard
version: ? (What year??)
parts: language definition
author: ?
how to get: ftp ? from
description: ?
updated: 1992/07/06

language: Prolog
iref: (Pascal) Tim Budd's C++ implementation of Kamin's interpreters

concurrent, parellel, and simulation languages
category: concurrent, parellel, and simulation languages
description: This is a fairly broad category of languages. Most of the
implementations in this set are not good enough to be used in
production systems. Some are. In addition to those listed
below, see:
lref: Concurrent Clean
lref: Concurrent ML
lref: EuLisp
lref: Parallaxis
lref: Maisie
lref: micro-C++
lref: MeldC
lref: pm2

language: ABCL/1 (An object-Based Concurrent Language)
package: ABCL/1
version: ?
parts: ?
author: Akinori Yonezawa, ABCL Group now at Department of Information
Science, the University of Tokyo
how to get: ftp pub/abcl1/* from
description: Asynchronous message passing to objects.
reference: "ABCL: An Object-Oriented Concurrent System", Edited by
Akinori Yonezawa, The MIT Press, 1990, (ISBN 0-262-24029-7)
restriction: no commercial use, must return license agreement
requires: Common Lisp
contact: [email protected]
updated: 1990/05/23

language: ABCL ???
package: ABCL/R2
version: ?
parts: ?
author: [email protected], [email protected],
[email protected], [email protected]
how to get: ftp pub/abclr2/* from
description: ABCL/R2 is an object-oriented concurrent reflective language
based on Hybrid Group Architecture. As a reflective language,
an ABCL/R2 program can dynamically control its own behavior,
such as scheduling policy, from within user-program. An an
object-oriented concurrent language, this system has almost all
functions of ABCL/1.
requires: Common Lisp
updated: 1993/01/28

language: ALLOY
package: ALLOY
version: 2.0?
parts: interpreter, documentation, examples
author: Thanasis Mitsolides
how to get: ftp pub/local/alloy/* from
description: ALLOY is a higher level parallel programming language
appropriate for programming massively parallel computing
systems. It is based on a combination of ideas from
functional, object oriented and logic programming languages.
The result is a language that can directly support
functional, object oriented and logic programming styles
in a unified and controlled framework. Evaluating modes
support serial or parallel execution, eager or lazy
evaluation, non-determinism or multiple solutions etc.
ALLOY is simple as it only requires 29 primitives in all
(half of which for Object Oriented Programming support).
ports: sparc, ?
updated: 1991/06/11

language: Cellang (Cellular Automata)
package: Cellular
version: 2.0
parts: byte-code compiler, runtime, viewer
author: J Dana Eckart
how to get: comp.sources.unix, volume 26
description: A system for cellular automata programming.
updated: 1993/04/03

language: Hermes
package: IBM Watson prototype Hermes system
version: 0.8alpha patchlevel 01
parts: bytecode compiler, compiler(bytecode->C), runtime
author: Andy Lowry
how to get: ftp pub/hermes/README from
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)
updated: 1992/03/22

language: PCN
package: PCN
version: 2.0
parts: compiler?, runtime, linker, libraries, tools, debugger,
profiler, tracer
author: Ian Foster , Steve Tuecke
, and others
how to get: ftp pub/pcn/pcn_v2.0.tar.Z from
description: PCN is a parallel programming system designed to improve
the productivity of scientists and engineers using parallel
computers. It provides a simple language for specifying
concurrent algorithms, interfaces to Fortran and C, a
portable toolkit that allows applications to be developed
on a workstation or small parallel computer and run
unchanged on supercomputers, and integrated debugging and
performance analysis tools. PCN was developed at Argonne
National Laboratory and the California Institute of
Technology. It has been used to develop a wide variety of
applications, in areas such as climate modeling, fluid
dynamics, computational biology, chemistry, and circuit
ports: (workstation nets): Sun4, NeXT, RS/6000, SGI
(multicomputers): iPSC/860, Touchstone DELTA
(shared memory multiprocessors): Symmetry/Dynix
updated: 1993/02/12

language: LOOPN
package: LOOPN
version: ?
parts: compiler?, simulator
author: ?
how to get: ftp departments/computer_sci*/loopn.tar.Z from
description: I wish to announce the availability of a compiler, simulator
and associated source control for an object-oriented petri net
language called LOOPN. In LOOPN, a petri net is an extension
of coloured timed petri nets. The extension means firstly that
token types are classes. In other words, they consist of both
data fields and functions, they can be declared by inheriting
from other token types, and they can be used polymorphically.
The object-oriented extensions also mean that module or subnet
types are classes. LOOPN has been developed over a period of
about 5 years at the University of Tasmania, where it has been
used in teaching computer simulation and the modelling of
network protocols. A petri net is a directed, bipartite graph;
nodes are either places (represented by circles) or transitions
(represented by rectangles). A net is marked by placing tokens
on places. When all the places pointing to a transition (the
input places) have a token, the net may be fired by removing a
token from each input place and adding a token to each place
pointed to by the transition (the output places). Petri nets
are used to model concurrent systems, particularly in the
network protocol area.
contact: Charles Lakos
updated: 1992/12/20

language: Simula
package: Lund Simula
version: 4.07
parts: ?
author: ?
how to get: ftp misc/mac/programming/+_Simula/* from
description: ?
contact: Lund Software House AB / Box 7056 / S-22007 Lund, Sweden
updated: 1992/05/22

language: SR (Synchronizing Resources)
package: sr
version: 2.0
parts: ?, documentation, tests
author: ?
how to get: ftp sr/sr.tar.Z from
description: SR is a language for writing concurrent programs.
The main language constructs are resources and
operations. Resources encapsulate processes and
variables they share; operations provide the primary
mechanism for process interaction. SR provides a novel
integration of the mechanisms for invoking and
servicing operations. Consequently, all of local and
remote procedure call, rendezvous, message passing,
dynamic process creation, multicast, and semaphores are
reference: "The SR Programming Language: Concurrency in Practice",
by Gregory R. Andrews and Ronald A. Olsson, Benjamin/Cummings
Publishing Company, 1993, ISBN 0-8053-0088-0
ports: Sun-4, Sun-3, Decstation, SGI Iris, HP PA, HP 9000/300,
NeXT, Sequent Symmetry, DG AViiON, RS/6000, Multimax,
Apollo, and others.
discussion: [email protected]
contact: [email protected]
updated: 1992/09/01

language: UNITY
package: MasPar Unity
version: 1.0
parts: translator(UNITY->MPL), documentation
author: Martin Huber, University of Karlsruhe, Germany
how to get: ftp pub/maspar/maspar_unity* from
description: ?
contact: Lutz Prechelt
updated: ?

language: UNITY
package: HOL-UNITY
version: 2.1
parts: verification tool
author: ?
how to get: ?
description: ?
contact: Flemming Andersen ?
updated: ?

Forth family languages
category: Forth family languages
description: These are the stack-based postfix languages.
lref: Postscript
iref: (mc6809) 6809, E-Forth

language: Forth
package: TILE Forth
version: 2.1
parts: interpreter
author: Mikael Patel
how to get: ftp tile-forth-2.1.tar.Z from a GNU archive site
description: Forth interpreter in C; many Forth libraries
conformance: Forth83
restriction: shareware/GPL
ports: unix
updated: 1991/11/13

language: Forth
package: cforth
version: ?
parts: interpreter
author: ?
how to get: comp.sources.unix archive volume 1
description: ?
updated: ?

language: Forth
package: pfe (Portable Forth Environment)
version: 0.8.0
parts: ?
author: Dirk Zoller
how to get: ftp pub/unix/languages/pfe* from [email protected]
description: A Forth development system that tries to be correct,
complete, portable, usable and simple. It doesn't try too
hard to be fast.
conformance: all dpANS word sets
ports: Linux, RS/6000, HP-UX
portability: high
updated: 1993/08/11

language: Forth
package: F68K
version: ?
parts: ?
author: ?
how to get: ftp atari/Languages/f68k.* from
description: a portable Forth system for Motorola 68k computers
ports: Atari ST/TT, Amiga, Sinclair QL and OS9
portability: very high for 68000 based systems
contact: Joerg Plewe
updated: 1992/12/14

language: Forth
package: 51forth
version: ?
parts: ?
author: Scott Gehmlich
how to get: ftp giovanni/ from []
description: source and documentation for a 8051 subroutine-
threaded forth
contact: ?
updated: 1993/04/03

language: Forth?
package: Mops
version: 2.3
parts: ?
author: ?
how to get: ftp pub/Yerk/? from
description: ???
updated: 1993/03/22

language: Kevo (Forth-like)
package: kevo
version: 0.9b6
parts: interpreter, demo programs, user's guide, papers
author: Antero Taivalsaari
how to get: ftp /pub/kevo/* from
description: Kevo is a prototype-based object-oriented language for
Macintosh Kevo features a unique prototype-based object model
(which is based neither on classes nor Self-style delegation),
multitasking (both preemptive and cooperative), dynamic memory
management, and an icon-based object browser and editor modeled
loosely after Mac Finder. Kevo has been built around a portable
threaded code interpreter, and is syntactically a close
derivative of Forth.
ports: Macintosh
contact: [email protected]
updated: 1993/05/18

language: Yerk
package: Yerk
version: 3.62
parts: ?
author: ?
how to get: ftp pub/Yerk/? from
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.
updated: ?

compiler generators and related tools
category: compiler generators and related tools
description: Yacc, and the rest of its family

language: ABC
package: Grammar analysis tools
version: 1
parts: analysis tools, samples, documentation
author: Steven Pemberton
how to get: ftp programming/languages/abc/examples/grammar/*
from or
description: Grammar analysis program written in ABC (q.v.) for
answering such questions as "what are the start
symbols of all rules", "what symbols can follow this
symbol", "which rules are left recursive", and so on.
Includes a grammar of ISO Pascal.
reference: Ftp archive includes an article explaining the package.
ports: unix, MSDOS, atari, mac
contact: [email protected]
updated: 1993/07/05

language: ? attribute grammar ?
package: Alpha
version: pre-release
parts: semantic-analysis generator?, documentation(german)
author: Andreas Koschinsky
how to get: from author
description: I have written a compiler generator. The generator is called
Alpha and uses attribute grammars as specification calculus.
Alpha is the result of a thesis at Technische Universitaet
Berlin. I am looking for someone who would like to test and use
Alpha. Alpha generates compilers from a compiler
specification. This specification describes a compiler in
terminology of attribute grammars. Parser and Scanner are
generated by means of Bison and Flex. Alpha generates an
ASE-evaluator (Jazayeri and Walter). The documentation is in
german since it is a thesis at a german university.
updated: 1993/02/16

language: attribute-grammar extension of Yacc and Lex
package: Ox
version: G1.01
parts: Yacc/Lex/C preprocessor, tutorial, reference manual,
man page, examples, Ox-ready parsers (C, C++, Pascal, Ada,
author: Kurt Bischoff
how to get: ftp pub/ox/* from
description: Ox generalizes the function of Yacc in the way that attribute
grammars generalize context-free grammars. Ordinary Yacc and
Lex specifications may be augmented with definitions of
synthesized and inherited attributes written in C syntax. Ox
checks these specifications for consistency and completeness,
and generates from them a program that builds and decorates
attributed parse trees. Ox accepts a most general class of
attribute grammars. The user may specify postdecoration
traversals for easy ordering of side effects such as code
generation. Ox handles the tedious and error-prone details of
writing code for parse-tree management, so its use eases
problems of security and maintainability associated with that
aspect of translator development. Ox is a preprocessor,
and extends the syntax and semantics of Yacc, Lex, and C.
reference: Most compiler textbooks have descriptions of attribute
features: LALR(1), semantic-analyzer generation.
bugs: none known. Report bugs to [email protected].
restriction: Use of Ox is free. Ox-generated code is the property of
the Ox user.
requires: yacc, lex
ports: every kind of Unix
contact: [email protected]
updated: 1993/11/14

language: BNF (Extended)
package: Gray
version: 3
parts: parser generator(Forth)
author: Martin Anton Ertl
how to get: author; version 2 is on various ftp sites
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: 1992/05/22

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: 1986/09/23

language: BNF ??
package: FMQ
version: ?
parts: paser generator w/error corrector generator
author: Jon Mauney
how to get: ftp from
description: ?
status: ?
contact: ?
updated: 1990/03/31

language: BNF ??
package: ATS (Attribute Translation System)
version: ?
parts: ?
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
status: ?
contact: ? (suggested: Dave Bocking )
updated: 1988/11/29

language: BNF (Extended)
package: PCCTS (Purdue Compiler-Construction Tool Set)
version: 1.10
parts: scanner generator, parser generator (LL(k)), documentation,
author: Terence J. Parr , Will E. Cohen
, Henry G. Dietz
how to get: ftp pub/pccts/1.10 from
UK: ftp computing/programming/languages/tools/pccts/*
Macintosh: ftp pub/mac/* from
description: PCCTS is similar to a highly integrated version of YACC
and LEX; where ANTLR (ANother Tool for Language
Recognition) corresponds to YACC and DLG (DFA-based
Lexical analyzer Generator) functions like LEX.
However, PCCTS has many additional features which make
it easier to use for a wide range of translation
problems. PCCTS grammars contain specifications for
lexical and syntactic analysis with selective backtracking
("infinite lookahead"), semantic predicates, intermediate-form
construction and error reporting. Rules may employ Extended
BNF (EBNF) grammar constructs and may define parameters,
return values and local variables. Languages described in
PCCTS are recognized via LL(k) parsers constructed in pure,
human-readable, C code. Selective backtracking is available
to handle non-LL(k) constructs. PCCTS parsers may be compiled
with C++.
ports: Unix, DOS, OS/2, Macintosh
portability: very high
discussion: send mail with a body of "subscribe pccts-users your_name"
to [email protected]
contact: Terence J. Parr
Roberto Avanzi ([email protected]) (for the Mac port)
updated: 1993/09/14

language: BNF (very extended), yacc
package: PRE-CC Xtended
version: 2.30
parts: library, parser generator (LL(oo)), translator(yacc->)
author: Peter Breuer
how to get: ftp pub/Programs/preccx230* from
(later versions available by subscription)
description: PRECCX is an infinite-lookahead compiler compiler for context
dependent grammars. The generated code is ANSI C.
Specification scripts are in very EBNF with inherited and
synthetic attributes allowed. Scripts can be compiled in
separate modules, and linked together later. Meta-production
rules allowed. The technology is essentially LL(oo) with
optimizations. A converter for yacc scripts is available.
reference: "The PRECC Compiler-Compiler" by P.T. Breuer and J.P. Bowen.
In E. Davies and A. Findlay (eds.),
Proc. UKUUG/SUKUG Joint New Year 1993 Conference,
St. Cross Centre, Oxford, UK, 6-8 January 1993,
ISBN 1 873611 06 4 (UKUUG), 0 9520700 0 6 (SUKUG)
UKUUG/SUKUG Secretariat, Owles Hall, Buntingford,
Herts SG9 9PL, UK, pp 167-182, 1993.
ports: unix, MS-DOS
contact: Peter Breuer ,
Jonathan Bowen
updated: 1992/08/25

language: BNF ??
package: LLGen
version: ?
parts: parser generator
author: ? Fischer and LeBlanc ?
how to get: ? ftp from ?
description: LL(1) parser generator
conformance: subset of FMQ
reference: "Crafting A Compiler", by Fischer and LeBlanc
status: ?
contact: ?
updated: 1990/03/31

language: BNF ??
package: wacco
version: ?
parts: parser generator
author: ?
how to get: comp.sources.misc volume ?
description: LL(?) parser generator
contact: ?
updated: ?

language: BNF (Extended), BNF (yacc), Modula-2
package: GMD Toolbox for Compiler Construction (aka Cocktail)
version: 9209
parts: parser generator (LALR -> C, Modula-2), documentation,
parser generator (LL(1) -> C, Modula-2), tests,
scanner generator (-> C, Modula-2), tests
translator (Extended BNF -> BNF), translator (Modula-2 -> C),
translator (BNF (yacc) -> Extended BNF), examples
abstract syntax tree generator, attribute-evaluator generator,
code generator
author: ?
how to get: ftp pub/cocktail/dos from
description: A huge set of compiler building tools.
requires: (ms-dos only) DJ Delorie's DOS extender (go32)
(OS/2 only) emx programming environment for OS/2
ports: msdos, unix, os/2
discussion: subscribe to Cocktail using [email protected]
contact: Josef Grosch
OS/2: Willem Jan Withagen
updated: 1992/10/01

language: BNF ????
package: T-gen
version: 2.1
parts: parser generator, documentation, ?
author: Justin Graver
how to get: ftp pub/st80_r41/T-gen2.1/* from
description: T-gen is a general-purpose object-oriented tool for the
automatic generation of string-to-object translators.
It is written in Smalltalk and lives in the Smalltalk
programming environment. T-gen supports the generation
of both top-down (LL) and bottom-up (LR) parsers, which
will automatically generate derivation trees, abstract
syntax trees, or arbitrary Smalltalk objects. The simple
specification syntax and graphical user interface are
intended to enhance the learning, comprehension, and
usefulness of T-gen.
requires: Smalltalk-80
ports: ParcPlace Objectworks/Smalltalk 4.0 & 4.1
updated: 1992/10/18

language: BNF
package: Eli Compiler Construction System
version: 3.5
parts: ?, documentation
author: ?
how to get: ftp pub/cs/distribs/eli/* from
Europe: ftp unix/eli from
description: Eli integrates off-the-shelf tools and libraries with
specialized language processors to generate complete compilers
quickly and reliably. It simplifies the development of new
special-purpose languages, implementation of existing languages
on new hardware and extension of the constructs and features of
existing languages.
ports: Sun-4 (SunOS 4 & 5), Ultrix/MIPS, RS/6000, HP-UX, SGI, Linux
contact: ,
updated: 1993/11/01

language: BNF (yacc)
package: NewYacc
version: 1.0
parts: parser generator, documenation
author: Jack Callahan
how to get: ftp src/newyacc.1.0.*.Z from
description: [someone want to fill it in? --ed]
reference: see Dec 89 CACM for a brief overview of NewYacc.
updated: 1992/02/10

language: BNF (yacc)
package: bison
version: 1.22
parts: parser generator, documentation
author: Robert Corbett ?
how to get: ftp bison-1.16.tar.Z from a GNU archive site
description: ?
bugs: [email protected]
restriction: !! will apply the GNU General Public License to *your* code !!
ports: unix, atari, ?
updated: 1993/09/14

language: BNF (yacc), Lex
package: Bison++, Flex++
version: ?
parts: parser generator, scanner generator, documentation, samples
author: ? Alain Coetmeur
how to get: ftp pub/file/{bison,flex,misc}++.tar.gz from
description: GNU's Yacc and Lex, retargeted to C++
updated: 1993/07/08

language: BNF (yacc)
package: ? jaccl ?
version: ?
parts: parser generator
author: Dave Jones
how to get: ?
description: a LR(1) parser generator
updated: 1989/09/08

language: BNF (yacc)
package: byacc (Berkeley Yacc)
version: 1.9
parts: parser generator
author: Robert Corbett
how to get: ftp pub/byacc.tar.1.9.Z from vangogh.CS.Berkeley.EDU
description: probably the best yacc variant around. Previously known as
Zoo, and before that, as Zeus.
updated: 1993/02/22

language: BNF (yacc), Lex
package: Lex/Yacc for Turbo Pascal uploaded
version: ?
parts: parser generator, scanner generator, documentation?
author: ?
how to get: ( at pub/file/
description: Lex and Yacc retargeted to Pascal.
contact: ? [email protected] (David Poole)
updated: 1993/07/02

language: BNF (yacc), Ada
package: aflex-ayacc
version: 1.2a
parts: parser generator (Ada), scanner generator (Ada)
author: IRUS (Irvine Research Unit in Software)
how to get: ftp pub/irus/aflex-ayacc_1.2a.tar.Z from
description: Lex and Yacc equivalents that produce Ada output
announcements: [email protected]
contact: [email protected]
updated: 1993/01/06

language: BNF (variant), Icon
package: Ibpag2 (Icon-Based Parser Generation System 2)
version: 1.0 (beta)
parts: parser generator (Icon, SLR(1))
author: Richard L. Goerwitz
how to get: comp.sources.misc archive
description: Ibpag2 is a parser generator for Icon. It does most
of what you would expect. Latest version can handle both
SLR(1) and even GLR (Tomita) grammars.
ports: unix
portability: ? (Unix dependencies?)
updated: 1993/07/13

language: BNF ?, Gofer
package: Ratatosk ?
version: ?
parts: parser generatr (Gofer)
author: Torben AEgidius Mogensen
how to get: ftp pub/diku/dists/Ratatosk.tar.Z from
description: Ratatosk is a SLR parser generator in Gofer (a Haskell variant)
that generates purely functional parsers (also in Gofer). Even
though the sematic value of a production is a function of the
attributes of its right-hand side (and thus apparently purely
synthesized), inherited attributes are easily simulated by
using higher order functions.
ports: ?
updated: ?

language: BNF
package: - An LALR(1) parser generator
version: 0.9
parts: parser generator (->Scheme)

author: Mark Johnson
how to get: ftp new/lalr.shar from the Scheme Repository
description: A LALR(1) parser generator in and for Scheme.
requires: Scheme
updated: 1993/05/24

language: BURS ?
package: Iburg
version: ?
parts: parser generator?
author: Christopher W. Fraser , David R. Hanson
, Todd A. Proebsting
how to get: ftp pub/iburg.tar.Z from
description: Iburg is a program that generates a fast tree parser. It is
compatible with Burg. Both programs accept a cost-augmented
tree grammar and emit a C program that discovers an optimal
parse of trees in the language described by the grammar. They
have been used to construct fast optimal instruction selectors
for use in code generation. Burg uses BURS; Iburg's matchers
do dynamic programming at compile time.
updated: 1993/02/10

language: Candle, IDL (Interface Description Language)
package: Scorpion System
version: 6.0
parts: software development environment for developing
software development environments, documentation
author: University of Arizona
how to get: ftp scorpion/* from
description: 20 tools that can be used to construct specialized
programming environments.
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, Iris, Sequent, HP9000
discussion: [email protected]
contact: [email protected]
updated: 1993/11/04

language: COCOL (EBNF variant)
package: COCO/R
version: 1.28
parts: parser generator(LL(1))
author: Hanspeter Moessenboeck
Port to Modula-2 done by Marc Brandis, Christof Brass
and Pat Terry
how to get: ftp Oberon/Examples/Coco from
Get the Modula-2 version from:
or by mail server:
To: [email protected]

Subject: send pub/modula-2/coco/...

description: Coco/R generates recursive descent parsers and their associated
scanners from attributed grammars. Coco/R can bootstrap itself
to generate its own driver, parser, scanner, and semantic
evaluator from the attributed grammar CR.ATG. This grammar
thus serves as an an example of how to write compiler
descriptions for Coco. There are also other simpler examples
showing its use.
references: _A compiler generator for microcomputers_, by Rechenberg
and Mossenbock (Prentice Hall, 1989, 0-13-155136-1)
bugs: MS-DOS related versions: Pat Terry
Other: Hanspeter Moessenboeck
requires: Oberon or Modula-2
ports: MS-DOS: TopSpeed Modula-2; FST 2.0; FST 3.1; StonyBrook
QuickMod 2.2; Logitech 3.03. Macintosh: Apple MacMeth
status: Oberon version is freely available?, Modula-2 version is
free to academic sites; commercial use requires a license
updated: 1993/04/30

language: EAG (Extended Affix Grammar)
package: EAG
version: first public release
parts: recognizer generator, transduccer generator,
translator generator, editor generator, documentation
author: Marc Seutter
how to get: ftp pub/eag/* from
description: The Extended Affix Grammar formalism, or shortly EAG, is a
formalism for describing both the context free and the context
sensitive syntax of languages. EAG is a member of the family
of two-level grammars. They are very closely related to
two-level van Wijngaarden grammars. The EAG compiler will
generate either a recognizer or a transducer or a translator or
a syntax directed editor for a language described in the EAG
formalism. [What's a tranducer? --ed]
updated: 1993/09/14

language: lex
package: flex
version: 2.3.8
parts: scanner generator
author: Vern Paxson
how to get: ftp flex-2.3.8.tar.Z from a GNU archive site or
description: ?
updated: ?

language: Milarepa
package: Milarepa Perl/BNF Parser
version: Prototype 1.0
parts: parser-generator, examples, tutorial
author: Jeffrey Kegler
how to get: comp.lang.perl, direct by E-mail.
The author is seeking an FTP site to hold the software.
description: Milarepa takes a source grammar in the Milarepa language (a
straightforward mix of BNF and Perl) and generates a Perl file,
which, when enclosed in a simple wrapper, parses some third
language described by the source grammar.
This is intended to be a real hacker's parser. It is not
restricted to LR(k), and the parse logic follows directly from
the BNF. It handles ambiguous grammars, ambiguous tokens
(tokens which were not positively identified by the lexer) and
allows the programmer to change the start symbol. The grammar
may not be left recursive. The input must be divided into
sentences of a finite maximum length. There is no fixed
distinction between terminals and non-terminals, that is, a
symbol can both match the input AND be on the left hand side of
a production. Multiple Marpa grammars are allowed in a single
perl program.
It's only a prototype primarily due to poor speed. This is
intended to be remedied after Perl 5.0 is out.
requires: perl
updated: 1993/03/17

language: Pascal, Lisp, APL, Scheme, SASL, CLU, Smalltalk, Prolog
package: Tim Budd's C++ implementation of Kamin's interpreters
version: ?
parts: interpretors, documentation
author: Tim Budd
how to get: ? ftp pub/budd/kamin/*.shar from ?
description: a set of interpretors written as subclasses based on
"Programming Languages, An Interpreter-Based Approach",
by Samuel Kamin.
requires: C++
status: ?
contact: Tim Budd
updated: 1991/09/12

language: perl, yacc
iref: (Perl) perl-byacc

language: Relation Grammar
package: rl
version: ?
parts: ?
author: Kent Wittenburg
how to get: fto rl/* from
description: The RL files contain code for defining Relational Grammars and
using them in a bottom-up parser to recognize and/or parse
expressions in Relational Languages. The approach is a
simplification of that described in Wittenburg, Weitzman, and
Talley (1991), Unification-Based Grammars and Tabular Parsing
for Graphical Languages, Journal of Visual Languages and
Computing 2:347-370.
This code is designed to support the definition and parsing of
Relational Languages, which are characterized as sets of
objects standing in user-defined relations. Correctness and
completeness is independent of the order in which the input is
given to the parser. Data to be parsed can be in many forms as
long as an interface is supported for queries and predicates
for the relations used in grammar productions. To date, this
software has been used to parse recursive pen-based input such
as math expressions and flowcharts; to check for data integrity
and design conformance in databases; to automatically generate
constraints in drag-and-drop style graphical interfaces; and to
generate graphical displays by parsing relational data and
generating output code.
requires: Common Lisp
ports: Allegro Common Lisp 4.1, Macintosh Common Lisp 2.0
updated: 1992/10/31

language: S/SL (Syntax Semantic Language)
package: ssl
version: ?
parts: parser bytecode compiler, runtime
author: Rick Holt, Jim Cordy (language),
Rayan Zachariassen (C implementation)
how to get: ftp pub/ssl.tar.Z from
description: A better characterization is that S/SL is a language
explicitly designed for making efficient recusive-descent
parsers. Unlike most other languages, practicially the
LEAST expensive thing you can do in S/SL is recur. A
small language that defines input/output/error token
names (& values), semantic operations (which are really
escapes to a programming language but allow good
abstration in the pseudo-code), and a pseudo-code
program that defines a grammar by the token stream the
program accepts. Alternation, control flow, and
1-symbol lookahead constructs are part of the
language. What I call an S/SL "implementation", is a
program that compiles this S/SL pseudo-code into a
table (think byte-codes) that is interpreted by the
S/SL table-walker (interpreter). I think the pseudo-code
language is LR(1), and that the semantic mechanisms turn it
into LR(N) relatively easily.
+ more powerful and cleaner than yac
- slower than yacc
reference: + Cordy, J.R. and Holt, R.C. [1980] Specification of S/SL:
Syntax/Semantic Language, Computer Systems Research
Institute, University of Toronto.
+ "An Introduction to S/SL: Syntax/Semantic Language" by
R.C. Holt, J.R. Cordy, and D.B. Wortman, in ACM Transactions
on Programming Languages and Systems (TOPLAS), Vol 4, No.
2, April 1982, Pages 149-178.
updated: 1989/09/25

language: TXL
package: TXL: Tree Transformation Language
version: 7.4
parts: translator, documentation, tutorial, examples
author: Jim Cordy
how to get: ftp pub/txl/* from
description: TXL is a language for performing source to source
transformations and is well suited for rapidly prototyping
new languages and language processors. It has also been used to
prototype 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. TXL is a functional/rule-based
hybrid programming language, using the paradigm of structural
reference: Several listed in software documentation
updated: 1993/08/04

mathematical tools and languages
category: mathematical tools and languages
description: These are either special-purpose languages and tools, or
general purpose langauges and tools that have traditionally
been used for mathematical and scientific computing task.
lref: Fortran
lref: PCN
lref: CLP
lref: Sisal

language: APL
package: I-APL
version: ?
parts: ?
author: ?
how to get: ftp languages/apl/* from
description: ?
updated: 1992/07/06

language: APL
package: APLWEB
version: ?
parts: translator(web->apl), translator(web->TeX)
author: Dr. Christoph von Basum
how to get: ftp languages/apl/aplweb/* from
description: [Should this be listed with the Web entries? -- Ed.]
updated: 1992/12/07

language: APL
iref: (Pascal) Tim Budd's C++ implementation of Kamin's interpreters

language: J
package: J-mode
version: ?
parts: emacs macros
author: ?
how to get: ftp pub/j/gmacs/j-interaction-mode.el from
description: add on to J
updated: 1991/03/04

language: RLaB language (math manipulation - MATLAB-like)
package: RLaB
version: 0.95
parts: interpreter, libraries, documentation
author: Ian Searle
how to get: ftp pub/RLaB/* from
description: RLaB is a "MATLAB-like" matrix-oriented programming
language/toolbox. RLaB focuses on creating a good experimental
environment (or laboratory) in which to do matrix math
Currently RLaB has numeric scalars and matrices (real and
complex), and string scalars, and matrices. RLaB also contains
a list variable type, which is a heterogeneous associative
bugs: Ian Searle
restriction: GNU General Public License
requires: GNUPLOT, lib[IF]77.a (from f2c)
ports: many unix, OS/2, Amiga
updated: 1993/10/27

language: FUDGIT language (math manipulation)
package: FUDGIT
version: 2.27
parts: interpreter
author: Thomas Koenig ??
how to get: ftp /pub/linux/sources/usr.bin/fudgit-* from ??
description: FUDGIT is a double-precision multi-purpose fitting program. It
can manipulate complete columns of numbers in the form of
vector arithmetic. FUDGIT is also an expression language
interpreter understanding most of C grammar except pointers.
Morever, FUDGIT is a front end for any plotting program
supporting commands from stdin. It is a nice mathematical
complement to GNUPLOT, for example.
requires: GNUPLOT
ports: AIX, HPUX, Linux, IRIX, NeXT, SunOS, Ultrix
updated: 1993/02/22

language: Unix BC (arbitrary-precision arithmetic language)
package: C-BC
version: 1.1
parts: bytecode compiler, interpreter, documentation, examples
author: Mark Hopkins
how to get: alt.sources (10/04/93).
description: A strongly typed version of BC with expanded C-like syntax,
more base types, with ability to form array and pointer types
of any dimension and to allocate/free arrays at run-time.
conformance: Most POSIX-BC features supported, except functions must be
declared consistently and declared before first use. String
handling slightly different.
reference: C-BC implementation notes contained with software documentation
requires: ANSI-C compiler
ports: DOS, Unix
portability: No system dependent features present.
updated: 1993/08/23

language: Unix BC (arbitrary-precision arithmetic language)
package: GNU BC
version: 1.02
parts: parser (yacc), interpreter, BC math library
author: Philip A. Nelson
how to get: ftp bc-1.02.tar.Z from a GNU archive site
description: BC is an arbitrary precision numeric processing language with a
C-like syntax that traditionally provided a front-end to DC.
This version, however, is self-contained and internally
executes its own compiled code (unrelated to DC code).
restriction: Source code falls under the GNU CopyLeft.
requires: vsprintf and vfprintf routines
ports: Unix (BSD, System V, MINIX, POSIX)
conformance: Superset of POSIX BC (P10003.2/D11), with a POSIX-only mode.
updated: ?

language: Calc? (symbolic math calculator)
package: Calc
version: 2.02
parts: interpreter, emacs mode, documentation
author: Dave Gillespie
how to get: ftp calc-2.02.tar.z from a GNU archive site
description: Calc is an extensible, advanced desk calculator and
mathematical tool written in Emacs Lisp that runs as part of
GNU Emacs. It is accompanied by the "Calc Manual", which
serves as both a tutorial and a reference. If you wish, you
can use Calc as only a simple four-function calculator, but it
also provides additional features including choice of algebraic
or RPN (stack-based) entry, logarithms, trigonometric and
financial functions, arbitrary precision, complex numbers,
vectors, matrices, dates, times, infinities, sets, algebraic
simplification, differentiation, and integration.
bugs: ?
updated: ?

language: C-like caluculator
package: Arbitrary precision calculator
version: 1.26.4
parts: interpreter
author: David I. Bell
how to get: ftp pub/calc from
description: Arbitrary precision C-like calculator [similar to BC? --ed]
ports: Linux
updated: 1993/06/15

language: Unix DC (arbitrary-precision arithmetic language)
package: GNU DC
version: 0.2
parts: interpreter
author: ?
how to get: ftp dc-0.2.tar.Z from a GNU archive site
description: DC is the language for an arbitrary precision postfix
calculator. This version is a subset of DC that handles all
the Unix DC operations, except the (undocumented) array
status: Attempting integration with GNU BC.
updated: 1993/05/21

language: Fortran
package: f2c
version: 1993.04.28
parts: translator (to C), postscript documentation, man pages,
support libraries.
author: S. I. Feldman, D. M. Gay, M. W. Maimone and N. L. Schryer
how to get: ftp from [email protected]:netlib/f2c/src/*
description: translator (Fortran 77 to ANSI C or C++)
bugs: D. M. Gay
updated: 1993 April 27

language: Fortran
package: Floppy
version: ?
parts: ?
author: ?
how to get: ffccc in comp.sources.misc archive volume 12
description: ?
contact: ?
updated: 1992/08/04

language: Fortran
package: Flow
version: ?
parts: ?
author: Julian James Bunn
how to get: comp.sources.misc archive volume 31
description: 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
updated: ?

language: Fortran
package: Adaptor (Automatic DAta Parallelism TranslatOR)
version: 1.0
parts: preprocessor, library, documentation
author: ?
how to get: ftp gmd/adaptor/adp_1.0.tar.Z from
description: Adaptor is a tool that transforms data parallel
programs written in Fortran with array extensions,
parallel loops, and layout directives to parallel
programs with explicit message passing.
ADAPTOR is not a compiler but a source to source
transformation that generates Fortran 77 host and
node programs with message passing. The new
generated source codes have to be compiled by the
compiler of the parallel machine.
ports: CM-5, iPCS/860, Meiko CS1/CS2, KSR 1, SGI, Alliant,
network of Suns, or RS/6000s
contact: Thomas Brandes
updated: 1993/06

language: Fortran, C
package: cfortran.h
version: 2.6
parts: macros, documentation, examples
author: Burkhard Burow
how to get: ftp cfortran/* from
description: cfortran.h is an easy-to-use powerful bridge between
C and FORTRAN. It provides a completely transparent, machine
independent interface between C and FORTRAN routines and
global data.
cfortran.h provides macros which allow the C preprocessor to
translate a simple description of a C (Fortran) routine or
global data into a Fortran (C) interface.
reference: reviewed in RS/Magazine November 1992 and
a user's experiences with cfortran.h are to be described
in the 1/93 issue of Computers in Physics.
ports: VAX VMS or Ultrix, DECstation, Silicon Graphics, IBM RS/6000,
Sun, CRAY, Apollo, HP9000, LynxOS, f2c, NAG f90.
portability: high
contact: [email protected]
updated: 1992/04/12

language: Fortran
package: fsplit
version: ?
parts: ?
author: ?
how to get: ?
description: a tool to split up monolithic fortran programs
updated: ?

language: Fortran
package: ?
version: ?
parts: ?
author: Steve Mccrea
how to get: ?
description: a tool to split up monolithic fortran programs
requires: new awk
updated: ?

language: Fortran
package: Fortran77 -> Fortran90 converter
version: ? 1
parts: translator(Fortran 77 -> Fortran 90), documentation?
author: [email protected]
how to get: ftp pub/MandR/convert.f90 from
description: A Fortran77 to Fortran90 translator. There's a number of
significant differences between the two Fortrans that makes
a package like this useful.
updated: 1993/07/17

language: J
package: J from ISI
version: 6
parts: interpreter, tutorial
author: Kenneth E. Iverson and Roger Hui
how to get: ftp languages/apl/j/* from
description: J was designed and developed by Ken Iverson and Roger Hui. It
is similar to the language APL, departing from APL in using
using the ASCII alphabet exclusively, but employing a spelling
scheme that retains the advantages of the special alphabet
required by APL. It has added features and control structures
that extend its power beyond standard APL. Although it can be
used as a conventional procedural programming language, it can
also be used as a pure functional programming language.
ports: Dec, NeXT, SGI, Sun-3, Sun-4, VAX, RS/6000, MIPS, Mac, Acorn
IBM-PC, Atari, 3b1, Amiga
updated: 1992/10/31

language: Ratfor
package: ? ratfor ?
version: ?
parts: translator(Ratfor->Fortran IV)
author: Brian Kernighan and P.J. Plauger (wrote the book anyway)
how to get: comp.sources.unix archives volume 13
description: Ratfor is a front end language for Fortran. It was designed
to give structured control structures to Fortran. It is
mainly of historical significance.
updated: ?

language: Y (cross between C and Ratfor)
package: y+po
version: ?
parts: compiler
author: Jack W. Davidson and Christopher W. Fraser
how to get: ftp pub/y+po.tar.Z from
description: Davidson/Fraser peephole optimizer PO [1-3] [where the GCC RTL
idea and other optimization ideas came from] along with the Y
compiler [cross between C+ratfor] is ftpable from /pub/y+po.tar.Z. It is a copy of the
original distribution from the University of Arizona during the
early 80's, totally unsupported, almost forgotten [do not bug
the authors] old code, possibly of interest to
compiler/language hackers.
reference: Jack W. Davidson and Christopher W. Fraser, "The Design and
Application of a Retargetable Peephole Optimizer", TOPLAS, Apr.
Jack W. Davidson, "Simplifying Code Through Peephole
Optimization" Technical Report TR81-19, The University of
Arizona, Tucson, AZ, 1981.
Jack W. Davidson and Christopher W. Fraser, "Register
Allocation and Exhaustive Peephole Optimization"
Software-Practice and Experience, Sep. 1984.
status: history
updated: ?

electrical engineering languages
category: electrical engineering languages
description: These are languages used for simulating, designing, and
specifying circuits.

language: CASE-DSP (Computer Aided Software Eng. for Digital Signal Proc)
package: Ptolemy
version: 0.4.1
parts: grahpical algorithm layout, code generator, simulator
author: ?
how to get: ftp pub/ptolemy/* from
description: Ptolemy provides a highly flexible foundation for the
specification, simulation, and rapid prototyping of systems.
It is an object oriented framework within which diverse models
of computation can co-exist and interact. For example, using
Ptolemy a data-flow system can be easily connected to a
hardware simulator which in turn may be connected to a
discrete-event system, etc. Because of this, Ptolemy can be
used to model entire systems.
In addition, Ptolemy now has code generation capabilities.
From a flow graph description, Ptolemy can generate both C code
and DSP assembly code for rapid prototyping. Note that code
generation is not yet complete, and is included in the current
release for demonstration purposes only.
requires: C++, C
ports: Sun-4, MIPS/Ultrix; DSP56001, DSP96002.
status: active research project
discussion: [email protected]
contact: [email protected]
updated: 1993/04/22

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
description: ?
restriction: no-profit w/o permission
ports: ?
updated: 1990/07

language: Verilog, XNF
package: XNF to Verilog Translator
version: ?
parts: translator(XNF->Verilog)
author: M J Colley
how to get: ftp pub/dank/xnf2ver.tar.Z from
description: This program was written by a postgraduate student as part
of his M.Sc course, it was designed to form part a larger
system operating with the Cadence Edge 2.1 framework. This
should be born in mind when considering the construction
and/or operation of the program.
updated: ?

language: VHDL
package: ALLIANCE
version: 1.1
parts: compiler, simulator, tools and environment, documentation
author: ?
how to get: ftp pub/cao-vlsi/alliance from
description: ALLIANCE 1.1 is a complete set of CAD tools for teaching
Digital CMOS VLSI Design in Universities. It includes VHDL
compiler and simulator, logic synthesis tools, automatic place
and route, etc... ALLIANCE is the result of a ten years effort
at University Pierre et Marie Curie (PARIS VI, France).
ports: Sun4, also not well supported: Mips/Ultrix, 386/SystemV
discussion: [email protected]
contact: [email protected]
updated: 1993/02/16

document formatting languages
category: document formatting languages
description: These are formatting languages. Very application-specific.
[Could someone make me an entry for TeX? --ed]
iref: (C) c2man

language: CLiP
package: CLiP
version: 2.1
parts: documentation generator
author: Eric W. van Ammers
how to get: ftp clip/* from
description: CLiP does not use explicite commands to perform the extraction
process. It recognizes pseudostatemens written as comment of
the programming language in question. CLiP distinguishes
pseudostatments from ordinary comments because the former
comply with a a particular style. This specific style can be
adjusted to suit virtually any programming language. The CLiP
approach to LP makes the system extremely versatile. It is
independent of programming language and text processing
environment. We designed CLiP to be compatible with hypertext
systems as well but we have not yet experimented with this form
of documentation.
CLiP works with almost any target and almost any source language
ports: MS-DOS, VAX/VMS, Unix
updated: 1993/11/18

language: HP-GL, Postscript
package: hp2ps
version: 1.9c
parts: interpreter
author: Alun Jones
how to get: ftp pub/hp2ps/ from
description: hp2ps is an HP-GL interpreter that is written in Postscript.
It runs on the printer itself.
restriction: If there is monetary benifit from using hp2ps, it is requested
that money be set to Alun Jones. Further, hp2ps may not be
distributed as part of a commercial offering without prior
updated: ?

language: Lout
package: Lout
version: 2.05
parts: translator(Lout->Postscript), documentation
author: Jeffrey H. Kingston
how to get: ftp jeff/lout.2.03.tar.Z from
description: Lout is a batch text formatting system.
Lout offers an unprecedented range of advanced features,
including equation formatting, tables, diagrams, rotation and
scaling, sorted indexes, bibliographic databases, running
headers and odd-even pages, automatic cross referencing, and
much more, all ready to go. Furthermore, Lout is easily
extended with definitions which are very much easier to write
than troff of TeX macros because Lout is a high-level language,
the outcome of an eight-year research project that went back to
the beginning.
ports: unix
updated: 1993/07/30

language: Postscript
package: Ghostscript
version: 2.6.1
parts: interpreter, ?
author: L. Peter Deutsch
how to get: ftp pub/GNU/ghostscript* from a GNU archive site
ftp from*2.6.1*
description: A postscript interpreter with previewers for serval
systems and many fonts.
updated: 1993/05/29

language: Postscript, Common Lisp
package: PLisp
version: ?
parts: translator(Postscript), programming environment(Postscript)
author: John Peterson
how to get: ?
description: ?
updated: ?

language: SGML (Standardized Generalized Markup Language)
package: sgmls
version: 1.1
parts: parser
author: James Clark and Charles Goldfarb
how to get: ftp pub/text-processing/sgml/sgmls-1.0.tar.Z from
UK: ftp sgmls/sgmls-1.1.tar.Z from
description: SGML is a markup language standardized in ISO 8879. Sgmls is
an SGML parser derived from the ARCSGML parser materials which
were written by Charles Goldfarb. It outputs a simple, easily
parsed, line oriented, ASCII representation of an SGML
document's Element Structure Information Set (see pp 588-593 of
``The SGML Handbook''). It is intended to be used as the front
end for structure-controlled SGML applications. SGML is an
important move in the direction of separating information from
its presentation, i.e. making different presentations possible
for the same information.
bugs: James Clark
ports: unix, msdos
updated: 1993/02/22

language: troff, nroff, eqn, tbl, pic, refer, Postscript, dvi
package: groff
version: 1.07
parts: document formatter, documentation
author: James Clark
how to get: ftp groff-1.07.tar.z from a GNU archive site
description: [An absolutely fabulous troff! --ed]
restriction: GNU General Public License
requires: C++
updated: 1993/03/03

language: Web
package: CWeb
version: 3.1
parts: translator(ANSI C and C++)
author: Levy/Knuth?
how to get: ?
description: [Referred to in the CWeb 3.x announcement (below). I'll follow
up on it in the next release of the list. -- Ed]
requires: ANSI C and/or C++ Compiler?
contact: ?
updated: ?

language: Web
package: CWeb
version: 3.x
parts: translator(ANSI C)
author: Marc van Leeuwen
how to get: ftp pub/cweb/? from
description: An ANSI C implementation of the Web literate-programming
concept (Both source and output are ANSI C). This version was
developed in parallel with v3.1 referred to above.
requires: ANSI C Compiler
contact: [email protected]
updated: 1993/12/16

language: Web
package: web2c
version: 5-851d
parts: translator(C)
author: ?
how to get: ftp TeX/web2c.tar.Z from
Europe: ftp pub/tex/src/web2c/web2c.tar.Z from
contact: Karl Berry
updated: 1993/02/22

language: Web
package: Web
version: ?
parts: translator(Pascal)
author: Donald Knuth
how to get: ftp ? from
description: Donald Knuth's programming language where you
write the source and documentation together.
requires: Pascal
contact: ?
updated: ?

language: Web
package: FunnelWeb
version: ?
parts: macro preprocessor, documentation, tests, ?
author: Ross Williams
how to get: comp.sources.unix volume 26
description: FunnelWeb is a production-quality literate-programming tool
that emphasises simplicity and reliability. It provides a macro
facility, and assists in the production of typeset
documentation. Input-programming-language independent
restriction: CopyLeft
ports: Sun, Vax, Mac, PC
updated: 1993/04/11

category: assemblers

language: various assembly
package: GNU assembler (GAS)
version: 2.2
parts: assembler, documentation
author: ?
how to get: ftp gas-2.0.tar.z from a GNU archive site
description: Many CPU types are now handled, and COFF and IEEE-695 formats
are supported as well as standard a.out.
bugs: [email protected]
ports: Sun-3, Sun-4, i386/{386BSD, BSD/386, Linux, PS/2-AIX},
updated: 1993/11/11

language: various assembly
package: fas: Frankenstein Cross Assemblers
version: ?
parts: base assembler, parser modules (yacc), documentation?
author: Mark Zenier
how to get:
[Inform me of the other sites -Mark]
description: A reconfigurable assembler package, especially suited for
8-bit processors, consisting of a base assembler module and
a yacc parser, for each microprocessor, to handle mnemonics and
addressing. Second party parser modules available from many
requires: YACC
updated: ?

language: 6502, Z80, 8085, 68xx
package: ?
version: ?
parts: ?
author: [email protected] and Alan R. Baldwin
how to get: ftp ? from
description: I have enhanced a set of 68xx and Z80 and 8085 cross assemblers
to support 6502. These assemblers run on MS-DOS computers or on
any systems that support standard Kerninghan & Richie C, for
example, Amiga, Atari ST and any "big" machines
updated: 1993/03/10

language: 6502
package: ?
version: ?
parts: assembler, manual
author: Doug Jones ?
how to get: send mail to author
description: Supports macro and conditional features, even, as well as
being usable for linkage editing of object files.
requires: Pascal
updated: ?

language: mc6809
package: usim
version: 0.11
parts: simulator, documentation
author: Ray P. Bellis
how to get: ftp /pub/mc6809/usim-* from
description: a mc6809 simulator
updated: 1993/02/14

language: mc6809
package: 6809, E-Forth
version: ?
parts: assembler, simulator
author: Lennart Benschop
how to get: alt.sources, 1993/11/03 <[email protected]>
description: An assembler and simulator for the Motorola M6809 processor.
Also included is a Forth interpreter, E-Forth written
in 6809.
ports: assemlber: Unix, DOS; simulator: Unix
updated: 1993/11/03

language: 68HC11
package: 68HC11 simulator
version: ? 1
parts: simulator
author: Ted Dunning
how to get: ftp pub/non-lexical/6811/sim6811.shar from
description: An opcode simulator for the 68HC11 processor. Interrupts,
hardware I/O, and half carries are still outside the loop.
[Adding interrupts may require simulating at the clock phase
level -Mark]
ports: unix?, ms-dos
updated: 1993/07/28

language: 8051
package: CAS 8051 Assembler
version: 1.2
parts: assembler/linker, disassembler, documentation, examples
author: Mark Hopkins
how to get: ftp pub/8051/assem from
Europe: ftp pub/microprocs/MCS-51/csd4-archive/assem from
description: experimental one-pass assembler for the 8051 with C-like
syntax. Most features of a modern assembler included except
macros (soon to be added). Other software tools and
applications contained in /pub/compilers/8051/*.
requires: ANSI-C compiler
ports: MSDOS, Ultrix, Sun4 (contact author)
updated: 1993/07/22

language: 8051
package: as31 - An 8031/8051 assembler.
version: ? 1
parts: assembler, parser(yacc), documentation
author: Ken Stauffer
(Theo Deraadt wrote the S-record output routines)
how to get:
at /usenet/comp.sources.misc/volume10/asm.8051.Z
description: Assembler with ability to produce a variety of object output
formats, including S-records.
ports: SUN 3 / SUN 4 (SunOS 4.0), Tandy 6000 (Xenix)
portability: File I/O may require porting on non-Unixs.
updated: 1990/01/26

language: Motorola DSP56000
package: ?
version: 1.1
parts: assembler
author: Quinn Jensen
how to get: alt.sources archive or ftp ? from
description: ?
updated: ?

language: Motorola DSP56001
package: a56
version: 1.1
parts: assembler
author: Quinn C. Jensen
how to get: alt.sources archive
description: ?
updated: 1992/08/10

language: 80486
package: WDASM17B.ZIP - Windows 80486 Disassembler for Windows 3.1
version: 1.7b
parts: disassembler
author: Eric Grass
how to get: SIMTEL20, pd1:
description: An interactive 80486 disassembler for Windows 3.1. Multiple
options for formatting disassembly exist.
ports: Windows3.1
portability: Windows-specific
updated: 1993/06/29

macro preprocessors
category: macro preprocessors
description: These are tools that expand macros for another language.
iref: (C) GNU CC
iref: (C) lcc [I assume lcc has a preprocessor? --ed]

language: C preprocessor
package: Decus cpp
version: ?
parts: pre-processor
author: Martin Minow
how to get: included in the X11R5 distribution as contrib/util/cpp
description: An almost-ANSI C preprocessor. It is shipped with X11R5
because some systems don't have a working cpp.
ports: VMS (Vax C, Decus C), RSX-11M, RSTS/E, P/OS, and RT11,
A/UX, Apollo Domain/IX 9.6, etc.
portability: very high
updated: ?

language: C-Refine, C++-Refine, *-Refine
package: crefine
version: 3.0
parts: pre-processor, documentation
author: Lutz Prechelt
how to get: aquire from any comp.sources.reviewed archive
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.
ports: unix, msdos, atari, amiga.
portability: high
updated: 1992/07/16

language: m4
package: pd/bsd m4
version: ?
parts: interpreter, man page
author: Ozan Yigit ,
Richard A. O'Keefe
how to get: ftp from any 386BSD, NetBSD, or FreeBSD archive
description: A macro preprocessor, more flexible than cpp
conformance: ?
updated: 1993/11/03

language: m4
package: GNU m4
version: 1.1
parts: interperter, ?
author: Francois Pinard
how to get: ftp m4-1.0.tar.Z from a GNU archive site
Macintosh: ftp pub/software/mac/src/mpw-c/* from
description: A macro preprocessor, more flexible than cpp.
It copies its input to the output, expanding macros. Macros
are either built-in or user-defined. `m4' has built-in
functions for including files, running Unix commands, doing
integer arithmetic, manipulating text in various ways,
recursing, etc. `m4' can be used either as a front-end to a
compiler or as a macro processor in its own right.
conformance: ?
restriction: GNU General Public License
updated: 1993/11/08

special purpose languages
category: special purpose languages
description: Languages with very specific purposes that are the only free
language in that niche (otherwise they would have a category)

language: ADL (Adventure Definition Language)
package: ADL
version: ?
parts: interpreter
author: Ross Cunniff , Tim Brengle
how to get: archive volume 2
description: An adventure language, semi-object-oriented with LISP-like
syntax. A superset of DDL.
updated: ?

language: ASA
package: Adaptive Simulated Annealing (ASA)
version: 1.53
parts: ?
author: Lester Ingber
how to get: ftp pub/ingber/? from
description: ? Language interface to neural net simulator?
discussion: [email protected]
updated: 1993/11/14

language: ASN.1 (Abstract Syntax Notation One) (ITU TS X.208/ISO 8824)
package: snacc (Sample Neufeld ASN.1 to C/C++ Compiler)
version: 1.1
parts: compiler, runtime BER libraries, utility progs
author: Mike Sample
how to get: ftp /pub/local/src/snacc/snacc1.1.tar.Z from
description: ASN.1 is a language used to describe data structures
in a machine and implementation lang independent way. Basic
Encoding Rules (BER) provide a universal (contiguous)
representation of data values. ASN.1 & BER were designed to
exchange data (with complex structure) over networks.
OSI Application protocols such as X.400 MHS (email) and
X.500 directory and others protocols such as SNMP use ASN.1
to describe the PDUs they exchange.
Snacc compiles 1990 ASN.1 (including some macros) data
structures into C, C++ or type tables. The generated
C/C++ includes a .h file with the equivalent data struct
and a .c/.C file for the BER encode and decode, print and
free routines.
reference: Michael Sample and Gerald Neufeld, "Implementing Efficient
Encoders and Decoders for Network Data Representations",
IEEE INFOCOM '93 Proceedings, Vol 3, pp 1143-1153, Mar 1993
Michael Sample, "How Fast Can ASN.1 Encoding Rules Go?",
M.Sc. Thesis, University of British Columbia, Apr 1993
restriction: Compiler under GNU Public License. No restriction on libs
and C/C++/tables generated by snacc.
If you use it in a commercial product please let us know.
requires: yacc (or bison), lex (or flex) and cc (ANSI or non-ANSI)
contact: Barry Brachman or
updated: 1993/07/12

language: Duel (a C debugging language)
package: DUEL
version: 1.10
parts: interpreter, stand-alone module, documentation, test suites
author: Michael Golan
how to get: ftp duel/* from
description: DUEL acts as front end to gdb. It implements a language
designed for debbuging C programs. It maily features
efficient ways to select and display data items. It is
normally linked into the gdb executable, but could stand
alone. It interprets a subset of C in addition to its
own language.
requires: gdb
status: author is pushing the system hard.
updated: 1993/03/20

language: IDL (Project DOE's Interface Definition Language)
package: SunSoft OMG IDL CFE
version: 1.2
parts: compiler front end, documentation
author: SunSoft Inc.
how to get: ftp pub/OMG_IDL_CFE_1.2/* from
description: OMG's (Object Management Group) CORBA 1.1 (Common
Object Request Broker Architecture) specification
provides the standard interface definition between
OMG-compliant objects. IDL (Interface Definition
Language) is the base mechanism for object
interaction. The SunSoft OMG IDL CFE (Compiler Front
End) provides a complete framework for building CORBA
1.1-compliant preprocessors for OMG IDL. To use
SunSoft OMG IDL CFE, you must write a back-end; full
instructions are included. A complete compiler of IDL would
translate IDL into client side and server side routines for
remote communication in the same manner as the currrent Sun
RPCL compiler. The additional degree of freedom that the IDL
compiler front end provides is that it allows integration of
new back ends which can translate IDL to various programming
languages. Several companies including Sunsoft are building
back ends to the CFE which translate IDL into target languages,
e.g. Pascal or C++, in the context of planned CORBA-compliant
requires: C++ 2.1 conformant C++ compiler
contact: [email protected]
updated: 1993/05/04

language: NewsClip ?
package: NewsClip
version: 1.01
parts: translator(NewsClip->C), examples, documentation
author: Looking Glass Software Limited but distributed by
ClariNet Communications Corp.
how to get: ?
description: NewsClip is a very high level language designed for
writing netnews filters. It translates into C.
It includes support for various newsreaders.
restriction: Cannot sell the output of the filters. Donation is hinted at.
status: supported for ClariNet customers only
contact: [email protected]
updated: 1992/10/25

language: PROGRESS
package: PROGRESS
version: RWTH 5.10
parts: environment, interpreter, database, ?
author: Dr. Andy Schuerr ,
Albert Zuendorf
how to get: send mail to authors
sun4-bin: ftp pub/unix/PROGRES/? from
description: PROGRES is an integrated environment for a very high level
programming language which has a formally defined semantics
based on "PROgrammed Graph Rewriting Systems". This language
supports the following programming paradigms/purposes: 1)
Structurally object-oriented specification of attributed graph
structures with multiple inheritance hierarchies and types of
types (for parametric polymorphy). 2) Declarative/relational
specification of derived attributes, node sets, binary
relationships (directed edges), and Boolean constraints. 3)
Rule-oriented/visual specification of parameterized graph
rewrite rules with complex application conditions. 4)
Nondeterministic & imperative programming of composite graph
transformations (with built-in backtracking and cancelling
arbitrary sequences of failing graph modifications).
Therefore, PROGRES may be used as 1) a very high level
programming language for implementing abstract data types with
a graph-like internal structure, 2) a visual database
programming language for the graph-oriented database system
GRAS (which is available as free software under the GNU license
conditions), 3) a rule-oriented language for rapid prototyping
nondeterministically specified data/rule base transformations.
Furthermore, PROGRES is an almost statically typed language
which additionally offers "down casting" operators for runtime
checked type casting/conversion (in order to avoid severe
restrictions concerning the language's expressiveness).
PROGRESS is meant to be used with GRAS, which is also available
updated: 1993/11/02

language: Tiny
package: Omega test, Extended Tiny
version: 3.2.2
parts: translator(fortran->tiny), tiny interpreter?, analysis tools
author: William Pugh and others
how to get: ftp pub/omega from
description: The Omega test is implemented in an extended version of
Michael Wolfe's tiny tool, a research/educational tool
for examining array data dependence algorithms and
program transformations for scientific computations.
The extended version of tiny can be used as a
educational or research tool. The Omega test: A system
for performing symbolic manipulations of conjunctions
of linear constraints over integer variables. The
Omega test dependence analyzer: A system built on top
of the Omega test to analyze array data dependences.
contact: [email protected]
updated: 1992/11/13

language: Extended Tiny
package: Extended Tiny
version: 3.0 (Dec 12th, 1992)
parts: programming environment, dependence tester, tests
translator(Fortran->tiny), documentation, tech. reports
author: original author: Michael Wolfe ,
extended by William Pugh et al.
how to get: ftp pub/omega from
description: A research/educational tool for experimenting with
array data dependence tests and reordering transformations.
It works with a language tiny, which does not have procedures,
goto's, pointers, or other features that complicate dependence
testing. The original version of tiny was written by Michael
Wolfe, and has been extended substantially by a research group
at the University of Maryland. Michael Wolfe has made further
extensions to his version of tiny.
ports: Any unix system (xterm helpful but not required)
contact: Omega test research group
updated: 1993/01/23

language: SQL
package: _lex & yacc_ by Levine, Mason & Brown published by O'Reilly
version: ?
parts: book, grammar
author: Levine, Mason & Brown
how to get: buy the book, or ftp published/oreilly/nutshell/lexyacc/?
description: In _lex & yacc_, by Levine, Mason & Brown an SQL parser
is included as an example grammar
updated: ?

natural languages
category: natural languages
description: These are tools that interact with human languages.

language: natural languages
package: Pleuk grammar development system
version: 1.0
parts: shell, examples, documentation
author: Jo Calder , Kevin Humphreys
, Chris Brew ,
Mike Reape
how to get: ftp from hostname /ai.natural.language/
description: A shell for grammar development, handles various grammatical
requires: SICStus Prolog version 2.1#6 or later, and other programs
readily available from the public domain.
contact: [email protected].
updated: 1993/06/18

language: natural languages
package: proof
version: ?
parts: parser, documentation
author: Craig R. Latta
how to get: ftp src/local/proof/* from
description: a left-associative natural language grammar scanner
bugs: [email protected]
ports: Decstation3100 Sun-4
discussion: [email protected] ("Subject: add me")
updated: 1991/09/23

category: curiosities
description: These are the languages and tools that I could not fit into one
of the other categories. I am quite willing to reclassify
these if provided with a rational way to do so.

language: a1 (Address 1 code)
package: a1 code interpreter
version: ? 1
parts: interpreter, examples
author: Matthew Newhook
how to get:
description: An address 1 code interpreter used to test compiler output.
requires: gcc 2.4.2 or higher
portability: Ports to machine without memory segment protection unverified.
updated: 1993/06/02

language: INTERCAL
package: C-INTERCAL
version: 0.9
parts: compiler, library, documentation
author: Eric S. Raymond
how to get: ftp pub/intercal/intercal0.9.* from
description: INTERCAL is possibly the most elaborate and long-lived joke
in the history of programming languages. It was first designed
by Don Woods and Jim Lyons in 1972 as a deliberate attempt
to produce a language as unlike any existing one as possible.
The manual, describing features of horrifying uniqueness,
became an underground classic. ESR wrote C-INTERCAL in 1990
as a break from editing _The_New_Hacker's_Dictionary_, adding
to it the first implementation of COME FROM under its own name.
The compiler has since been maintained and extended by an
international community of technomasochists. The distribution
includes extensive documentation and a program library.
C-INTERCAL is actually an INTERCAL-to-C source translator which
then calls the local C compiler to generate a binary. The code
is thus quite portable.
contact: Steve Swales
updated: 1993/05/20

language: Logo
package: logo
version: 4
parts: interpreter
author: ?
how to get: comp.sources.unix archive volume 10
description: ?
updated: ?

language: Logo
package: Berkeley Logo
version: 3.0
parts: interpreter
author: Brian Harvey
how to get: ftp pub/ucblogo/* from
description: + Logo programs are compatible among Unix, PC, and Mac.
+ "richer" than MswLogo?
- pretty slow.
- doesn't do anything fancy about graphics. (One turtle.)
ports: unix, pc, mac
updated: 1993/08/06

language: Logo
package: MswLogo
version: 3.5
parts: interpreter
author: George Mills
how to get: ftp pub/comp.lang.logo/programs/mswlogo from
Source may require emailing George Mills.
description: A windows front-end for Berkeley Logo
bugs: George Mills
ports: MS Windows 3.x
status: activly developed
updated: 1993/10/15

unable to classify due to lack of knowledge
category: unable to classify due to lack of knowledge
description: [Please help. --ed]

contact: Jack Hsu
language: FMPL of Accardi
package: FMPL interpreter
version: 1
parts: interpreter, documentation
author: Jon Blow
how to get: ftp src/local/fmpl/* from
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: 1992/06/02

language: Garnet ??
package: Garnet
version: 2.1 alpha
parts: ?
author: ?
how to get: ftp from /usr/garnet/? from
description: ?
contact: ?
updated: ?

language: Garnet
package: Multi-Garnet
version: 2.1
parts: ?
author: Michael Sannella
how to get: ftp /usr/garnet/alpha/src/contrib/multi-garnet
description: better contstraint system for Garnet ??
updated: 1992/09/21

language: OPS5
package: PD OPS5
version: ?
parts: interpreter
author: Written by Charles L. Forgy and ported to Common Lisp by
George Wood and Jim Kowalski.
how to get: ftp /afs/* from
description: Public domain implementation of an OPS5 interpreter. OPS5 is
a programming language for production systems. ??????
requires: Common Lisp
contact: ? Mark Kantrowitz ?
updated: 1992/10/17

language: Isabelle
package: Issabelle-93
version: ?
parts: ?
author: Written by Lawrence C Paulson and Tobias Nipkow?
how to get: ftp /afs/* from
description: Isabelle is a generic theorem prover. New logics are introduced
by specifying their syntax and rules of inference. Proof
procedures can be expressed using tactics and tacticals. The
latest version, Isabelle-93, is significantly faster than
Isabelle-92 and has several other improvements.

requires: ?
contact: [email protected]
[email protected]?
updated: 1993/12/20


name: The Apple II Programmer's Catalog of Languages and Toolkits
version: 2.2
author: Larry W. Virden
how to get: posted to comp.sys.apple2, comp.lang.misc; ftp from
description: A survey of language tools available for the Apple ][.
updated: 1993/04/28

name: Catalog of embeddable Languages.
version: 2
author: Colas Nahaboo
how to get: posted to comp.lang.misc,comp.lang.tcl;
ftp pub/EmbeddedInterpretersCatalog.txt from
description: Descriptions of languages from the point of view of
embedding them.
updated: 1992/07/09

name: Compilers bibliography
version: 1.5
author: Charlie A. Lins
how to get: ftp pub/oberon/comp_bib_1.4.Z from
description: It includes all the POPLs, PLDIs, Compiler Construction,
TOPLAS, and LOPAS. Plus various articles and papers from
other sources on compilers and related topics.
updated: 1992/10/31

name: haskell-status
version: ?
author: Simon Peyton Jones
how to get: posted occaisionally to ???
description: A report, detailing the current features and status of
all the implementations of Haskell.
updated: ?

name: Language List
version: 2.1
author: Bill Kinnersley
how to get: posted regularly to comp.lang.misc;
ftp pub/comp.compilers/LanguageList* from;
ftp pub/compilers-list/LanguageList* from
description: Descriptions of almost every computer langauge there is.
Many references to available source code.
updated: 1993/09/11

name: Numerical Analysis Using Non-Procedural Paradigms
version: published thesis
author: Steve Sullivan
how to get: send email to author; or an ascii version of the comparision
can be found in the comp.compilers archives, posted 1993/11/16
description: A thesis, that among other things, compares and benchmarks
C++, Modula-3, Standard ML, Haskell, Sather, and Common Lisp
updated: 1993

name: The Lisp FAQs
version: 1.30
author: Mark Kantrowitz
how to get: posted regularly to comp.lang.lisp,news.answers,comp.answers
description: Details of many lisps and systems written in lisps
including many languages not covered elsewhere.
updated: 1993/02/08

name: Survey of Interpreted Languages
version: ?
author: Terrence Monroe Brannon
how to get: Posted to comp.lang.tcl,comp.lang.misc,comp.lang.perl,,news.answers; or ftp
description: Detailed comparision of a few interpreters: Emacs Lisp,
Perl, Python, and Tcl.
updated: ?


language: Ada
package: AdaX
description: an archive of X libraries for Ada. Includes Motif
[note, I chose this server out of many somewhat randomly.
Use archie to find others --ed]
how to get: ftp pub/AdaX/* from
contact: ?

language: APL, J
package: APL, J, and other APL Software at Waterloo
how to get: ftp languages/apl/index from
contact: Leroy J. (Lee) Dickey

language: Assembler (Motorola)
description: An archive of development software and tools for the
Motorola microcontroller series. Includes assemblers,
a C compiler (6809), and applications. Comes mainly
from the Austin Texas Motorola BBS.
how to get: ftp : /pub/dos/motorola

language: Assembler (Various)
package: The Beowulf archive?
description: An archive of assemblers for various 8-bit microcontrollers
how to get: : /misc/ns32k/beowulf

language: Assembler, Forth (8051)
package: The Siemens 8051 archive
description: An archive for development software and tools for the 8051
how to get: ftp pub/8051/signetics-bbs from
contact: [email protected]

language: Assembler (8051)
package: The CAS archive.
description: Another archive for development software and tools for the 8051
microcontroller. May be converted into a general microprocessor
archive in the future.
how to get: : /pub/8051/siemens-bbs /pub/microprocs/MCS-51/csd4-archive : /pub/compilers/* (Discontinued as of 10/4/93)

language: C, C++, Objective-C, yacc, lex, postscript,
sh, awk, smalltalk, sed
package: the GNU archive sites

description: There are many sites which mirror the master gnu archives
which live on Please do not use
the master archive without good reason.
how to get: NOTE: Many gnu files are now compressed with gzip. You can
tell a gzip'ed file because it has a lower-case .z or
.gz rather than the capital .Z that compress uses.
Gzip is available from these same archives
ftp pub/gnu/* from
USA: ftp mirrors4/gnu/* from
ftp pub/src/gnu/* from
ftp gnu/* from
ftp mirrors/gnu/* from
ftp pub/GNU/* from
ftp packages/gnu/* from
Japan: ftp ? from
ftp ftpsync/prep/* from
Australia: ftp gnu/* from
Europe: ftp gnu/* from
ftp pub/GNU/*/* from [re-org'ed]
ftp pub/gnu/* from
ftp pub/gnu/* from
ftp pub/gnu/* from
ftp pub/gnu/* from
ftp pub/gnu/* from
ftp pub/gnu/* from [re-org'ed]
ftp pub/gnu/* from
ftp pub/gnu/* from
ftp software/gnu/* from
ftp gnu/* from [re-org'ed]
restriction: Most GNU programs are CopyLeft'ed. That means that they
are distributed under the terms of the GNU General
Public License or GNU Library General Public License.
The CopyLeft is only a concern if you want to use
actual GNU code in your program. Using Gcc or any of
the other tools is completely safe from a copyright
point-of-view with the sole exception of bison which
includes GNU code in its output. If you use a GNU
library, you must supply an unlinked version of your

language: Forth
description: Forth implementations and programs
how to get: [email protected][]:pub/forth
contact: Paulo A. D. Ferreira

language: Haskell
description: An archive of Haskell and Gofer programs
how to get: [email protected]:pub/haskell/library
[email protected]:pub/haskell/library
[email protected]:pub/haskell/library

language: lisp
package: MIT AI Lab archives
description: archive of lisp extensions, utilities, and libraries
how to get: ftp pub/* from
contact: ?

language: lisp
package: Lisp Utilities collection
how to get: ftp /afs/ from
contact: [email protected]

language: Scheme
package: The Scheme Repository
description: an archive of scheme material including a bibliography,
the R4RS report, sample code, utilities, and implementations.
how to get: ftp pub/scheme/* from
contact: Ozan S. Yigit

language: Smalltalk
package: Manchester Smalltalk Goodies Library
description: a large collection of libraries for smalltalk.
Created by Alan Wills, administered by Mario Wolczko.
how to get: ftp uiuc/st*/* from
uk: ftp uiuc/st*/* from
contact: [email protected]

language: Tcl
package: Tcl/Tk Contrib Archive
description: An archive of Tcl/tk things.
how to get: ftp tcl/* from
contact: Jack Hsu

These are additional categories. When an implementation is in a category
rather than a language, the language is indicated in (parenthesis).

category: command shells
description: These are the languages that treat bare words as programs
to execute.
lref: csh
lref: ERGO-Shell
lref: es
lref: Korn Shell
lref: Q
lref: rc
lref: ssh
lref: Z-shell

category: compiler frontend/backend glue
description: These are the languages used to glue semantic analysers to
code generators.
lref: C -- C is often used as an intermediate step
lref: RTL
lref: lcc -- [what is the lcc intermediate code called? --ed]

category: database
description: These are the languages that are specifically designed
for database access.
lref: Aditi
lref: CORAL
lref: GNU E

category: distributed
description: These are languages that include constructs that specifically
support distributed programming.
lref: Hermes
lref: Glish
iref: (TCL) TCL-DP

category: dynamic foriegn functions
description: These tools can dynamically load C code at run-time.
lref: CommonLisp
lref: Python
iref: (Perl) Dylperl
iref: (Scheme) Elk

category: editor construction
description: These are languages that are embedded in editors
lref: IVY
lref: S-Lang
iref: (Lisp) elisp

category: educational
description: These are languages that are either designed for teaching,
or are often used that way.
lref: ABC
lref: C
lref: Logo
lref: O'small
lref: Pascal

category: embeddable
description: These tools can be used as scripting langauges for programs
written in C. They are all interpreted.
lref: IVY
lref: Perl5
lref: Python
lref: S-Lang
lref: TCL
iref: (C) ae
iref: (Scheme) Elk
iref: (Scheme) siod

category: glue
description: These are languages that are designed to tie other programs
and libraries together.
cref: dynamic foriegn functions
cref: command shells
lref: Glish
lref: REXX

category: graphic user interface support
description: These are the languages that have support for writing
gui programs.
cref: C variants
lref: CommonLisp
lref: LIFE
lref: Python
iref: (Caml Light) Caml Light
iref: (Prolog) PI
iref: (Prolog) XWIP
iref: (Scheme) Elk
lref: (Scheme) Ezd
iref: (Scheme) STk
iref: (TCL) Tk
iref: (TCL) Wafe

category: interactive
description: These are the languages that are meant to be used
interactively. [I'm sure there are more. Tell me! --ed]
lref: Caml
lref: CommonLisp
lref: Q
iref: (C) ae

category: reflective
description: [could someone tell me what reflective langauges are? --ed]
lref: ABCL ???
lref: ABCL/1
lref: MeldC

category: terminal graphics support
description: These are languages that can access curses, or have an
cref: C variants
lref: ici
iref: (Common Lisp) CLISP
iref: (Perl) curseperl
iref: Python
iref: (Scheme) scm

category: text manipulation
description: These languages have very high-level features for
manipulating text.
cref: compiler generators and related tools
lref: Icon
lref: Lex
lref: Perl
lref: Snobol4

category: unix tool building
description: These are languages that are appropriate for building tools
in a Unix environment. To be included, direct access to
most system features is required.
lref: C
lref: ici
lref: Perl
lref: Python
lref: TCL

category: window manager construction
description: These are languages that are built into window managers
iref: (Lisp) WOOL
Send compilers articles to [email protected] or

Send compilers articles to [email protected] or
{ima | spdcc | world}!iecc!compilers. Meta-mail to [email protected].

  3 Responses to “Category : Tutorials + Patches
Archive   : FREECOMP.ZIP

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: