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

concurrent, parallel, 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
location: ftp pub/abcl1/* from camille.is.s.u-tokyo.ac.jp
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: abcl@is.s.u-tokyo.ac.jp
updated: 1990/05/23

language: ABCL ???
package: ABCL/R2
version: ?
parts:  ?
author:  masuhara@is.s.u-tokyo.ac.jp, matsu@is.s.u-tokyo.ac.jp,
  takuo@is.s.u-tokyo.ac.jp, yonezawa@is.s.u-tokyo.ac.jp
location: ftp pub/abclr2/* from camille.is.s.u-tokyo.ac.jp
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 <mitsolid@cs.nyu.edu>
location: ftp pub/local/alloy/* from cs.nyu.edu
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 <dana@rucs.faculty.cs.runet.edu>
location: 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 <lowry@watson.ibm.com>
location: ftp pub/hermes/README from software.watson.ibm.com
description: Hermes is a very-high-level integrated language and
  system for implementation of large systems and
  distributed applications, as well as for
  general-purpose programming.  It is an imperative,
  strongly typed, process-oriented language.  Hermes
  hides distribution and heterogeneity from the
  programmer.  The programmer sees a single abstract
  machine containing processes that communicate using
  calls or sends.  The compiler, not the programmer,
  deals with the complexity of data structure layout,
  local and remote communication, and interaction with
  the operating system.  As a result, Hermes programs are
  portable and easy to write.  Because the programming
  paradigm is simple and high level, there are many
  opportunities for optimization which are not present in
  languages which give the programmer more direct control
  over the machine.
reference: Strom, Bacon, Goldberg, Lowry, Yellin, Yemini. Hermes: A
  Language for Distributed Computing. Prentice-Hall, Englewood
  Cliffs, NJ.  1991.  ISBN: O-13-389537-8.
ports:  RS6000 Sun-4 NeXT IBM-RT/bsd4.3 (Sun-3 and Convex soon)
discussion: comp.lang.hermes
updated: 1992/03/22

language: PCN
package: PCN
version: 2.0
parts:  compiler?, runtime, linker, libraries, tools, debugger, 
  profiler, tracer
author:  Ian Foster <foster@mcs.anl.gov>, Steve Tuecke
  <tuecke@mcs.anl.gov>, and others
location: ftp pub/pcn/pcn_v2.0.tar.Z from info.mcs.anl.gov
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
  simulation.
ports:  (workstation nets): Sun4, NeXT, RS/6000, SGI
  (multicomputers): iPSC/860, Touchstone DELTA
  (shared memory multiprocessors): Symmetry/Dynix
contact: <pcn@mcs.anl.gov>
updated: 1993/02/12

language: LOOPN
package: LOOPN
version: ?
parts:  compiler?, simulator
author:  ?
location: ftp departments/computer_sci*/loopn.tar.Z from ftp.utas.edu.au
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 <charles@probitas.cs.utas.edu.au>
updated: 1992/12/20

language: Simula
package: Lund Simula
version: 4.07
parts:  ?
author:  ?
location: ftp misc/mac/programming/+_Simula/* from rascal.ics.utexas.edu
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:  ?
location: ftp sr/sr.tar.Z from cs.arizona.edu
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
  supported.
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: info-sr-request@cs.arizona.edu
contact: sr-project@cs.arizona.edu
updated: 1992/09/01

language: UNITY
package: MasPar Unity
version: 1.0
parts:  translator(UNITY->MPL), documentation
author:  Martin Huber, University of Karlsruhe, Germany
location: ftp pub/maspar/maspar_unity* from SanFrancisco.ira.uka.de
description: ?
contact: Lutz Prechelt <prechelt@ira.uka.de>
updated: ?

language: UNITY
package: HOL-UNITY
version: 2.1
parts:  verification tool
author:  ?
location: ?
description: ?
contact: Flemming Andersen <fa@tfl.dk> ?
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 <mip@sectra.se>
location: 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:  ?
location: comp.sources.unix archive volume 1
description: ?
updated: ?

language: Forth
package: pfe (Portable Forth Environment)
version: 0.9.4
parts:  ?
author:  Dirk Zoller <duz@roxi.rz.fht-mannheim.de>
location: ftp pub/unix/languages/pfe* from duz@roxi.rz.fht-mannheim.de
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: 1994/05/02

language: Forth
package: F68K
version: ?
parts:  ?
author:  ?
location: ftp atari/Languages/f68k.* from archive.umich.edu
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 <joerg.plewe@mpi-dortmund.mpg.de>
updated: 1992/12/14

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

language: Mops
package: Mops
version: 2.3.1
parts:  compiler, documentation, editor
author:  Michael Hore <mikeh@kralizec.zeta.org.au>
location: ftp pub/Yerk/? from oddjob.uchicago.edu
description: Like Yerk, Mops is descended from the ex-commercial
  object-oriented language Neon. Mops features an
  optimizing native-code compiler; it is much faster
  than Yerk, but less compatible with Neon. Mops
  includes extensions such as multiple inheritance.
ports:  Macintosh
updated: ?

language: Kevo (Forth-like)
package: kevo
version: 0.9b6
parts:  interpreter, demo programs, user's guide, papers
author:  Antero Taivalsaari <tsaari@cs.uta.fi>
location: ftp /pub/kevo/* from cs.uta.fi
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: kevo-interest@ursamajor.uvic.ca
updated: 1993/05/18

language: Yerk
package: Yerk
version: 3.62
parts:  ?
author:  ?
location: ftp pub/Yerk/? from oddjob.uchicago.edu
description: Yerk is an object oriented language based on a
  Forth Kernel with some major modifications.  It
  was originally known as Neon, developed and sold
  as a product by Kriya Systems from 1985 to 1989.
  Several of us at The University of Chicago have
  maintained Yerk since its demise as a product.
  Because of the possible trademark conflict that
  Kriya mentions, we picked the name Yerk, which is
  at least not an acronym for anything, but rather
  stands for Yerkes Observatory, part of the Department
  of Astronomy and Astrophysics at U of C.
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 <Steven.Pemberton@cwi.nl>
location: ftp programming/languages/abc/examples/grammar/*
  from ftp.eu.net or ftp.nluug.net
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: Steven.Pemberton@cwi.nl
updated: 1993/07/05

language: ? attribute grammar ?
package: Alpha
version: pre-release
parts:  semantic-analysis generator?, documentation(german)
author:  Andreas Koschinsky <koschins@cs.tu-berlin.de>
location: 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,
  Fortran)
author:  Kurt Bischoff <bischoff@cs.iastate.edu>
location: ftp pub/ox/* from ftp.cs.iastate.edu
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
  grammars.
features: LALR(1), semantic-analyzer generation.
bugs:  none known.  Report bugs to ox-project@cs.iastate.edu.
restriction: Use of Ox is free.  Ox-generated code is the property of
  the Ox user.
ports:  Unix
contact: ox-request@cs.iastate.edu
updated: 1993/11/14

language: BNF (Extended)
package: Gray
version: 3
parts:  parser generator(Forth)
author:  Martin Anton Ertl <anton@mips.complang.tuwien.ac.at>
location: 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
location: ? 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
location: ftp from csczar.ncsu.edu
description: ?
status:  ?
contact: ?
updated: 1990/03/31

language: BNF ??
package: ATS (Attribute Translation System)
version: ?
parts:  ?
author:  ? University of Saskatchewan ?
location: ?
description: generates table-driven LL(1) parsers with full insert-only
  error recovery.  It also handles full left-attribute semantic
  handling, which is a dream compared to using YACC's parser
  actions.
status:  ?
contact: ? (suggested: Dave Bocking <bocking@cs.usask.ca>)
updated: 1988/11/29

language: BNF (Extended)
package: PCCTS (Purdue Compiler-Construction Tool Set)
version: 1.20
parts:  scanner generator, parser generator (pred-LL(k)), 
  documentation, tutorial
author:  Terence J. Parr <parrt@acm.org>, Will E. Cohen
  <cohenw@ecn.purdue.edu>, Henry G. Dietz <hankd@ecn.purdue.edu>,
  Russel W. Quong <quong@ecn.purdue.edu>
location: ftp pub/pccts/1.20/pccts.tar.Z from marvin.ecn.purdue.edu
    UK:  ftp computing/programming/languages/tools/pccts/* 
  from src.doc.ic.ac.uk
    Macintosh: ftp pub/mac/* from maya.dei.unipd.it 
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++. Version 1.20 now generates C++ code as well as K&R
  and ANSI C variants.
ports:  Unix, DOS, OS/2, Macintosh
portability: very high
discussion: send mail with a body of "subscribe pccts-users your_name" 
  to pccts-users-request@ahpcrc.umn.edu
contact: Terence J. Parr <parrt@acm.org>
  Roberto Avanzi (mocenigo@maya.dei.unipd.it) (for the Mac port)
updated: 1994/04/29

language: BNF (very extended), yacc
package: PRE-CC Xtended
version: 2.30
parts:  library, parser generator (LL(oo)), translator(yacc->)
author:  Peter Breuer
location: FTP: ftp.comlab.ox.ac.uk:/pub/Programs/preccx.tar.Z (Unix)
       ftp.comlab.ox.ac.uk:/pub/Programs/preccx.msdos (MS-DOS)
                     ftp.comlab.ox.ac.uk:
   /pub/Documents/techpapers/Jonathan.Bowen/preccx-uug.ps.Z
  (more recent versions available by subscription)
  URL: http://www.comlab.ox.ac.uk/archive/redo/precc.html
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.

  "A PREttier Compiler-Compiler: Generating Higher Order
  Parsers in C"  P.T. Breuer and J.P. Bowen.
  Oxford University Computing Laboratory Technical Report
  PRG-TR-20-92, 25pp, November 1992. Accepted by
  Software - Practice and Experience, 1994.
  FTP: ftp.comlab.ox.ac.uk
         /pub/Documents/techreports/TR-20-92.ps.Z
ports:  unix, MS-DOS
contact: Peter Breuer <ptb@comlab.ox.ac.uk>,
  Jonathan Bowen <bowen@comlab.ox.ac.uk>
updated: 1994/06/02

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

language: BNF
package: wacco
version: 1.1, July 91
parts:  parser generator
author:  Parag Patel (parag@netcom.com, parag@sde.hp.com)
location: comp.sources.misc volume ?
description: Wacco is a recursive descent LL(1) parser generator that
  generates C++ code.  Its syntax is similar to YACC
  with a lot of sugaring.  It can also do attribute-driven
  parsing.  The source is bootstrapped wacco code.
ports:  HP-UX s300 and s800, Sparc, and 4.3BSD (on HP)
portability: Host machine must be 32 bits.
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:  ?
location: ? ftp pub/cocktail/dos from ftp.karlsruhe.gmd.de
     (many name servers having trouble resolving this address)
    OS/2: ftp.eb.ele.tue.nl/pub/src/cocktail/dos-os2.zoo 
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 listserv@eb.ele.tue.nl
contact: Josef Grosch <grosch@karlsruhe.gmd.de>
    OS/2: Willem Jan Withagen <wjw@eb.ele.tue.nl>
updated: 1992/10/01

language: BNF ????
package: T-gen
version: 2.1
parts:  parser generator, documentation, ?
author:  Justin Graver <graver@comm.mot.com>
location: ftp pub/st80_r41/T-gen2.1/* from st.cs.uiuc.edu
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:  ?
location: ftp pub/cs/distribs/eli/* from ftp.cs.colorado.edu
    Europe: ftp unix/eli from ftp.uni-paderborn.de
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
discussion: <eli-request@cs.colorado.edu>
contact: <compiler@cs.colorado.edu>, <compiler@uni-paderborn.de>
updated: 1993/11/01

language: BNF
package: tom (demo for Tomita Parsing algorithm)
version: 1
parts:  parser generator, parser interpreter, examples, documentation
author:  Mark Hopkins <mark@omnifest.uwm.edu>
location: iecc.com in pub/files/tomita.tar.gz
  alt.sources archive from October 4, 1993.
description: An implementation of the Tomita parsing algorithm using
  LR(0) tables and dynamic programming.
reference: Kluwer '91, _Generalized LR Parsing_, Tomita ed., 0-7923-9201-9
  "The Tomita Parsing Algorithm ...", comp.compilers May 20, 1994
features: Cyclic context free grammars are processed.
portability: System independent
updated: 1993/10/03

language: BNF (yacc)
package: NewYacc
version: 1.0
parts:  parser generator, documenation
author:  Jack Callahan <callahan@mimsy.cs.umd.edu> 
location: ftp src/newyacc.1.0.*.Z from flubber.cs.umd.edu
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 and Richard Stallman <rms@gnu.mit.edu>
location: ftp bison-1.16.tar.Z from a GNU archive site
description: ?
bugs:  bug-gnu-utils@prep.ai.mit.edu
restriction: !! will apply the GNU General Public License to *your* code !!
ports:  unix, atari, ?
updated: 1993/09/14

language: BNF (yacc), Lex
package: Bison++ and Flex++
version: 1.21-8 (bison), 2.3.8-7 (flex), 5 (flex++bison++misc)
parts:  translator, documentation, postscript, examples, DOS binary
author:  Alain Coetmeur <coetmeur@icdc.fr>
location: cse.unl.edu in ~ftp/pub/nandy/c++/tools/LATEST/*
    Europe: mirrored on ftp.th-darmstadt.de
description: A retargeting of bison-1 and flex 2.3 to C++, able to
  generate classes.  As with Bison and Flex, these two tools
  are independent but designed for mutual compatibility.
  The version numbering has been changed for consistency with
  Flex and Bison, so versions of flex3.0.x and bison2.x of this
  package are are actually earlier versions, not later.
  Examples are provided to help in getting started.
conformance: Mostly compatible with flex2.3 and bison 1 in C, apart
  from the ability to generate classes.
features: Almost all symbol names can be redefined, parsers can be
  shared in C and C++ in the same headers... very extensible...
  flex++ support IOSTREAM and STDIO in C++.
bugs:  Contact coetmeur@icdc.fr (current author and maintainer).
restriction: GNU License for bison++. Same as flex for flex++.
ports:  SUNOS4, DOS, and same ports as Flex/Bison, Windows NT (tested)
portability: Larger memory model required on DOS (DOS binary supplied).
status:  active, supported, might not support flex 2.4
discussion: coetmeur@icdc.fr, news: comp.compiler, or comp.lang.c++
help:  coetmeur@icdc.fr, news: comp.compiler, or comp.lang.c++
  for substantial problems.
support: see help, no commercial support. (volunteer ?)
announcements: mail list locally maintained by coetmeur@icdc.fr,
  news: comp.compiler comp.lang.c++
updated: 1994/02/07
lref:  C
lref:  C++
lref:  Lex
lref:  Yacc

language: BNF (yacc)
package: bison-A2.2
version: 2.2 (corresponds to gnu bison 1.22)
parts:  parser generator, C-parser, C++parser, documentation
author:  Fred Hansen <wjh+@cmu.edu>
location: ftp://ftp.andrew.cmu.edu/pub/AUIS/bison/bison-A2.2.tar.gz
  also in contrib/andrew on the XV11R6 distribution in directories
     overhead/bison, overhead/mkparser (but not the C++ version
     of the parser)
description: This is the standard gnu bison with a number of improvments:
  license-free parsers for C and C++, only one external symbol
  for each grammar, permits multiple grammars per application,
  better error reports on the grammar.
conformance: grammars are the same as bison and yacc; but run-time errors
  are handled differently, so semantic rules must be changed
features: tokens in the grammar can be expressed as ">=" instead of GE
bugs:  send bugs to info-andrew-bugs@andrew.cmu.edu
restriction: none (unless you use the native gnu-bison parser)
ports:  has been tested on most Unix platforms
portability: generation of names for temp files is system dependent.
discussion: info-andrew@andrew.cmu.edu   (mirrored to comp.soft-sys.andrew)
support: supported by the Andrew Consortium
contributions: your organization is invited to join the Andrew Consortium
  info-andrew-request@andrew.cmu.edu
updated:        1994/05/09

language: BNF (yacc)
package: ? jaccl ?
version: ?
parts:  parser generator
author:  Dave Jones <djones@megatest.uucp>
location: ?
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 <Robert.Corbett@eng.sun.com>
location: 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:  ?
location: iecc.com (140.186.81.1) at pub/file/lyprg.zip.
description: Lex and Yacc retargeted to Pascal.
contact: ? dpoole@hydrogen.oscs.montana.edu (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)
location: ftp pub/irus/aflex-ayacc_1.2a.tar.Z from liege.ics.uci.edu
description: Lex and Yacc equivalents that produce Ada output
announcements: irus-software-request@ics.uci.edu
contact: irus-software-request@ics.uci.edu
updated: 1993/01/06

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

language: BNF (yacc), Standard ML
package: New SML-Yacc and SML-Lex
version: ??
parts:  ??
author:  Andrew Appel <appel@tyrolia.princeton.edu>
location: princeton.edu in pub/ml, files mlyacc94.tar.Z, lexgen94.tar.Z.
description: ??
updated: 1994/05/23

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 <goer@midway.uchicago.edu>
location: 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 <torbenm@diku.dk>
location: ftp pub/diku/dists/Ratatosk.tar.Z from ftp.diku.dk
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: lalr.ss - An LALR(1) parser generator
version: 0.9 
parts:  parser generator (->Scheme)
author:  Mark Johnson <mj@cs.brown.edu>
location: 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 <cwf@research.att.com>, David R. Hanson
  <drh@princeton.edu>, Todd A. Proebsting <todd@cs.arizona.edu>
location: ftp pub/iburg.tar.Z from ftp.cs.princeton.edu
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
location: ftp scorpion/* from cs.arizona.edu
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: info-scorpion-request@cs.arizona.edu
contact: scorpion-project@cs.arizona.edu
updated: 1993/11/04

language: COCOL (EBNF variant)
package: COCO/R
version: 1.36
parts:  parser generator(LL(1))
author:  Hanspeter Moessenboeck <moessenboeck@inf.ethz.ch>
  Port to Modula-2 done by Marc Brandis, Christof Brass 
  and Pat Terry <cspt@alpha.ru.ac.za>
location: neptune.inf.ethz.ch:/pub/Coco
  ftp.psg.com:/pub/modula-2/coco
  cs.ru.ac.za:/pub/coco
  pluto.fit.qut.edu.au:/pub/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.
reference: _A compiler generator for microcomputers_, by Rechenberg 
  and Mossenbock (Prentice Hall, 1989, 0-13-155136-1)
bugs:  MS-DOS related versions: Pat Terry <cspt@alpha.ru.ac.za>
  Other: Hanspeter Moessenboeck <moessenboeck@inf.ethz.ch>
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: 1994/06/23

language: EAG (Extended Affix Grammar)
package: EAG
version: first public release
parts:  recognizer generator, transduccer generator, 
  translator generator, editor generator, documentation
author:  Marc Seutter <marcs@cs.kun.nl>
location: ftp pub/eag/* from hades.cs.kun.nl
description: The Extended Affix Grammar formalism, or EAG for short, 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.
updated: 1993/09/14

language: EBNF
package: ETO
version: test version
parts:  parser, postscript document, examples
author:  Lin Li <china@bernina.ethz.ch>
location: FTP: fi.ethz.ch under /pub/ETO/eto-09.*
description: ETO is an object oriented universal syntax checker.  It takes
  an EBNF specification for a language and then uses it on an
  input file to check its syntax.
updated: 1994/06/03

language: lex
package: flex
version: 2.3.8
parts:  scanner generator
author:  Vern Paxson <vern@ee.lbl.gov>
location: ftp flex-2.3.8.tar.Z from a GNU archive site or ftp.ee.lbl.gov
description: ?
updated: ?

language: Regular Expressions
package: re2c
version: alpha
parts:  translator (re->c)
author:  ?? peter@csg.uwaterloo.ca
location: csg.uwaterloo.ca in /pub/peter/re2c.0.5.tar.gz
description: A regular expression to C converter.
updated: ?? 1994/04/29

language: Milarepa 
package: Milarepa Perl/BNF Parser 
version: Prototype 1.0
parts:  parser-generator, examples, tutorial
author:  Jeffrey Kegler <jeffrey@netcom.com>
location: via anonymous ftp at
  alexia.lis.uiuc.edu:/pub/perl/marpa-1.0.tar.Z
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: 1994/04/27

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 <budd@cs.orst.edu>
location: ? ftp pub/budd/kamin/*.shar from cs.orst.edu ?
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 <budd@fog.cs.orst.edu>
updated: 1991/09/12

language: Relation Grammar
package: rl
version: ?
parts:  ?
author:  Kent Wittenburg <kentw@bellcore.com>
location: fto rl/* from flash.bellcore.com
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 <cordy@qucis.queensu.ca> (language), 
  Rayan Zachariassen <rayan@cs.toronto.edu> (C implementation)
location: ftp pub/ssl.tar.Z from neat.cs.toronto.edu
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 <cordy@qucis.queensu.ca>
location: ftp pub/txl/* from ftp.qucis.queensu.ca 
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
  transformation.
reference: Several listed in software documentation
updated: 1993/08/04

language: BNF (extended)
package: SORCERER: A Simple Tree Parser Generator
version: 1.00B
parts:  translator, documentation, tutorial, examples
author:  Terence Parr <parrt@s1.arc.umn.edu>
location: ftp pub/pccts/sorcerer/* from marvin.ecn.purdue.edu 
description: SORCERER is more suitable for the class of translation problems
  lying between those solved by code-generator generators and by
  full source-to-source translator generators.  SORCERER
  generates simple, flexible, top-down, tree parsers that, in
  contrast to code-generators, may execute actions at any point
  during a tree walk.  SORCERER accepts extended BNF notation,
  allows predicates to direct the tree walk with semantic and
  syntactic context information, and does not rely on any
  particular intermediate form, parser generator, or other
  pre-existing application.
reference: Several listed in software documentation
discussion: send mail with a body of "subscribe pccts-users your_name" to
  pccts-users@ahpcrc.umn.edu. "your_name" can be email, or full.
help:  from mailing list
support: actively supported, from mailing list
updated: 1994/02/15

mathematical tools and languages
-------------------------------------------------------------------------------
category: mathematical tools and languages
description: These are either special-purpose languages and tools, or
  general purpose languages 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:  ?
location: ftp languages/apl/* from watserv1.waterloo.edu
description: ?
updated: 1992/07/06

language: APL
package: APLWEB
version: ?
parts:  translator(web->apl), translator(web->TeX)
author:  Dr. Christoph von Basum <CvB@erasmus.hrz.uni-bielefeld.de>
location: ftp languages/apl/aplweb/* from watserv1.uwaterloo.ca
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:  ?
location: ftp pub/j/gmacs/j-interaction-mode.el from think.com
description: add on to J
updated: 1991/03/04

language: RLaB language (math manipulation - MATLAB-like)
package: RLaB
version: 0.99i
parts:  interpreter, libraries, documentation
author:  v. 0.95:  Ian Searle <ians@eskimo.com>
  v. 0.99i: Matt Wette <mwette@mr-ed.jpl.nasa.gov>
location: v. 0.95:  ftp pub/RLaB/* from evans.ee.adfa.oz.au
  v. 0.99i: csi.jpl.nasa.gov in /pub/matlab/RLaB
  [Could someone explain/rectify this? -- Mark]
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
  array.
bugs:  v. 0.95: Ian Searle <ians@eskimo.com>
restriction: GNU General Public License
requires: GNUPLOT, lib[IF]77.a (from f2c)
ports:  many unix, OS/2, Amiga
updated: 1994/05/14

language: octave language (math manipulation - MATLAB-like)
package: octave
version: 1.0
parts:  interpreter, libraries, documentation
author:  John W. Eaton
location: ftp /pub/octave/* from ftp.che.utexas.edu
  also, any GNU archive site (see archive listing below)
description: Octave is a high-level language, primarily intended for
  numerical computations.  It provides a convenient command line
  interface for solving linear and nonlinear problems
  numerically.
  Octave can do arithmetic for real and complex scalars and
  matrices, solve sets of nonlinear algebraic equations,
  integrate functions over finite and infinite intervals, and
  integrate systems of ordinary differential and
  differential-algebraic equations.
bugs:  bug-octave@che.utexas.edu
restriction: GNU General Public License
requires: gnuplot, C++ compiler and FORTRAN compiler or f2c translator.
ports:  several
updated: 1994/2/23

language: FUDGIT language (math manipulation)
package: FUDGIT
version: 2.27
parts:  interpreter
author:  Thomas Koenig <ig25@rz.uni-karlsruhe.de> ??
location: ftp /pub/linux/sources/usr.bin/fudgit-* from tsx-11.mit.edu ??
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 <mark@omnifest.uwm.edu>
location: alt.sources (10/04/93), or contact author by E-mail.
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 <phil@cs.wwu.edu>
location: 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).
conformance: Superset of POSIX BC (P10003.2/D11), with a POSIX-only mode.
restriction: Source code falls under the GNU CopyLeft.
requires: vsprintf and vfprintf routines
ports:  Unix (BSD, System V, MINIX, POSIX)
updated: ?

language: Calc?  (symbolic math calculator)
package: Calc
version: 2.02
parts:  interpreter, emacs mode, documentation
author:  Dave Gillespie <daveg@cs.caltech.edu>
location: 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 <dbell@canb.auug.org.au>
location: ftp pub/calc from ftp.uu.net
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:  ?
location: 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
  operations.
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
location: ftp from netlib@research.att.com:netlib/f2c/src/*
description: translator (Fortran 77 to ANSI C or C++)
bugs:  D. M. Gay <dmg@research.att.com>
updated: 1993 April 27

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

language: Fortran
package: Flow
version: ?
parts:  ?
author:  Julian James Bunn <julian@vxcrna.cxern.ch>
location: 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:  ?
location: ftp gmd/adaptor/adp_1.0.tar.Z from ftp.gmd.de
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 <brandes@gmd.de>
updated: 1993/06

language: Fortran, C
package: cfortran.h
version: 2.6
parts:  macros, documentation, examples
author:  Burkhard Burow
location: ftp cfortran/* from zebra.desy.de
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: burow@vxdesy.cern.ch
updated: 1992/04/12

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

language: Fortran
package: ?
version: ?
parts:  ?
author:  Steve Mccrea <mccrea@gdwest.gd.com>
location: ?
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:  metcalf@cernvm.cern.ch <Michael Metcalf>
location: ftp pub/MandR/convert.f90 from jkr.cc.rl.ac.uk
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 <hui@yrloc.ipsa.reuter.com>
location: ftp languages/apl/j/* from watserv1.waterloo.edu
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)
location: 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
location: ftp pub/y+po.tar.Z from ftp.cs.princeton.edu
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
  ftp.cs.princeton.edu: /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.
  1980.
  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:  ?
location: ftp pub/ptolemy/* from ptolemy.bekeley.edu
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: ptolemy-hackers-request@ohm.berkeley.edu
contact: ptolemy@ohm.berkeley.edu
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
location: ftp from pub/edif in ic.berkeley.edu
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 <martin@essex.ac.uk>
location: ftp pub/dank/xnf2ver.tar.Z from punisher.caltech.edu
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:  ?
location: ftp pub/cao-vlsi/alliance from ftp-masi.ibp.fr
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: alliance-request@masi.ibp.fr
contact: cao-vlsi@masi.ibp.fr
updated: 1993/02/16
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.
