Archive-name: free-compilers/part5
Last-modified: 1994/6/30
Version: 6.5

Wirth family languages
------------------------------------------------------------------------------
category: Wirth family languages
description: These are the languages that were either designed by Niklaus
  Wirth are are descended from them.  
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.
location: ftp pub/DEC/Modula-2/m2.tar.Z from gatekeeper.dec.com
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: modula-2@decwrl.pa.dec.com
updated: 1992/07/06

language: Modula-2
package: Ulm's Modula-2 System
version: 2.2.1
parts:  compiler, library, tools
author:  Andreas Borchert <borchert@mathematik.uni-ulm.de>
  compiler derived from the ETHZ compiler for the Lilith system
location: ftp pub/soft/modula/ulm/sun3/modula-2.2.1.tar.Z from
  titania.mathematik.uni-ulm.de. 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 <borchert@mathematik.uni-ulm.de>
updated: 1992/03/02 

language: Modula-2
package: mtc
version: ?
parts:  translator(C)
author:  ?
location: ftp pub/unix/programming/compilerbau/mtc.tar.Z 
  from ftp.uni-stuttgart.de 
description: A Modula-2 to C translator
ports:  ?
updated: 1994/04/29

language: Modula-2
package: mocka
version: 9404
parts:  compiler, library, examples, docs
author:  ? Holger Hopp <hopp@ira.uka.de>
location: ftp /pub/mocka/linux/mocka9404* from i44.s10.ira.uka.de 
  or ftp /pub/Linux/devel/modula-2/mocka9404* 
   from sunsite.unc.edu
description: A free version of a Modula-2 compiler for the Intel X86
  under Linux or 386BSD (and derivatives?). Source code
  in Modula-2 is available.
ports:  Linux and 386BSD (also commercial versions)
updated: 1994/04/29

language: Modula-2* (parallel extension)
package: IPD Modula-2* Programming Environment
version: 9401
parts:  translator (->C), debugger (SUN4 only), X Windows
  user panel, automatic cross-architecture make,
  sequential and parallel libraries, examples, documentation
author:  IPD Modula-2* team <msc@ira.uka.de> consisting of the
  following kernel contributors:
     Thomas Gauweiler, Stefan U. Haenssgen, Ernst A. Heinz,
     Paul Lukowicz, Hendrik Mager, Michael Philippsen.
location: ftp.ira.uka.de (129.13.10.90) in pub/programming/modula2star/
description: Modula-2* is an extension of Modula-2 for highly parallel,
  portable programs.  IPD Modula-2* is provided freely for
  research, educational and classroom use.  A complete sequential
  Modula-2 environment in provided complemented with a set of
  parallel libraries, which even include routines for
  implementing low-level parallel operations.  The employment of
  of C translator allows increased accessibility to actual
  parallel machines (many have nothing lower-level than C), at
  the expense of Modula-2 features of arrays bounds checking
  and symbolic debugging at the Modula-2* level.
  [An interpreter could be written with functionality subsuming
   that of a symbolic debugger. -- Mark]
conformance: PIM but not ISO compliant
reference: *  J.R. Smith. "The design and analysis of parallel
     algorithms. Chapter 3: Modula-2*." Oxford University
     Press, December 1992.
  *  M. Philippsen, E.A. Heinz, and P. Lukowicz. "Compiling
     machine-independent parallel programs." ACM SIGPLAN
     Notices, v. 28, no. 8, pp. 99-108, August 1993.
  *  M. Philippsen, T.M. Warschko, W.F. Tichy, C.G. Herter,
     E.A. Heinz, and P. Lukowicz.  "Project Triton: Towards
     improved programmability of parallel computers." In
     D.J. Lija and P.L. Bird (eds), The Interaction of
     Compilation Technology and Computer Architecture, Kluwer
     Academic Publishers, 1994.
  Others available from i41s10.ira.uka.de (129.13.13.110)
  in pub/m2s/*.ps
ports:  386 and above with BSDI/386 or Linux (sequential),
  KSR-1/KSR-2 with KSR-OS (sequential and parallel),
  DECStation (R3000/R4000) with Ultrix (sequential),
     MP-1/MP-2 (DECStation frontend) with MP-Ultrix (parallel)
  SUN (Sun-3, Sun-4 SPARCStation) with SunOS (sequential),
portability: sources are for GMD Mocka Modula-2 compiler
status:  supported
updated: ???

language: Modula-2, Modula-3
package: M2toM3
version: 1.01
parts:  translator(Modula-2 -> Modula-3), libraries
author:  Peter Klein <pk@i3.informatik.rwth-aachen.de>
location: ftp pub/Modula3 from martha.informatik.rwth-aachen.de
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
  library
requires: a Modula-3 system
updated: 1992/12

language: pm2
package: PRAM emulator and parallel modula-2 compiler ??
version: ?
parts:  compiler, emulator
author:  ?
location: ftp pub/pram/* from cs.joensuu.fi
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
  cycle.
  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 <sjuva@cs.joensuu.fi>
updated: 1993/02/17

language: Modula-3
package: SRC Modula-3
version: 2.11
parts:  compiler(->C), runtime, library, documentation
author:  ?
location: ftp pub/DEC/Modula-3/m3-*.tar.Z from gatekeeper.dec.com
    MSDOS: ftp pub/DEC/Modula-3/contrib/m3pc* from gatekeeper.dec.com
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 <kalsow@src.dec.com>
updated: 1992/02/09

language: Oberon2
package: Oberon-2 LEX/YACC definition 
version: 1.4
parts:  parser(yacc), scanner(lex)
author:  Stephen J Bevan <bevan@cs.man.ac.uk>
location: ftp pub/oberon/tools/o2lexyac.tar.Z from ftp.psg.com
  or mail bevan@cs.man.ac.uk 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/Oberon2.Report.ps.Z from neptune.inf.ethz.ch
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:  ?
location: ftp Oberon/? from neptune.ethz.ch
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:  ?
location: ftp pub/parallaxis from ftp.informatik.uni-stuttgart.de
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 <braunl@informatik.uni-stuttgart.de> ?
updated: 1992/10/23

language: Pascal
package: p2c
version: 1.20
parts:  translator(Pascal->C)
author:  Dave Gillespie <daveg@synaptics.com>
location: ftp ? from csvax.cs.caltech.edu
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
location: ftp pascal/* from ftp.cwi.nl
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: Steven.Pemberton@cwi.nl
updated: 1993/07/05

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

language: Pascal
package: pasos2
version: Alpha
parts:  Compiler, run-time library
author:  Willem Jan Withagen <wjw@eb.ele.tue.nl>
location: ftp pub/src/pascal/pasos2* from ftp.eb.ele.tue.nl
description: a PASCAL/i386 compiler which generates 
  code for OS/2 and DOS. It uses EMX as DOS extender and
  GNU/GAS,  MASM or TASM as assembler.
updated: 1993/12/17

language: Pascal
package: ptc
version: ?
parts:  translator(Pascal->C)
author:  ?
location: ftp languages/ptc from uxc.sco.uiuc.edu ?  (use archie?)
description: ?
contact: ?
updated: ?

language: Turbo Pascal, Turbo C
package: tptc
version: ?
parts:  translator(Turbo Pascal->Turbo C)
author:  ?
location: ftp mirrors/msdos/turbopas/tptc17*.zip from wuarchive.wustl.edu
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

assemblers
-------------------------------------------------------------------------------
category: assemblers

language: various assembly
package: GNU assembler (GAS)
version: 2.3
parts:  assembler, documentation
author:  ?
location: ftp gas-*.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:  bug-gnu-utils@prep.ai.mit.edu
ports:  Sun-3, Sun-4, i386/{386BSD, BSD/386, Linux, PS/2-AIX},
  VAX/{Ultrix,BSD,VMS}
updated: 1993/11/11

language: various assembly
package: fas: Frankenstein Cross Assemblers
version: ?
parts:  base assembler, parser modules (yacc), documentation?
author:  Mark Zenier
location: ftp.njit.edu:/pub/msdos/frankasm/frankasm.zoo
  [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
  sites.
requires: YACC
updated: ?

language: 6502, Z80, 8085, 68xx
package: ?
version: ?
parts:  ?
author:  msmakela@cc.helsinki.fi and Alan R. Baldwin
location: ftp ? from ccosun.caltech.edu
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 <jones@cs.uiowa.edu> ?
location: 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.90
parts:  simulator, documentation
author:  Ray P. Bellis <rpb@psy.ox.ac.uk>
location: ftp /pub/mc6809/usim-* from ftp.cns.ox.ac.uk
  Alt.sources archive at FTP site:
     wuarchive.wustl.edu in usenet/alt.sources/articles
     files 10405.Z 10406.Z and 10407.Z
description: a mc6809 simulator
updated: ? 1993/02/14

language: mc6809
package: 6809, E-Forth
version: ?
parts:  assembler, simulator
author:  Lennart Benschop <lennart@blade.stack.urc.tue.nl>
location: alt.sources, 1993/11/03 <2b8i2r$j0e@tuegate.tue.nl>
description: An assembler and simulator for the Motorola M6809 processor.
  Also included is a Forth interpreter, E-Forth written
  in 6809.
ports:  assembler: Unix, DOS; simulator: Unix
updated: 1993/11/03

language: 68HC11
package: 68HC11 simulator
version: ? 1
parts:  simulator
author:  Ted Dunning <ted@nmsu.edu>
location: ftp pub/non-lexical/6811/sim6811.shar from crl.nmsu.edu
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 <mark@freenet.uwm.edu>
location: ftp pub/8051/assem from lyman.pppl.gov
    Europe: ftp pub/microprocs/MCS-51/csd4-archive/assem from nic.funet.fi
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 <stauffer@cpsc.ucalgary.ca>
  (Theo Deraadt wrote the S-record output routines)
location: comp.sources.misc volume 10
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 <jensenq@qcj.icon.com>
location: alt.sources archive or ftp ? from wuarchive.wustl.edu
description: ?
updated: ?

language: Motorola DSP56001
package: a56
version: 1.1
parts:  assembler
author:  Quinn C. Jensen <jensenq@qcj.icon.com>
location: 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 <S876795@UMSLVMA.UMSL.EDU>
location: SIMTEL20, pd1:<msdos.windows3>
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

language: Assembly (SPARC)
package: elfdis
version: 2.3
parts:  disassembler
author:  Bruce Ediger <bediger@teal.csn.org>
location: comp.sources.misc archives volume 42, issue 83
description: An object code disassembler for SPARC which, unlike the native
  SPARC disassembler, uses the relocation and dynamic linking
  information in the Elf file.
updated: 1994/05/08

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 
location: 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 <prechelt@ira.uka.de>
location: 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 <oz@sis.yorku.ca>, 
  Richard A. O'Keefe <ok@goanna.cs.rmit.OZ.AU>
location: 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 <pinard@iro.umontreal.ca>
location: ftp m4-1.0.tar.Z from a GNU archive site
    Macintosh: ftp pub/software/mac/src/mpw-c/* from nic.switch.ch.
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 <cunniff@fc.hp.com>, Tim Brengle
location: comp.sources.games 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 <ingber@cco.caltech.edu>
location: ftp pub/ingber/? from ftp.caltech.edu  
description: ? Language interface to neural net simulator?
discussion: asa-request@alumni.caltech.edu
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 <msample@cs.ubc.ca>
location: ftp /pub/local/src/snacc/snacc1.1.tar.Z from cs.ubc.ca
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 <brachman@cs.ubc.ca> or <snacc-bugs@cs.ubc.ca>
updated: 1993/07/12

language: Duel (a <practical> C debugging language)
package: DUEL
version: 1.10
parts:  interpreter, stand-alone module, documentation, test suites
author:  Michael Golan <mg@cs.princeton.edu>
location: ftp duel/* from ftp.cs.princeton.edu
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.
location: ftp pub/OMG_IDL_CFE_1.2/* from omg.org
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
  products.
requires: C++ 2.1 conformant C++ compiler
contact: idl-cfe@sun.com
updated: 1993/05/04

language: NeuDL
package: NeuDL - Neural-Network Description Language
version: 0.2
parts:  NeuDL interpreter, translator (NewDL->C++), user manual,
  NeuDL paper, examples
author:  Joey Rogers <jrogers@buster.eng.ua.edu>
location: cs.ua.edu in /pub/neudl/NeuDLver02.tar.gz
description: A prototype of a neural network description language with a
  C++ - like syntax currently limited to backpropagation neural
  nets.  There is enough flexibility in the language, though, to
  allow users to create dynamic neural net configurations.  The
  source is written in C++.
updated: 1994/05/23

language: NewsClip ?
package: NewsClip
version: 1.01
parts:  translator(NewsClip->C), examples, documentation
author:  Looking Glass Software Limited but distributed by 
  ClariNet Communications Corp.
location: ?
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: newsclip@clarinet.com
updated: 1992/10/25

language: PROGRESS
package: PROGRESS
version: RWTH 5.10
parts:  environment, interpreter, database, ?
author:  Dr. Andy Schuerr <andy@i3.informatik.rwth-aachen.de>,
  Albert Zuendorf <albert@i3.informatik.rwth-aachen.de>
location: send mail to authors
    sun4-bin: ftp pub/unix/PROGRES/? from ftp.informatik.rwth-aachen.de
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 <pugh@cs.umd.edu> and others
location: ftp pub/omega from ftp.cs.umd.edu
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: omega@cs.umd.edu
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 <cse.ogi.edu>,
  extended by William Pugh et al. <pugh@cs.umd.edu>
location: ftp pub/omega from cs.umd.edu
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 <omega@cs.umd.edu>
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
location: buy the book, or ftp published/oreilly/nutshell/lexyacc/? 
  from ftp.uu.net.
description: In _lex & yacc_, by Levine, Mason & Brown an SQL parser
  is included as an example grammar
updated: ?

language: SQL
package: MultiCal System
version: ?
parts:  ?
author:  Richard Snodgrass?
location: ftp tsql/multical from FTP.cs.arizona.edu.
description: [Anyone care to write a description? - ed]
restriction: public domain, freely available
contact: rts@cs.arizona.edu
updated: ?

language: ModSim - U. S. Army ModSim compiler
package: USAModSim
version: 1.0
parts:  compiler(->C), compilation manager, browser, library, 
  database interface language, documentation
author:  ?
location: ftp from max.cecer.army.mil in /ftp/isle
description: ModSim is a general-purpose, block-structured, object-
  oriented programming language with built in support
  for Simulation. Its "parent languages" are Modula-2 and
  Simula. It supports multiple inheritance, templates,
  reference types, polymorphism, and process-oriented
  simulation with synchronous and asynchronous activities
  using explicit simulation time.
  The documentation is extensive (>300 pages) and very good.
ports:  SPARC/SunOS, Silicon Graphics.
  According to the Doc, there is a DOS-Version (not found
  on the server.
contact: Charles Herring <herring@lincoln.cecer.army.mil>
updated: 1993/12/29

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 <jcalder@cs.sfu.ca>, Kevin Humphreys 
  <kwh@cogsci.ed.ac.uk>, Chris Brew <chrisbr@cogsci.ed.ac.uk>,
  Mike Reape <mreape@cs.tcd.ie>
location: ftp from hostname ai.uga.edu: /ai.natural.language/
description: A shell for grammar development, handles various grammatical
  formalisms.
requires: SICStus Prolog version 2.1#6 or later, and other programs
  readily available from the public domain.
contact: pleuk@cogsci.ed.ac.uk. 
updated: 1993/06/18

language: natural languages
package: proof
version: ?
parts:  parser, documentation
author:  Craig R. Latta <latta@xcf.Berkeley.EDU>
location: ftp src/local/proof/* from scam.berkeley.edu
description: a left-associative natural language grammar scanner
bugs:  proof@xcf.berkeley.edu
ports:  Decstation3100 Sun-4
discussion: proof-request@xcf.berkeley.edu ("Subject: add me")
updated: 1991/09/23

curiosities
-------------------------------------------------------------------------------
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 <matthew@engr.mun.ca>
location: garfield.cs.mun.ca:/pub/a1/a1.tar.Z
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 <esr@snark.thyrsus.com>
location: ftp pub/intercal/intercal0.9.* from sequoia.lle.rochester.edu
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 <steve@bat.lle.rochester.edu>
updated: 1993/05/20

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

language: Logo
package: Berkeley Logo
version: 3.0
parts:  interpreter
author:  Brian Harvey <bh@anarres.CS.Berkeley.EDU>
location: ftp pub/ucblogo/* from anarres.cs.berkeley.edu
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 <mills@athena.lkg.dec.com>
location: ftp pub/comp.lang.logo/programs/mswlogo from cher.media.mit.edu
  Source may require emailing George Mills.
description: A windows front-end for Berkeley Logo
bugs:  George Mills <mills@athena.lkg.dec.com>
ports:  MS Windows 3.x
status:  activly developed
updated: 1993/10/15

language: Loglan'82
package: Loglan82
version: ?
parts:  Cross-Compiler (->C)
author:  ?
location: ftp pub/Loglan82 from infpc1.univ-pau.fr
description: The academic community has a need for one language which
  enables to teach all elements of object programming: classes &
  objects, coroutines, processes (in Loglan'82 processes are
  objects which are able to act in parallel), inheritance,
  exception handling, dynamic arrays etc.
  Loglan'82 offers the complete sets of programming tools used in
  object and modular and structural programming. It is suggested
  to use it duringthe first two years of teaching and afterwards
  too.
  Loglan'82 supports other styles of programming e.g. programming
  by rules, functional programming etc.
restriction: GNU General Public License
requires: ?
announcements: send "SUBSCRIBE loglan82 <your_first_name> <your_name>" 
  to loglan82-request@crisv1.univ-pau.fr
contact: Andrzej.Salwicki@univ-pau.fr
updated: 1994/2/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 <tcl-archive@barkley.berkeley.edu>
language: FMPL of Accardi
package: FMPL interpreter
version: 1
parts:  interpreter, documentation
author:  Jon Blow <blojo@xcf.berkeley.edu>
location: ftp src/local/fmpl/* from xcf.berkeley.edu
description: FMPL is an experimental prototype-based object-oriented 
  programming language developed at the Experimental Computing
  Facility of the University of California, Berkeley.
  + lambda-calculus based constructs.
  + event-driven (mainly I/O events)
updated: 1992/06/02

language: Common Lisp
package: Garnet
version: 2.2
parts:  user interface builder
author:  The Garnet project
location: ftp /usr/garnet/garnet from a.gp.cs.cmu.edu
description: Garnet is a user interface development environment for Common
  Lisp and X11.  It helps you create graphical, interactive
  user interfaces for your software.  Garnet is a large scale
  system containing many features and parts including a custom
  object-oriented programming system which uses a
  prototype-instance model.  It includes postscript support,
  gester recognition, and Motif emulation.
contact: Brad_Myers@bam.garnet.cs.cmu.edu
updated: October 15, 1993

language: Garnet
package: Multi-Garnet
version: 2.1
parts:  ?
author:  Michael Sannella <sannella@cs.washington.edu>
location: ftp /usr/garnet/alpha/src/contrib/multi-garnet 
  from a.gp.cs.cmu.edu
description: better contstraint system for Garnet ??
updated: 1992/09/21

language: Isabelle
package: Issabelle-93
version: ?
parts:  ?
author:  Written by Lawrence C Paulson and Tobias Nipkow?
location: ftp /afs/cs.cmu.edu/user/mkant/Public/Lisp/ops5* from
  ftp.cs.cmu.edu
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: Larry.Paulson@cl.cam.ac.uk
  Tobias.Nipkow@informatik.tu-muenchen.de?
updated: 1993/12/20

-------------------------------------------------------------------------------
references
-------------------------------------------------------------------------------

name:  The Apple II Programmer's Catalog of Languages and Toolkits
version: 2.8
author:  Larry W. Virden <lvirden@cas.org>
location: posted to comp.sys.apple2, comp.lang.misc; ftp from
  idiom.berkeley.ca.us
description: A survey of language tools available for the Apple ][.
updated: 1993/11/28

name:  Catalog of embeddable Languages.
version: 2
author:  Colas Nahaboo <colas@bagheera.inria.fr>
location: posted to comp.lang.misc,comp.lang.tcl; 
  ftp pub/EmbeddedInterpretersCatalog.txt from avahi.inria.fr
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
location: ftp pub/oberon/comp_bib_1.4.Z from ftp.apple.com
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 <simonpj@dcs.glasgow.ac.uk>
location: 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 <billk@hawk.cs.ukans.edu>
location: posted regularly to comp.lang.misc; 
  ftp pub/comp.compilers/LanguageList* from primost.cs.wisc.edu;
  ftp pub/compilers-list/LanguageList* from idiom.berkeley.ca.us
description: Descriptions of almost every computer language 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 <sullivan@teal.csn.org>
location: 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 <mkant+@cs.cmu.edu>
location: 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 <tb06@CS1.CC.Lehigh.ED>
location: Posted to comp.lang.tcl,comp.lang.misc,comp.lang.perl,
  gnu.emacs.help,news.answers; or ftp 
  pub/gnu/emacs/elisp-ar*/pack*/Hy*Act*F*/survey-inter*-languages
  from archive.cis.ohio-state.edu.
description: Detailed comparision of a few interpreters: Emacs Lisp, 
  Perl, Python, and Tcl.
updated: ?

-------------------------------------------------------------------------------
archives
-------------------------------------------------------------------------------

language: Ada
package: AdaX
location: ftp pub/AdaX/* from falcon.stars.rosslyn.unisys.com
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]
contact: ?

language: APL, J
package: APL, J, and other APL Software at Waterloo
location: ftp languages/apl/index from watserv1.waterloo.edu
contact: Leroy J. (Lee) Dickey <ljdickey@math.waterloo.edu>

language: Assembler (Motorola)
location: ftp bode.ee.ualberta.ca : /pub/dos/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.

language: Assembler (Various)
package: The Beowulf archive?
location: hpcsos.col.hp.com : /misc/ns32k/beowulf
description: An archive of assemblers for various 8-bit microcontrollers

language: Assembler, Forth (8051)
package: The Siemens 8051 archive
location: ftp pub/8051/signetics-bbs from lyman.pppl.gov
description: An archive for development software and tools for the 8051
  microcontroller.
contact: jsm@phoenix.princeton.edu

language: Assembler (8051)
package: The CAS archive.
location: lyman.pppl.gov : /pub/8051/siemens-bbs
  nic.funet.fi: /pub/microprocs/MCS-51/csd4-archive
description: Another archive for development software and tools for the 8051
  microcontroller.  May be converted into a general
  microprocessor archive in the future.
language: C, C++, Objective-C, yacc, lex, postscript, 
  sh, awk, smalltalk, sed
package: the GNU archive sites
location: 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 prep.ai.mit.edu
    USA: ftp mirrors4/gnu/* from wuarchive.wustl.edu
  ftp pub/src/gnu/* from ftp.cs.widener.edu
  ftp gnu/* from uxc.cso.uiuc.edu
  ftp mirrors/gnu/* from col.hp.com
  ftp pub/GNU/* from gatekeeper.dec.com
  ftp packages/gnu/* from ftp.uu.net
    Japan: ftp ? from ftp.cs.titech.ac.jp
  ftp ftpsync/prep/* from utsun.s.u-tokyo.ac.jp
    Australia: ftp gnu/* from archie.au
    Europe: ftp gnu/* from src.doc.ic.ac.uk
  ftp pub/GNU/*/* from ftp.informatik.tu-muenchen.de [re-org'ed]
  ftp pub/gnu/* from ftp.informatik.rwth-aachen.de
  ftp pub/gnu/* from nic.funet.fi
  ftp pub/gnu/* from ugle.unit.no
  ftp pub/gnu/* from isy.liu.se
  ftp pub/gnu/* from ftp.stacken.kth.se
  ftp pub/gnu/* from sunic.sunet.se [re-org'ed]
  ftp pub/gnu/* from ftp.win.tue.nl
  ftp pub/gnu/* from ftp.diku.dk
  ftp software/gnu/* from ftp.eunet.ch
  ftp gnu/* from archive.eu.net [re-org'ed]
description: There are many sites which mirror the master gnu archives
  which live on prep.ai.mit.edu. Please do not use 
  the master archive without good reason.
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
  program.

language: Forth
location: anonymous@asterix.inescn.pt[192.35.246.17]:pub/forth
description: Forth implementations and programs
contact: Paulo A. D. Ferreira <?>

language: Haskell
location: anonymous@ftp.cs.chalmers.se:pub/haskell/library 
  anonymous@nebula.cs.yale.edu:pub/haskell/library
  anonymous@ftp.dcs.glasgow.ac.uk:pub/haskell/library
description: An archive of Haskell and Gofer programs

language: lisp
package: MIT AI Lab archives
location: ftp pub/* from ftp.ai.mit.edu
description: archive of lisp extensions, utilities, and libraries
contact: ?

language: lisp
package: Lisp Utilities collection
location: ftp /afs/cs.cmu.edu/user/mkant/Public/Lisp from ftp.cs.cmu.edu
description: ???
contact: cl-utilities-request@cs.cmu.edu

language: Scheme
package: The Scheme Repository
location: ftp pub/scheme/* from nexus.yorku.ca
description: an archive of scheme material including a bibliography, 
  the R4RS report, sample code, utilities, and implementations.
contact: Ozan S. Yigit <scheme@nexus.yorku.ca>

language: Smalltalk
package: Manchester Smalltalk Goodies Library
location: ftp uiuc/st*/* from st.cs.uiuc.edu
    UK:  ftp uiuc/st*/* from mushroom.cs.man.ac.uk
description: a large collection of libraries for smalltalk.
  Created by Alan Wills, administered by Mario Wolczko.
contact: goodies-lib@cs.man.ac.uk

language: Tcl
package: Tcl/Tk Contrib Archive
location: ftp tcl/* from barkley.berkeley.edu
description: An archive of Tcl/tk things.
contact: Jack Hsu <tcl-archive@barkley.berkeley.edu>

language: TeX
package: CTAN (Comprehensive TeX Archive Network
location: ftp ~ftp/tex-archive/* from ftp.shsu.edu
    Europe: ftp ? from ftp.uni-stuttgart.de   
description: A large archive site of most all things TeX-related, including
  literate programming tools such as WEB and derivatives.

-------------------------------------------------------------------------------
cross-reference
-------------------------------------------------------------------------------
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]
lref:  SUIF

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

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
lref:  Scheme

category: embeddable
description: These tools can be used as scripting languages 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
lref:  (Scheme) Ezd
iref:  (Caml Light) Caml Light
iref:  (Prolog) PI
iref:  (Prolog) XWIP
iref:  (Scheme) Elk
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: from Rainer Joswig (rainer@ki6.informatik.uni-hamburg.de) :
  To make it short: Reflective Languages have access to their own
  implementation. One can ask about the state of the running
  system and/or change aspects of the language.
lref:  ABCL ???
lref:  ABCL/1
lref:  MeldC
lref:  3-Lisp
lref:  CLOS with MOP (Meta Object Protocol)

category: terminal graphics support
description: These are languages that can access curses, or have an
  equivalent.
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 compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.
