The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Поиск:  Каталог документации | compilers

Catalog of compilers, interpreters, and other language tools [p4of5]

Occaisonal posting of free language tools that include source code
Archive-name: compilers/free/part4
Last-modified: 2000/02/08
Version: 10.3

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://camille.is.s.u-tokyo.ac.jp/pub/abcl1/*
description:	Asynchronous message passing to objects.
reference:	"ABCL: An Object-Oriented Concurrent System", Edited by
		Akinori Yonezawa, The MIT Press, 1990, (ISBN 0-262-24029-7)
restriction:	no commercial use, must return license agreement
requires:	Common Lisp
contact:	[email protected]
updated:	1990/05/23

language:	ABCL ???
package:	ABCL/R2
version:	?
parts:		?
author:		[email protected], [email protected],
		[email protected], [email protected]
location:	ftp://camille.is.s.u-tokyo.ac.jp/pub/abclr2/*
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 <[email protected]>
location:	ftp://cs.nyu.edu/pub/local/alloy/*
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 <[email protected]>
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 <[email protected]>
location:	ftp://software.watson.ibm.com/pub/hermes/README
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, [email protected]
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:		[email protected]
restriction:	redistribution is restricted
announcements:	where new releases are announced
contact:	Andrew Chien   [email protected]
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
description:	An old version of the INMOS OCCAM compiler & toolset, made
		freely avaiable by INMOS Ltd.  OCCAM is a language for
		designed to express concurrent algorithms and their
		implementation on a network of processing components.
conformance:	The original implementation of OCCAM 2
reference:	"OCCAM 2 reference manual", INMOS ltd, Prentice-Hall
		International, ISBN 0-13-629312-3
features:	produces object code for the INMOS transputer (but see
		KROC entry)
restriction:	Research purposes only. NO support will be provided by
		INMOS Ltd.
requires:	C & occam compiler (Sun4, PC, & Transputer binaries available)
ports:		Sun3, Sun4, PC, INMOS transputer. (Most UNIXes?)
portability:	produces object code for the INMOS transputer (but see KROC
		entry)
status:		Not developed, UNSUPPORTED.
discussion:	comp.sys.transputer
contact:	Dave Beckett <[email protected]>
updated:	1-Mar-94

language:	OCCAM 2 (A parallel, concurrent, distributed language)
package:	KROC (Kent Retargetable Occam Compiler)
version:	0.1 Beta
parts:		compiler, run-time kernel, documentation
author:		David Wood, Professor Peter Welch
location:	ftp://unix.hensa.ac.uk/pub/parallel/occam/projects/occam-for-all/kroc
		http://www.hensa.ac.uk/parallel/occam/projects/occam-for-all/kroc/
description:	KROC is a portable OCCAM compiler system that enables OCCAM to
		run on non-transputer platforms (initially SunOS/SPARC(TM)
		workstations).	KROC works by translating code produced by an
		INMOS OCCAM Toolset compiler into the native assembler for the
		target architecture and linking in a small (< 2K bytes) kernel
		that provides the process scheduling and message-passing
		functionality of the transputer micro-code.  Therefore, you
		will need an OCCAM Toolset compiler (see requires:).
features:	-initialy available as Sun4 (SunOS) binary.
		+A source release will follow.
reference:	"OCCAM 2 reference manual", INMOS ltd, Prentice-Hall
		 International, ISBN 0-13-629312-3
		"Transputer Instruction Set - A Compiler Writers Guide", INMOS
		 Ltd, Prentice-Hall, ISBN 0-13-929100-8
restriction:	?
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, <[email protected]>
contact:	Occam For All Team <[email protected]>
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 <[email protected]>,
		Sean Wykes <[email protected]>,
		Mark Debbage <[email protected]>,
		Mark Hill <[email protected]>
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 <[email protected]>
updated:	1-March-1994

language:	PCN
package:	PCN
version:	2.0
parts:		compiler?, runtime, linker, libraries, tools, debugger,
		profiler, tracer
author:		Ian Foster <[email protected]>, Steve Tuecke
		<[email protected]>, and others
location:	ftp://info.mcs.anl.gov/pub/pcn/pcn_v2.0.tar.Z
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:	<[email protected]>
updated:	1993/02/12

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

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

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

language:	UNITY
package:	HOL-UNITY
version:	2.1
parts:		verification tool
author:		?
location:	?
description:	?
contact:	Flemming Andersen <[email protected]> ?
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 <[email protected]>
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.14
parts:		?
author:		Dirk Zoller <whereabouts-unknown>
location:	ftp://ftp.taygeta.com/pub/Forth/Compilers/native/unix/
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:		Runs on several Unix-like operating systems and on
		MS-DOS and OS/2. Makefiles readily provided for AIX,
		FreeBSD, Linux, HP-UX, Ultrix, DOS and OS/2.
		DOS and OS/2 executables included (with EMX DOS extender).
		Written in ANSI-C using Posix extensions and termcap.
		Compiles with GNU-C and several OS-specific compilers.
restriction:	Freely Redistributable
portability:	high
updated:	1996/05/02

language:	Forth
package:	gforth
version:	0.2.1
author:		Anton Ertl
location:	ftp://prep.ai.mit.edu/pub/gnu/gforth-0.2.1.tar.gz
		and
		http://www.complang.tuwien.ac.at/forth/gforth/gforth-0.2.1.tar.gz
description:	Gforth is a fast and portable implementation of the ANS
		Forth language. It works nicely with the Emacs editor,
		offers some nice features such as input completion and
		history and a powerful locals facility, and it even has
		(the beginnings of) a manual. Gforth employs traditional
		implementation techniques.  Gforth is distributed under
		the GNU General Public license (see COPYING).  Gforth runs
		under Unix and DOS and should not be hard to port to other
		systems supported by GCC. This version has been tested
		successfully on the following platforms: i486-unknown-linuxaout,
		i586-unknown-linux, alpha-dec-osf3.2, mips-dec-ultrix4.3,
		sparc-sun-sunos4.1.4, sparc-unknown-netbsd1.2 (configured
		with ac_cv_sizeof_long_long=0, see INSTALL),
		hppa1.1-hp-hpux9.05, hppa1.1-hp-hpux10.20, Windows 95 using
		DJGPP 2.0, and OS/2 3.0 using EMX 0.9c, the latter with manual
		help to finish compilation.
updated:	1997/01/13

language:	Forth
package:	F68K
version:	?
parts:		?
author:		?
location:	ftp://archive.umich.edu/atari/Languages/f68k.*
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 <[email protected]>
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 <[email protected]>
location:	ftp://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:	1.0.0.d
author:		Will Baden <[email protected]>
location:	ftp://ftp.taygeta.com/pub/Forth/Compilers/native/unix/
description:	This Forth was written to try out Standard (ANS) Forth,
		to integrate macro processing with Forth, to be able to use
		Forth in a conventional environment and to have Forth as an
		interpretive shell and scripting language for applications.
features:
		+ Integrated macro processing
		+ Input/output re-assignment 
		+ Portable implementation
		+ Easy extensibility	
		+ Pinhole optimization
requires:	M4 and an ANSI C compiler.
ports:		Macintosh, PowerMac, MIPS, SUN, SGI, 32-bit DOS
updated:	1995/02

language:	Mops
package:	Mops
version:	3.2
parts:		compiler, assembler, documentation, editor
author:		Michael Hore <[email protected]>
location:	ftp://ftp.taygeta.com/pub/Forth/Compilers/native/mac/Mops/
		ftp://astro.uchicago.edu/pub/MAC/Yerk
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:	1998/07

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

language:	Yerk
package:	Yerk
version:	3.68
parts:		interpreter, assembler, documentation, decompiler
author:		Bob Loewenstein
location:	ftp://astro.uchicago.edu/pub/astro/MAC/Yerk
description:	Yerk is an object oriented derivative of Forth.
		It was originally known as Neon, developed and sold
		as a product by Kriya Systems from 1985 to 1989.
		The language features many system classes and objects for mac
		interfacing:
		windows, controls, events, files, arrays, ordered-columns,
		menus,hierarchical and popup menus, handles, strings,
		mouse,quickdraw, modal dialogs, offscreen bitmaps, vbl,
		time manager, etc.
features:	+ defaulted early binding, with ability to late bind in almost any circumstance
		+ objects may be instantiated on the heap (dynamically)
		+ inheritance (not multiple)
		+ floating point (SANE)
		+ module (overlay) creation that are loaded only when necessary
		+ modules may be purged from application heap memory.
updated:	1996/03/19


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 <[email protected]>
location:	ftp://ftp.cwi.nl/pub/abc/examples/grammar/*
		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:	[email protected]
updated:	1993/07/05

language:	? attribute grammar ?
package:	Alpha
version:	pre-release
parts:		semantic-analysis generator?, documentation(german)
author:		Andreas Koschinsky <[email protected]>
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 <[email protected]>
location:	ftp://ftp.cs.iastate.edu/pub/ox/*
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 [email protected].
restriction:	Use of Ox is free.  Ox-generated code is the property of
		the Ox user.
ports:		Unix
contact:	[email protected]
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://ftp.is.titech.ac.jp/pub/Rie/*
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
		[email protected].  Electric version will be
		available from ftp://ftp.is.titech.ac.jp/pub/Rie/Papers/* .)
bugs:		Bug reports are welcome to [email protected].
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:	[email protected]>
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 <[email protected]>
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://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 <[email protected]>)
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 <[email protected]>,
		Will E. Cohen <[email protected]>,
		Henry G. Dietz <[email protected]>,
		Russell W. Quong <[email protected]>
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 <[email protected]>
updated:	1995/10/05

language:	Antlr 1.33 (PCCTS Development Tools)
package:	USQAGMS
version:	1998.02.02
parts:		Grammar merger, documentation, additional small
		tools including Word Perfect grammar extraction macro.
author:		Ron House <[email protected]>
location:	httpd://www.sci.usq.edu.au/staff/house/usqagms/usqagms-manual.html
description:	USQAGMS is a grammar merger that combines actions
		from an old/obsolescent grammar with rules from an
		updated grammar. It is intended to assist language
		designers who are writing a compiler in parallel
		with making changes to the grammar.
conformance:	Processes Antlr 1.33 (PCCTS Development Tools) grammars.
bugs:		Ron House <[email protected]>
restriction:	Setting up for your language is a bit fiddly, but it saves heaps of work thereafter.
requires:	Antlr 1.33 (PCCTS Development Tools)
		The grammar extraction macro requires Word Perfect (not an essential component).
ports:		Linux.
portability:	Should work on any Unix.
status:		Not officially supported, but I want to fix any bugs you might find.
announcements:	On web site and comp.compilers.tools.pccts.
contact:	Ron House <[email protected]>
updated:	1998/02/02

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://ftp.comlab.ox.ac.uk/pub/Programs/preccx.msdos (MS-DOS)
		ftp://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 <[email protected]>,
		Jonathan Bowen <[email protected]>
updated:	1994/06/02

language:	BNF (??)
package:	LLGen
version:	?
parts:		parser generator
author:		? Fischer and LeBlanc ?
location:	? ftp://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 ([email protected], [email protected])
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 <[email protected]> and others
location:	ftp://ftp.gmd.de/gmd/cocktail
		ftp://ftp.rus.uni-stuttgart.de/pub/unix/programming/compilerbau
		ftp://ftp.th-darmstadt.de/pub/programming/languages/compiler-compiler/cocktail
		ftp://src.doc.ic.ac.uk/languages/tools/gmd
		ftp://gatekeeper.dec.com/.3/plan/gmd
    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 [email protected]
support:	Josef Grosch <[email protected]>
contact:	Josef Grosch <[email protected]>
    OS/2:	Willem Jan Withagen <[email protected]>
updated:	1992/10/01

language:	BNF (??)
package:	T-gen
version:	2.1
parts:		parser generator, documentation, ?
author:		Justin Graver <[email protected]>
location:	ftp://st.cs.uiuc.edu/pub/st80_r41/T-gen2.1/*
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
version:	4.1.0
parts:		scanner generator (regular expressions->C, C++),
		parser generator (LALR->C, C++), attribute evaluator
		generator (LIDO->C, C++), definition table generator
		(PDL->C, C++), tree pattern-matcher generator (OIL->C,
		C++), pattern-based text generator (PTG->C, C++),
		unparser generator (Idem), command-line processing
		generator (CLP->C, C++), literate programming
		(FunnelWeb), integrated high-level debugger (Noosa),
		library with solutions for common tasks (ModLib),
		online and printable documentation
author:		William Waite <[email protected]>
		Basim Kadhim <[email protected]>
		Uwe Kastens <[email protected]>
		Matthias Jung <[email protected]>
		Peter Pfahler <[email protected]>
		Anthony Sloane <[email protected]>
location:	http://www.cs.colorado.edu/~eliuser
		http://www.uni-paderborn.de/project-hp/eli.html
		http://www.cs.jcu.edu.au/~tony/eli.html
description:	Eli is a fully integrated environment for the
		automatic generation of processors of structured text.
		It transparently utilises off-the-shelf tools and
		libraries with specialized language processors to
		generate complete processors 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.
bugs:		<[email protected]>
restriction:	Eli is under the Free Software Foundation's General
		Public License.	 Code generated by Eli has no
		restrictions except that the dynamic memory allocation
		module (obstack) is covered by FSF's Library General
		Public License.
requires:	High-level debugging requires Tcl/Tk (at least
		versions 7.6/4.2).
ports:		SunOS (4.1.2, 5.4, 5.5), OSF1 (V3.0, V4.0), Linux
		(2.0.30 ELF), IRIX (5.3, 6.3), HP-UX (A.09.05)
portability:	Portable to most Unix systems using FSF's autoconf
		support.
status:		active, supported
discussion:	<[email protected]>
		(join at <[email protected]>)
help:		<[email protected]>
announcements:	comp.compilers, <[email protected]>
contact:	<[email protected]>
		<[email protected]>
		<[email protected]>
updated:	1997/10/6

language:	BNF
package:	tom (demo for Tomita Parsing algorithm)
version:	1
parts:		parser generator, parser interpreter, examples, documentation
author:		Mark Hopkins <[email protected]>
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 <[email protected]>
location:	ftp://flubber.cs.umd.edu/src/newyacc.1.0.*.Z
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:		[email protected]
restriction:	!! will apply the GNU General Public License to *your* code !!
ports:		unix, atari, ?
updated:	1993/09/14

language:	BNF (yacc), Lex
package:	Bison++ 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 <[email protected]>
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 [email protected] (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:	[email protected], news: comp.compiler, or comp.lang.c++
help:		[email protected], news: comp.compiler, or comp.lang.c++
		for substantial problems.
support:	see help, no commercial support. (volunteer ?)
announcements:	mail list locally maintained by [email protected],
		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 <[email protected]>
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 [email protected]
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:	[email protected]   (mirrored to comp.soft-sys.andrew)
support:	supported by the Andrew Consortium
contributions:	your organization is invited to join the Andrew Consortium
		[email protected]
updated:	1994/05/09

language:	BNF (Yacc like description languages)
package:	Compiler Construction Tool Set (aka COCOM or Russian Armoury)
version:	0.9
parts:		+Ammunition: reusable packages
		+Sprut : internal representation description translator (C, C++)
		+Nona : code selector description translator (C, C++)
		+Oka : pipeline hazards description translator (C,C++)
		      and basic block scheduler (C, C++)
		+Shilka : keywords description translator (C, C++) for
			 for fast recognizing keywords
		+Msta : syntax description translator (now only C) for
		       description of parsers and scanners (LR(k), LALR(k)).
		       documentation, examples
author:		Vladimir N. Makarov <[email protected]>
location:	http://www.geocities.com/SiliconValley/Lab/4557
description:	A set of compiler building tools.
ports:		Unix, Linux
portability:	very high (GNU configure)
status:		COCOM is actively developed
support:	Vladimir N. Makarov <[email protected]>
contact:	Vladimir N. Makarov <[email protected]>
updated:	1998/01/05

language:	BNF (yacc)
package:	? jaccl ?
version:	?
parts:		parser generator
author:		Dave Jones <[email protected]>
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 <[email protected]>
location:	ftp://vangogh.CS.Berkeley.EDU/pub/byacc.tar.1.9.Z
description:	probably the best yacc variant around.	Previously known as
		Zoo, and before that, as Zeus.
updated:	1993/02/22

language:	BNF (yacc)
package:	yacc
version:	1.9.1
parts:		parser_generator
author:		Todd Dukes ([email protected])
location:	sunsite.unc.edu/pub/Linux/devel/lang/compiler_tools
description:	Yacc is a parser generator. It reads an input file that
		describes a grammar and generates C code that implements that
		grammar. It is designed to work well with 'lex' compatible
		lexers. Flex is a good program for generating these lexers.
		This version has improved support for C++. Yacc 1.9 generated C
		code that caused warnings and errors when compiled with C++.
		Minor changes were made in the declarations in the skeleton
		file to eliminate these warnings and errors.
updated:	?

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

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

language:	BNF (yacc), Perl
package:	perl-byacc
version:	1.8.2
parts:		parser-generator(perl)
author:		Rick Ohnemus <[email protected]>
location:	ftp://ftp.sterling.com/local/perl-byacc.tar.Z
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 <[email protected]>
location:	princeton.edu/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 <[email protected]>
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 <[email protected]>
location:	ftp://ftp.diku.dk/pub/diku/dists/Ratatosk.tar.Z
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 <[email protected]>
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 <[email protected]>, David R. Hanson
		<[email protected]>, Todd A. Proebsting <[email protected]>
location:	ftp://ftp.cs.princeton.edu/pub/iburg.tar.Z
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 <[email protected]>
location:	ftp://ftp.markv.com/pub/python/kwParsing.*
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://cs.arizona.edu/scorpion/*
description:	20 tools that can be used to construct specialized
		programming environments.
		The Scorpion Project was started by Prof. Richard
		Snodgrass as an outgrowth of the SoftLab Project (which pro-
		duced the IDL Toolkit) that he started when he was at the
		University of North Carolina.  The Scorpion Project is
		directed by him at the University of Arizona and by Karen
		Shannon at the University of North Carolina at Chapel Hill.
reference:	"The Interface Description Language: Definition and Use,"
		by Richard Snodgrass, Computer Science Press, 1989,
		ISBN 0-7167-8198-0
ports:		Sun-3, Sun-4, Vax, Decstation, Iris, Sequent, HP9000
discussion:	[email protected]
contact:	[email protected]
updated:	1993/11/04

language:	COCOL (EBNF variant)
package:	COCO/R
version:	1.39 (Modula, Pascal, Oberon)
parts:		parser generator(LL(1))
author:		Hanspeter Moessenboeck <[email protected]>
		Port to Modula-2 done by Marc Brandis, Christof Brass
		and Pat Terry <[email protected]>
		Port to Turbo Pascal done by Pat Terry and Volker Pohlers
		<[email protected]>
location:	ftp://ftp.inf.ethz.ch:/pub/software/Coco
		ftp://ftp.psg.com:/pub/modula-2/coco
		ftp://cs.ru.ac.za:/pub/coco
		ftp://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 <[email protected]>
		Other: Hanspeter Moessenboeck
		       <[email protected]>
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 <[email protected]>
location:	ftp://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 <[email protected]>
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 <[email protected]>
location:	ftp://hades.cs.kun.nl/pub/eag/*
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 <[email protected]>
location:	FTP://fi.ethz.ch/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 <[email protected]>
location:	ftp://ftp.ee.lbl.gov/flex-2.5.2.tar.Z or from a GNU archive site
description:	A POSIX-compliant "lex" scanner generator.
bugs:		[email protected] or [email protected]
updated:	1995/04/28

language:	Regular Expressions
package:	re2c
version:	alpha
parts:		translator (re->c)
author:		?? [email protected]
location:	ftp://csg.uwaterloo.ca/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 <[email protected]>
location:	? ftp://cs.orst.edu/pub/budd/kamin/*.shar
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 <[email protected]>
updated:	1991/09/12

language:	Relation Grammar
package:	rl
version:	?
parts:		?
author:		Kent Wittenburg <[email protected]>
location:	flash.bellcore.com/rl/*
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 <[email protected]> (language),
		Rayan Zachariassen <[email protected]> (C implementation)
location:	ftp://neat.cs.toronto.edu/pub/ssl.tar.Z
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 <[email protected]>
location:	ftp://ftp.qucis.queensu.ca/pub/txl/*
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 <[email protected]>,
		Aaron Sawdey <[email protected]>,
		Gary Funck <[email protected]>
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 <[email protected]>.
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 http://www-rocq.inria.fr/charme/FNC-2/centaurfnc2.html
		  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:	<[email protected]> or <[email protected]>
updated:	1995

language:	Ml4 (extended EBNF)
package:	Depot4
version:	1.6
parts:		translator generator (->Java), documentation, examples
author:		Juergen Lampe <[email protected]>
location:	ftp ftp.math.tu-dresden.de/Depot4/
description:	Depot4 generates recursive descent parsers and
		translators.
		Ml4 is a true extension of N.Wirth's EBNF. It features a
		unique translation=20
		centred description, which makes it especially useful
		for people not educated in compiler construction.
		The Ml4 translator can bootstrap itself, thus serving as
		an example.
		Although translators are generated in a certain host
		language, their description is totally independent from this.
		Depot4 is intended for domain specific language implementation.
reference:	 "An Extensible Translator-Generator for Use in Branch
		Software Construction",
		J. Comp. and Inform. 2, 1 (1996), pp. 1057-1067
		 "A Generator for Dynamically Extensible Translators" in
		Proc. of JMLC'97 Joint Modular Languages Conference
		(Linz, 1997), pp. 75-87.
		 "A tool for syntax directed software design" J. of Systems
		Architecture 43 (1997), pp. 199-202.
features:	+ easy to capture recursive translator description
		+ rule based modularization (simplifies test)
		+ monitor/trace tools
		+ unbounded lookahead possible
		+ interface to other software
		+ extensible
		+ convenient standard user interface
bugs:		[email protected]
requires:	Java Virtual Machine supporting JDK 1.0.2
portability:	no futher restrictions
status:		active
help:		online manual at
		http://www.math.tu-dresden.de/wir/staff/lampe/Dp4Doc/UM.html
support:	[email protected]
updated:	1997/06

language:	Ml4 (extended EBNF)
package:	Depot4/Oberon
version:	1.6
parts:		translator generator (->Oberon), documentation, examples
author:		Juergen Lampe <[email protected]>
location:	ftp ftp.math.tu-dresden.de/Depot4/
description:	A Oberon version of Depot4
		Accepts exactly the same language as Depot4/Java, cross
		translation, i.e. generation of translators in Java (and vice
		versa) possible
reference:	"An Oberon-Based Implementation Tool" in "Advances in
		Modular Languages" P. Schulthess
		(ed), Universit=8Atsverl., Ulm, 1994, ISBN 3-89559-220-X,
		pp. 303-312.
requires:	ETHZ Oberon V4
ports:		Oberon/F resp. Component Pascal
		ETHZ Oberon System3 possible
help:		online manual at
		http://www.math.tu-dresden.de/wir/staff/lampe/Dp4Doc/UM.html
support:	[email protected]
updated:	1997/06

language:	ANSI C, K&R C
package:	CDG - C Documentation Generator
version:	1.1
parts:		documentation, document generator (all in one file)
author:		Peter Knoppers <[email protected]>
location:	http://cardit.et.tudelft.nl/~knop/cdg11.tar.gz
		(Anonymous ftp not supported; use your WWW-browser and save
		it in a file.)
description:	Cdg reads a set of C-source files and generates a two-column
		listing of those sources where all lines are numbered. After
		the listing part comes a three-column cross-reference table
		which gives for each identifier a list of line-numbers where
		this identifier occurs in the source listing part.
		This format resembles the format that John Lions used in
		"Source Code and Commentary on UNIX level 6".
conformance:	Should operate on all K&R and ANSI C programs. There are
		some restrictions on the placement of matching #ifdef, #else
		and #endif directives, or else the way an identifier is used
		may be incorrectly determined.
features:	+ Non-C sources can be included in the output
		- Non-C sources will not be cross-referenced
		+ Long lines are folded in the output and marked as such
		+ Customizable footer for copyright or other messages
		+ Cross reference list distinguishes definition versus use
		  of an identifier
		+ Possibility to exclude certain identifiers
		+ Can save a list of all identifiers with linenumbers
		+ Identifiers can be included or excluded from the cross-
		  reference listing depending on their use
		+ PostScript output can be generated for A4 or US Letter size
		  paper, on the non-PostScript printers only A4 is supported.
bugs:		None known (except the restriction mentioned under
		"conformance").
restriction:	GNU conditions
requires:	Unix, ANSI-C compiler (preferably gcc) (to build it), sort(1),
		PostScript printer, or HP DeskJet 500 or LaserJet printer,
		or GhostScript plus almost any popular printer.
ports:		Linux
portability:	Little experience at this time, should be quite portable.
status:		Works fine for the author...
discussion:	Email the author.
help:		Email the author.
support:	Email the author.
announcements:	http://cardit.et.tudelft.nl/~knop
cref:		C variants
cref:		unix tool building
cref:		programming in the large
updated:	1996/08/06

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:	Algea language (math manipulation - MATLAB-like)
package:	Algea
version:	3.4.0
parts:		?
author:		Scott Hunziker <[email protected]> and Mike Brennan
location:	http://www.eskimo.com/~ksh/algae/index.html
		http://axams1.bo.infn.it:9999/algae
		ftp://ftp.eskimo.com/u/k/ksh/algae
restriction:	GPL
requires:	gcc
ports:		UNIX (Linux Only?)
status:		Active
discussion:	To join the Algea list email [email protected]
description:	Algae is an interpreted language for numerical analysis. Algae
		borrows ideas from languages like MATLAB, APL, and C, but it was
		developed in response to a need for a free, efficient, and
		versatile high-level language with large problem capability.
updated:	1998/05

language:	APL
package:	I-APL
version:	?
parts:		?
author:		?
location:	ftp://watserv1.waterloo.edu/languages/apl/*
description:	?
updated:	1992/07/06

language:	APL
package:	APLWEB
version:	?
parts:		translator(web->apl), translator(web->TeX)
author:		Dr. Christoph von Basum <[email protected]>
location:	ftp://watserv1.uwaterloo.ca/languages/apl/aplweb/*
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://think.com/pub/j/gmacs/j-interaction-mode.el
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 <[email protected]>
location:	ftp://evans.ee.adfa.oz.au/pub/RLaB/*
    US:		ftp://csi.jpl.nasa.gov/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 <[email protected]>
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:	2.0.13
parts:		interpreter, libraries, documentation
author:		John W. Eaton
location:	ftp://ftp.che.utexas.edu/pub/octave
		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:		[email protected]
restriction:	GNU General Public License
requires:	g++ 2.7.2 or later, a recent version of GNU Make, GNU libstdc++
ports:		Linux, Digital Unix, HP-UX, SunOS, OS/2, and Windows NT/95
updated:	1998/5/21

language:	FUDGIT language (math manipulation)
package:	FUDGIT
version:	2.27
parts:		interpreter
author:		Martin-D. Lacasse
location:	ftp://tsx-11.mit.edu/pub/linux/sources/usr.bin/fudgit-*??
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.  Ported to Linux by
		Thomas Koenig
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
location:	ftp://ftp.uu.net/pub/calc
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 [email protected]:netlib/f2c/src/*
description:	translator (Fortran 77 to ANSI C or C++)
bugs:		D. M. Gay <[email protected]>
updated:	1993 April 27

language:	GNU Fortran
package:	g77
version:	0.5.17
parts:		compiler, documentation, libraries.
author:		Craig Burley <[email protected]>
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:		<[email protected]>
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 <[email protected]>
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 <[email protected]>
updated:	1995/06

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

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

language:	Fortran
package:	?
version:	?
parts:		?
author:		Steve Mccrea <[email protected]>
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:		[email protected] <Michael Metcalf>
location:	ftp://jkr.cc.rl.ac.uk/pub/MandR/convert.f90
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 <[email protected]>
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 Base SUIF Compiler Package (``basesuif'')

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 <[email protected]>
location:	ftp://watserv1.waterloo.edu/languages/apl/j/*
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://ftp.cs.princeton.edu/pub/y+po.tar.Z
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:	?

language:	ZPL
package:	ZPL
version:	?
parts:		compiler,language documents, sample code
author:		L. Snyder, C. Lin, B. Chamberlain, S-E. Choi, E. Lewis,
		J. Secosky, D. Weathersby
location:	http://www.cs.washington.edu/research/zpl/
description:	ZPL is a new array programming language designed from first
		principles for fast execution on both sequential and parallel
		computers.  ZPL benefits from recent parallel compiler
		research, though code from existing sequential Fortran and C
		programs can often be reused.  Programmers with scientific
		computing experience can learn ZPL in a few hours.
discussion:	[email protected]
updated:	1997/07/01

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.6
parts:		grahpical algorithm layout, code generator, simulator
author:		?
location:	ftp://ptolemy.eecs.berkeley.edu/pub/ptolemy/ptolemy0.6/
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. FreeBSD
status:		active research project
discussion:	[email protected]
contact:	[email protected]
updated:	1996/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://ic.berkeley.edu/pub/edif ??
description:	?
restriction:	no-profit w/o permission
ports:		?
updated:	1990/07

language:	SAOL, SASL (the MPEG-4 Structured Audio Orchestra Language and
		Structured Audio Score Language)
package:	saolc
version:	0.5
parts:		parser, interpreter, grammar, core opcode implementation
author:		Eric Scheirer, MIT Media Laboratory
location:	http://sound.media.mit.edu/~eds/mpeg4
description:	SAOL is an audio processing and digital synthesis and effects
		language.  It is part of the MPEG-4 standard, and allows the
		flexible description of synthesizers and effects-processing
		algorithms within than toolset.
		SAOL is historically related to Csound and other "Music N" 
		languages, but is more flexible and easy to use than these.
		While maintaining features such as the instrument/score 
		distinction and dual-rate processing, it adds user-defined
		opcodes, more well-defined rate semantics, more lexical
		flexibility, and an improved syntax.
references:	forthcoming
conformance:	This implementation is being developed as the official
		Reference Software for the Structured Audio component of
		ISO 14496 (MPEG-4).  
features:	
		- non-real time performance (unless your machine is much faster than my SGI Octane)
		+ implements user-defined opcodes as macro expansion
		+ standalone mode as well as bitstream processing
bugs:		many known and being worked on.
restrictions:	source code is released to the public domain
requires:	C compiler only; lex/yacc to rebuild parser
		not much fun without audio capability 
ports:		At least SGI, Alpha, NT, Win95, Linux, and SunOS systems
portability:	Word length and byte-order independent
status:		Under active development
Discussion:	[email protected] to be added to the SAOL developers' mailing list
Help:		Eric Scheirer <[email protected]>
Support:	Eric Scheirer <[email protected]>
Announcements:	http://sound.media.mit.edu/~eds/mpeg4 and the mailing list
Contact:	Eric Scheirer <[email protected]>
Updated:	07/1997

language:	SPAM Compiler
package:	SPAM
version:	?
parts:		?
author:		?
location:	http://www.ee.princeton.edu/spam
description:	The SPAM Compiler is a retargetable optimizing compiler
		for embedded fixed- point DSP processors.  SPAM is built
		on top of the SUIF Compiler, which serves as the "front and
		middle"-end.  The back-end of the SPAM Compiler consists of
		two components.	 The first component is a set of data
		structures that store the various representations of the source
		program (e.g. calling graph, control-flow graphs, expression DAGs).
		The second component is a suite of retargetable algorithms that
		perform code generation and machine-dependent code optimization.
updated:	?


language:	Verilog, XNF
package:	XNF to Verilog Translator
version:	?
parts:		translator(XNF->Verilog)
author:		M J Colley <[email protected]>
location:	ftp://ftp.caltech.edu/pub/dank/xnf2ver.tar.Z ?
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.
		[If anyone knows the current location of this program please
		let me know - ed (6/98)].
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:	[email protected]
contact:	[email protected]
updated:	1993/02/16

language:	VHDL
package:	VHDL Object Model (VOM)
version:	1.0
parts:		parser
author:		David Benz <[email protected]> and
		Phillip Baraona <[email protected]>
location:	ftp://thor.ece.uc.edu/pub/vhdl/tools/vhdl-object-model.tar.gz
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 [email protected], meta-mail to
[email protected].  Archives at http://www.iecc.com/compilers




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру