Archive-name: compilers/free/part4
Last-modified: 1996/04/01
Version: 9.0

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:		uC++
lref:		MeldC
lref:		pm2
lref:		Simula 67
iref:		(Tcl) MTtcl - Multi-threaded Tcl

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:	ICC++ (Illinois Concert C++) and CA (Concurrent Aggregates)
package:	Illinois Concert System
version:	3.0
parts:		compiler(->C++), interpreter, symbolic debugger, parallel
		runtime simulator, parallel implementation on TMC CM5,
		Cray T3D
author:		Various, concert@red-herring.cs.uiuc.edu
location:	http://www-csag.cs.uiuc.edu/projects/concert.html
description:	The Concert System incorporates global analysis for
		parallel object-oriented languages, including
		aggressive concrete type inference.  In addition, it 
		include an extremely lightweight communication and 
		threading library (compiler-supported).	 The
		implementation supports both a parallel C++ and 
		a simple parallel object-oriented language called 
		Concurrent aggregates.
conformance:	ICC++ and CA documentation available from the web site.
reference:	Andrew Chien, et. al. The Concert System -- Compiler and 
		Runtime Support for Efficient Fine-Grained Concurrent 
		Object-Oriented Programs, Department of Computer Science, 
		University of Illinois, Urbana, Illinois, Technical 
		Report UIUCDCS-R-93-1815, June 1993.
		(Others are available also)
bugs:		concert@red-herring.cs.uiuc.edu
restriction:	redistribution is restricted
announcements:	where new releases are announced
contact:	Andrew Chien   achien@cs.uiuc.edu
updated:	1995/05/07  Version 3.0
lref:		C++

language:	OCCAM 2 (A parallel, concurrent, distributed language)
package:	D7202-oc / TDS
version:	?
parts:		compiler & full toolset system
author:		INMOS Ltd.
location:	ftp://unix.hensa.ac.uk/pub/parallel/occam/compilers/inmos
		http://www.hensa.ac.uk/parallel/occam/compilers/inmos/index.html
requires:	INMOS OCCAM compiler D7202 from: 
		ftp://unix.hensa.ac.uk/pub/parallel/occam/compilers/inmos/oc
ports:		Sun4 (DEC Alpha and Motorola PowerPC to follow)
portability:	Sparc processor only at present
status:		actively developed, supported
discussion:	comp.sys.transputer, <ofa-com-request@ukc.ac.uk>
contact:	Occam For All Team <ofa-bugs@ukc.ac.uk>
updated:	4-May-1995

language:	OCCAM 2 (A parallel, concurrent, distributed language)
package:	SPOC (Southampton Portable Occam Compiler)
version:	1.1
parts:		compiler(->C), run-time system, documentation, tools, examples
author:		Denis Nicole <dan@ecs.soton.ac.uk>, 
		Sean Wykes <smw@ecs.soton.ac.uk>, 
		Mark Debbage <md@pact.srf.ac.uk>, 
		Mark Hill <mbh@pact.srf.ac.uk>
location:	ftp://ftp.ecs.soton.ac.uk/pub/occam/spoc1.1
		ftp://unix.hensa.ac.uk/pub/parallel/occam/compilers/spoc
		http://www.hensa.ac.uk/parallel/occam/compilers/spoc/index.html
description:	supports the OCCAM 2 programming language.
conformance:	Full implementation of OCCAM 2
reference:	"OCCAM 2 reference manual", INMOS ltd, Prentice-Hall
		International, ISBN 0-13-629312-3
features:	The system generates ANSI-C code, implementing efficient
		portable concurrency running on a single target processor.
		Supports cross-linking with NAG Fortran-90 compiler.
restriction:	GPL'ed
requires:	C compiler, gmd compiler tools (available with compiler
		sources) (Sun4 binaries available)
ports:		Sun3, Sun4
portability:	? Should work on most UNIXes
status:		actively developed, supported
discussion:	comp.sys.transputer
contact:	Dr Denis A Nicole <dan@ecs.soton.ac.uk>
updated:	1-March-1994

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, usually
		interpreted, descended from the FORTH language originally
		developed for telescope control.
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:	Forth
package:	M4th
version:	?
parts:		interpreter, kernel, editor, application (8086 assembler),
		hypertext-based documentation, decompiler
author:		Nils M. Holm <fs29@rummelplatz.uni-mannheim.de>
location:	ftp.uni-stuttgart.de:/pub/systems/pc/lang/forth/m4th10.zip
description:	A small Forth implementation
ports:		MSDOS.
updated:	1994/06/28

language:	Forth
package:	ThisForth
version:	?
author:		?
location:	ftp pub/wilbaden/this4th-00B01.MAC.sit.* from ftp.netcom.com
description:	ThisForth has been built for Macintosh and PowerMac.There is
		still a single source for all incarnations. For now there is
		just a console interface for the Mac and PowerMac.
ports:		Macintosh, PowerMac
updated:	1994/09/20

language:	Mops
package:	Mops
version:	2.6
parts:		compiler, assembler, documentation, editor
author:		Michael Hore <mikeh@zeta.org.au>
location:	ftp://taygeta.oc.nps.navy.mil/pub/Forth/Mops/Mops26s.sea
		ftp pub/MAC/Yerk from astro.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.
conformance:	Includes a prologue for ANSI Forth.
features:	+ classes for all the standard Mac interface items
		+ can produce double-clickable applications
		+ extremely fast edit-compile cycle
		+ includes a PowerPC assembler
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 /pub/abc/examples/grammar/* from ftp.cwi.nl
		or http://www.cwi.nl/~steven/abc/examples/grammar
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:	attribute grammar
package:	Rie
version:	1.0.6
parts:		compiler generator, attribute evaluator generator
author:		Masataka Sassa, Kazuhiro Kuroishi, Teruhisa Hirai and
		Yoshiki Ohshima
location:	ftp pub/Rie/* from ftp.is.titech.ac.jp
description:	Rie is a yet another compiler generator which is based on
		a one-pass attribute grammar called ECLR-attributed grammar.
		ECLR-attributed grammar is a superset of LR-attributed
		grammar, and the generated compiler can evaluate both
		inherited and synthesized attributes in parallel with LR
		parsing without creating a parse tree.  The style of the
		Rie description is derived from Yacc, but the semantic
		section of a production may contain attribution rules.
		Because the specification is based on attribute grammar,
		user can integrate syntax and semantics in one description.
		Rie also accepts shorthand notations, context conditions
		and `local' attributes, which are useful to write actual
		compilers.
		The generated compiler is only 1.8 times slower than a
		handwritten compiler.  Rie generates an attribute evaluator
		in C source.
		The package includes sample descriptions of PL/0 compiler
		and of a sample of simple semantic analyzer, and documentation.
reference:	Sassa, M., Ishizuka, H., and Nakata, I.:
		Rie, a Compiler Generator Based on a One-Pass
		Attribute Grammar, Res. Rep. C-107, Dept. of Inf.
		Sci., Tokyo Institute of Technology
		(Now, only a printed version is available.  Contact
		rie-info@is.titech.ac.jp.  Electric version will be
		available from ftp://ftp.is.titech.ac.jp/pub/Rie/Papers/* .)
bugs:		Bug reports are welcome to rie-comments@is.titech.ac.jp.
restriction:	Rie is implemented by modifying Bison, so Rie must be
		also covered by GNU General Public License version 2
		and Bison's restriction. 
requires:	C compiler
ports:		UNIX, DOS, etc. (same as bison) and Sharp X68000
status:		We hope that it is stable
contact:	rie-info@is.titech.ac.jp>
updated:	1995/09/20

language:	BNF (Extended, actually a regular right part grammar)
package:	Gray
version:	4
parts:		parser generator, documentation, examples
author:		Martin Anton Ertl <anton@mips.complang.tuwien.ac.at>
how to get:	ftp://server.complang.tuwien.ac.at/pub/forth/gray4.tar.gz
		ftp://server.complang.tuwien.ac.at/pub/forth/gray4.zip
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.
restrictions:	Copyleft
requires:	ANS Forth
conformance:	ANS Forth with some environmental dependences (see README)
status:		supported
ports:		Several ANS Forth Systems; mail author for old versions
		running on Tile.
updated:	1994/08/08

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.33
parts:		scanner generator, parser generator (pred-LL(k)), 
		documentation, tutorial
author:		Terence J. Parr <parrt@parr-research.com>, 
		Will E. Cohen <cohenw@ecn.purdue.edu>, 
		Henry G. Dietz <hankd@ecn.purdue.edu>,
		Russell W. Quong <quong@ecn.purdue.edu>
location:	ftp://ftp.parr-research.com/pub/pccts/
    UK:		ftp://src.doc.ic.ac.uk/computing/programming/languages/tools/pccts/ 
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.
		PCCTS grammars contain specifications for lexical and 
		syntactic analysis with selective backtracking 
		("infinite lookahead"), semantic predicates,
		intermediate-form construction and sophisticated
		parser exception handling.  Rules may employ Extended BNF 
		(EBNF) grammar constructs and may define parameters, 
		return values and local variables. Languages described in 
		PCCTS are recognized via predicated-LL(k) parsers 
		constructed in pure, human-readable, C/C++ code; the C++ 
		programming interface is very good.  The documentation is 
		complete, but distributed over an original manual plus
		multiple release notes.	 A book is in the works and should 
		be available 1Q 1996.
		A recently-developed PCCTS-based C++ parser is available 
		at the ftp site; it is an *initial* release and was 
		derived from the grammar built by NeXT, Inc..
restriction:	The tool is totally public domain--it has no legal 
		restrictions on its use or incorporation into commercial 
		applications.
ports:		Unix, DOS, Windows, OS/2, Macintosh, NeXT
portability:	very high
discussion:	comp.compilers.tools.pccts
contact:	Terence J. Parr <parrt@acm.org>
updated:	1995/10/05

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 pub/Documents/techreports/TR-20-92.ps.Z 
		 from ftp.comlab.ox.ac.uk
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)
package:	GMD Toolbox for Compiler Construction (aka Cocktail)
version:	9209
parts:		lalr: parser generator (LALR(1) -> C, Modula-2),
		ell : parser generator (LL(1) -> C, Modula-2),
		rex : scanner generator (-> C, Modula-2),
		bnf : translator (Extended BNF -> BNF),
		y2l : translator (BNF (yacc) -> Extended BNF),
		ast : abstract syntax tree generator,
		ag  : attribute-evaluator generator,
		puma: transformation of abstract syntax tree using 
		      pattern-matching
		documentation, examples
author:		Josef Grosch <grosch@cocolab.sub.com> and others
location:	ftp /gmd/cocktail from ftp.gmd.de	       
		ftp /pub/unix/programming/compilerbau 
		from ftp.rus.uni-stuttgart.de
		ftp /pub/programming/languages/compiler-compiler/cocktail 
		from ftp.th-darmstadt.de     
		ftp /languages/tools/gmd from src.doc.ic.ac.uk	      
		ftp /.3/plan/gmd from gatekeeper.dec.com      
    OS/2:	ftp.eb.ele.tue.nl/pub/src/cocktail/dos-os2.zoo 
description:	A huge set of compiler building tools. 
requires:	(MS-DOS and MS-Windows only) DJ Delorie's DOS extender (go32)
		(OS/2 only) emx programming environment for OS/2
ports:		Unix, Linux, MS-DOS, MS-Windows, OS/2
portability:	very high
status:		version 9209 is unsupported, Cocktail is actively developed,
		versions 9401 and higher are commercial
discussion:	subscribe to Cocktail using listserv@eb.ele.tue.nl
support:	Josef Grosch <grosch@cocolab.sub.com>
contact:	Josef Grosch <grosch@cocolab.sub.com>
    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.8
parts:		scanner generator(regular expressions->C, C++), documentation
		parser generator(LALR->C, C++), documentation
		attribute grammar generator(LIDO->C, C++), documentation
		definition table generator(PDL->C, C++), documentation
		tree pattern-matcher generator(OIL->C, C++), documentation
		unparser generator(PTG->C, C++), documentation
author:		?
location:	ftp pub/cs/distribs/eli/* from ftp.cs.colorado.edu
    Europe:	ftp unix/eli from ftp.uni-paderborn.de
		or http://www.cs.colorado.edu/~eliuser
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>
bugs:		<elibugs@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:	1994/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 
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.3
version:	2.3 (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_Ohnemus@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.2
parts:		parser generator (Icon, SLR(1))
author:		Richard L. Goerwitz <goer@midway.uchicago.edu>
location:	comp.sources.misc volume 44
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:	1994/09/25

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:	BNF variant, Python
package:	kwParsing ?
version:	?
parts:		parser generator
author:		Aaron Watters <aaron@vienna.njit.edu>
location:	ftp pub/python/kwParsing.* from ftp.markv.com
description:	A parser generator written in Python for Python.  This package
		may be appropriate for experimental translators, code
		generators, interpreters, or compilers; for instructinal
		purposes; among other possibility.  The documentation gives a
		brief introduction to the conventions and basic ideas of
		parsing.
updated:	1994/09/24

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.39 (Modula, Pascal, Oberon)
parts:		parser generator(LL(1))
author:		Hanspeter Moessenboeck <moessenboeck@ssw.uni-linz.ac.at>
		Port to Modula-2 done by Marc Brandis, Christof Brass 
		and Pat Terry <cspt@cs.ru.ac.za>
		Port to Turbo Pascal done by Pat Terry and Volker Pohlers
		<pohlers@escher.hrz.fh-stralsund.de>
location:	ftp.inf.ethz.ch:/pub/software/Coco
		ftp.psg.com:/pub/modula-2/coco
		cs.ru.ac.za:/pub/coco
		ftp.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 Moessenboeck (Prentice Hall, 1989, 0-13-155136-1)
bugs:		MS-DOS related versions: Pat Terry <cspt@cs.ru.ac.za>
		Other: Hanspeter Moessenboeck 
		       <moessenboeck@ssw.uni-linz.ac.at>
requires:	Oberon, Modula-2, or Turbo Pascal
ports:		MS-DOS: TopSpeed Modula-2; FST 2.0; FST 3.1 - 3.5;
		StonyBrook QuickMod 2.2; Logitech 3.03; Turbo Pascal.
		Macintosh: Apple MacMeth.
		Unix/Linux/FreeBSD: Mocka, Gardens Point.
status:		Oberon version is freely available.  Modula-2 version is
		free to academic sites; commercial use requires a license
updated:	1995/11/01

language:	COCOL (EBNF variant)
package:	Coco/R for C
version:	1.05
author:		Francisco Arzu <farzu@uvg.edu.gt>
location:	cs.ru.ac.za:/pub/coco/cocorc05.zip
description:	This is a C version of Professor Moessenboeck's Coco/R. 
		Coco/R generates recursive descent parsers and their 
		associated scanners from attributed grammars. Semantic
		attributes and semantic actions are a dream compared to 
		YACC's and Lex's ones. There are many examples showing
		its use, including itself (it can bootstrap itself to 
		generate its own driver, parser, scanner, and semantic
		evaluator from the attributed grammar CR.ATG) and a 
		simple C like language which uses Iburg to generate 
		intel 80x86 assemble language.
parts:		parser generator(LL(1)), scanner generator, documentation,
examples
bugs:		Francisco Arzu <farzu@uvg.edu.gt>
requires:	Standard C compiler
ports:		Many UNIX systems(Linux, UnixWare, SunOS, IBM AIX, HP-UX, etc) 
		MS-DOS and OS/2
restrictions:	Next release will be under the GNU General Public License
updated:	1995/11/01
lref:		C

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.5.2
parts:		scanner generator
author:		Vern Paxson <vern@ee.lbl.gov>
location:	ftp flex-2.5.2.tar.Z from a GNU archive site or ftp.ee.lbl.gov
description:	A POSIX-compliant "lex" scanner generator.
bugs:		vern@ee.lbl.gov or bug-gnu-utils@prep.ai.mit.edu
updated:	1995/04/28

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:	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 and Rewrite Generator
version:	1.00B15
parts:		translator, documentation, tutorial, examples
author:		Terence Parr <parrt@parr-research.com>, 
		Aaron Sawdey <sawdey@lcse.umn.edu>, 
		Gary Funck <gary@intrepid.com>
location:	ftp://ftp.parr-research.com/pub/pccts/sorcerer/
		ftp://ftp.uu.net/languages/tools/pccts/
	UK:	ftp://src.doc.ic.ac.uk/computing/programming/languages/tools/pccts/
	Europe: ftp://ftp.th-darmstadt.de/pub/programming/languages/compiler-compiler/pccts/
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. Both C and C++ based tree
		walkers can be generated. SORCERER is well integrated
		with PCCTS (soon SORCERER will be distributed with PCCTS). 
reference:	Several listed in software documentation.
		A book will available first quarter 1996; a pre-release 
		version is available at the ftp site.
discussion:	Usenet newsgroup comp.compilers.tools.pccts
help:		newsgroup
support:	actively supported, from newsgroup and Parr Research 
		Corporation <parrt@parr-research.com>.
updated:	1995/09/01

language:	Attribute Grammars
package:	The FNC-2 Attribute Grammar System
version:	1.14
parts:		FNC-2:
		  the Olga compiler and attribute evaluator generator;
		ATC:
		  a generator of abstract tree constructors driven by 
		  bottom-up parsers, with two flavours, one on top of 
		  SYNTAX, and one on top of Lex and Yacc;
		PPAT:
		  a generator of unparsers of attributed abstract
		  trees, based on the TeX-like notion of nested boxes 
		  of text.
author:		Martin Jourdan, Didier Parigot and students
location:	http://www-rocq.inria.fr/charme/FNC-2/index.html 
		ftp://ftp.inria.fr/INRIA/Projects/ChLoE/FNC-2/
description:	The FNC-2 system is a modern AG-processing system that
		aims at production-quality by providing the following 
		qualities:
		Efficiency:
		 The generated evaluators, based on the visit-sequence
		 paradigm, are completely deterministic; furthermore, 
		 this paradigm allows to apply very effective space 
		 optimization techniques. The evaluators are hence 
		 basically as efficient in time and space as hand-written 
		 programs using a tree as internal data structure.
		Expressive power:
		 This efficiency is not achieved at the expense of 
		 expressive power since FNC-2 accepts AGs in the very 
		 broad class of strongly non-circular AGs.
		Easiness of use:
		 Olga, the input language of FNC-2, enforces a high degree 
		 of programming safety, reliability and productivity.
		 It provides powerful constructions for modularity and
		 reusability. 
		 It contains the following sub-languages: 
		  attributed abstract syntaxes ASX; 
		  attribute grammars; 
		  declaration and definition modules.
		Versatility:
		 The generated evaluators can be interfaced with many
		 other tools and produced in many variations: 
		 Several modes of attribute evaluation:
		  exhaustive; incremental; concurrent (on shared-memory 
		  multiprocessor machines).
		 Several implementation languages:
		  C (standalone);  
		  Lisp	(on top of the <A HREF="http://www-rocq.inria.fr/charme/FNC-2/centaurfnc2.html">Centaur </A> system); 
		  C/fSDL (for the <A HREF="http://www-rocq.inria.fr/charme/FNC-2/cosyfnc2.html"> CoSy </A>
compilation platform); 
		  ML (Caml). 
		In addition, FNC-2 is the testbed for an active research team.
ports:		Unix
status:		active
contact:	<Didier.Parigot@inria.fr> or <Martin.Jourdan@inria.fr>
updated:	1995



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 1.2

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:		(APL) 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:	1.18d
parts:		interpreter, libraries, documentation
author:		Ian Searle <ians@eskimo.com>
location:	ftp pub/RLaB/* from evans.ee.adfa.oz.au
    US:		csi.jpl.nasa.gov in /pub/matlab/RLaB
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:		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:	1995/03/16

language:	octave language (math manipulation - MATLAB-like)
package:	octave
version:	1.1.1
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@netlib.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:	GNU Fortran
package:	g77
version:	0.5.17
parts:		compiler, documentation, libraries.
author:		Craig Burley <burley@gnu.ai.mit.edu>
location:	ftp g77-0.5.17.tar.gz from any GNU site
description:	GNU Fortran is a free replacement for the UNIX f77
		Fortran compiler, and is currently in beta testing.  
requires:	To build it requires the GNU CC source distribution, 
		Version 2.6.3 through 2.7.
bugs:		<fortran@gnu.ai.mit.edu>
updated:	1995/11/22

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 (HPF)
package:	Adaptor (Automatic DAta Parallelism TranslatOR)
version:	3.0
parts:		preprocessor, library, documentation
author:		?
location:	ftp://ftp.gmd.de/GMD/adaptor/adp_3.0.tar.gz
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.
reference:	http://www.gmd.de/SCAI/lab/adaptor/adaptor_home.html
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:	1995/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:	Fortran
package:	F-curses
version:	?
parts:		library
author:		Wade Schauer <sal!wade@sactoh0.sac.ca.us>
location:	comp.sources.misc volume 44
description:	F-curses (C) is a library of Fortran and C routines that gives
		Fortran programmers tranparent access to the curses library (a
		C library).
restriction:	shareware
ports:		UNIX, MS-DOS
updated:	1994/10/10

language:	Fortran
iref:		(Fortran) Stanford SUIF Compiler

language:	Fortran
package:	?
version:	?
parts:		semantic analyser
author:		?
location:	http://www.nag.co.uk:70/
description:	Fortran 90 semantic analyser
updated:	?

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.5.2
parts:		grahpical algorithm layout, code generator, simulator
author:		?
location:	ftp://ptolemy.eecs.berkeley.edu/pub/ptolemy/ptolemy0.5.2/
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:	1995/05/28

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://ftp.ibp.fr/ibp/softs/masi/alliance/
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

language:	VHDL
package:	VHDL Object Model (VOM)
version:	1.0
parts:		parser
author:		David Benz <dbenz@thor.ece.uc.edu> and 
		Phillip Baraona <pbaraona@thor.ece.uc.edu>
location:	ftp pub/vhdl/tools/vhdl-object-model.tar.g from thor.ece.uc.edu
description:	VOM 1.0 is an object-oriented syntactic specification for VHDL
		written using the REFINE software design and synthesis
		environment.  In simpler terms, it is a VHDL parser which builds 
		an object tree from VHDL source code.
		If you are interested in transforming VHDL into some other form
		(source code, whatever) you might be interested in this. The
		parse tree (in the form of an object tree) is provided, you would 
		just need to add your own transformations.
		VOM isn't complete. The semantic information is not included
		(type checking, certain syntactic-rules, etc.). VOM 1.0 should
		parse most VHDL programs.  However, it will not detect errors
		such as a wait statement in a process statement with an
		explicit sensitivity list.
updated:	1994/11/01

--
Send compilers articles to compilers@iecc.com,
meta-mail to compilers-request@iecc.com.
