category: text manipulation
-
Description:
|
These languages have very high-level features for
manipulating text.
|
|---|
-
Language:
|
BNF (yacc)
|
|---|
-
Package:
|
? jaccl ?
|
|---|
-
Version:
|
?
|
|---|
-
Parts:
|
parser generator
|
|---|
-
Author:
|
Dave Jones <djones@megatest.uucp>
|
|---|
-
Location:
|
?
|
|---|
-
Description:
|
a LR(1) parser generator
|
|---|
-
Updated:
|
September 8th, 1989
|
|---|
-
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:
|
irus-software-request@ics.uci.edu
|
|---|
-
Contact:
|
irus-software-request@ics.uci.edu
|
|---|
-
Updated:
|
January 6th, 1993
|
|---|
-
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:
|
Febuary 16th, 1993
|
|---|
-
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:
|
November 29th, 1988
|
|---|
-
Language:
|
Snobol4
|
|---|
-
Package:
|
beta2
|
|---|
-
Version:
|
0.91
|
|---|
-
Parts:
|
compiler(->C)
|
|---|
-
Author:
|
Phil Budne <phil@cs.bu.edu>
|
|---|
-
Location:
|
ftp://cs.arizona.edu/snobol4/budne/beta2.tar.Z
|
|---|
-
Description:
|
An implementation of Ralph Griswold's SNOBOL 4, a classic early
language design specialized for text and string manipulation
that (among other things) influenced UNIX rexexp syntax. See
also Icon. This compiler is implemented as macro programs
in SIL (SNOBOL Implementation Language); this is a SIL
implementation plus macros with C as the target language.
|
|---|
-
Features:
|
- supports loading of C library functions on BSD systems
|
|---|
-
Contact:
|
snobol4@arizona.edu
|
|---|
-
Ports:
|
various UNIX flavors, including 'generic' and 'POSIX' APIs
|
|---|
-
Updated:
|
June 24th, 1986
|
|---|
-
Language:
|
BNF (yacc)
|
|---|
-
Package:
|
bison
|
|---|
-
Version:
|
1.22
|
|---|
-
Parts:
|
parser generator, documentation
|
|---|
-
Author:
|
Robert Corbett and Richard Stallman
|
|---|
-
Location:
|
ftp://gatekeeper.dec.com/bison-1.16.tar.Z or any other 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:
|
September 14th, 1993
|
|---|
-
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:
|
|
|---|
-
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:
|
Febuary 7th, 1994
|
|---|
-
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:
|
May 9th, 1994
|
|---|
-
Language:
|
BNF (yacc)
|
|---|
-
Package:
|
byacc (Berkeley Yacc)
|
|---|
-
Version:
|
1.9
|
|---|
-
Parts:
|
parser generator
|
|---|
-
Author:
|
Robert Corbett <Robert.Corbett@eng.sun.com>
|
|---|
-
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:
|
Febuary 22nd, 1993
|
|---|
-
Language:
|
ANSI C, K&R C
|
|---|
-
Package:
|
CDG - C Documentation Generator
|
|---|
-
Version:
|
1.3
|
|---|
-
Parts:
|
documentation, document generator (all in one file)
|
|---|
-
Author:
|
Peter Knoppers <P.Knoppers@ct.tudelft.nl>
|
|---|
-
Location:
|
http://cardit.et.tudelft.nl/~knop/cdg13.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/index.html#cdg
|
|---|
-
Updated:
|
May 4 1999
|
|---|
-
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://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 <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:
|
November 1st, 1995
|
|---|
-
Language:
|
COCOL (EBNF variant)
|
|---|
-
Package:
|
Coco/R for C
|
|---|
-
Version:
|
1.05
|
|---|
-
Author:
|
Francisco Arzu <farzu@uvg.edu.gt>
|
|---|
-
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 <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:
|
November 1st, 1995
|
|---|
-
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 <vmakarov@usa.net>
|
|---|
-
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 <vmakarov@usa.net>
|
|---|
-
Contact:
|
Vladimir N. Makarov <vmakarov@usa.net>
|
|---|
-
Updated:
|
January 5th, 1998
|
|---|
-
Language:
|
Ml4 (extended EBNF)
|
|---|
-
Package:
|
Depot4
|
|---|
-
Version:
|
1.6
|
|---|
-
Parts:
|
translator generator (->Java), documentation, examples
|
|---|
-
Author:
|
Juergen Lampe <lampe@math.tu-dresden.de>
|
|---|
-
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:
|
lampe@math.tu-dresden.de
|
|---|
-
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:
|
lampe@math.tu-dresden.de
|
|---|
-
Updated:
|
1997/06
|
|---|
-
Language:
|
Ml4 (extended EBNF)
|
|---|
-
Package:
|
Depot4/Oberon
|
|---|
-
Version:
|
1.6
|
|---|
-
Parts:
|
translator generator (->Oberon), documentation, examples
|
|---|
-
Author:
|
Juergen Lampe <lampe@math.tu-dresden.de>
|
|---|
-
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:
|
lampe@math.tu-dresden.de
|
|---|
-
Updated:
|
1997/06
|
|---|
-
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://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:
|
September 14th, 1993
|
|---|
-
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 <waite@cs.colorado.edu>
Basim Kadhim <kadhim@cs.colorado.edu>
Uwe Kastens <uwe@uni-paderborn.de>
Matthias Jung <mjung@uni-paderborn.de>
Peter Pfahler <peter@uni-paderborn.de>
Anthony Sloane <tony@cs.jcu.edu.au>
|
|---|
-
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:
|
<elibugs@cs.colorado.edu>
|
|---|
-
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:
|
<eli@cs.colorado.edu>
(join at <eli-request@cs.colorado.edu>)
|
|---|
-
Help:
|
<elibugs@cs.colorado.edu>
|
|---|
-
Announcements:
|
comp.compilers, <eli@cs.colorado.edu>
|
|---|
-
Contact:
|
<compiler@cs.colorado.edu>
<compiler@uni-paderborn.de>
<tony@cs.jcu.edu.au>
|
|---|
-
Updated:
|
October 6th, 1997
|
|---|
-
Language:
|
EBNF
|
|---|
-
Package:
|
ETO
|
|---|
-
Version:
|
test version
|
|---|
-
Parts:
|
parser, postscript document, examples
|
|---|
-
Author:
|
Lin Li <china@bernina.ethz.ch>
|
|---|
-
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:
|
June 3rd, 1994
|
|---|
-
Language:
|
lex
|
|---|
-
Package:
|
flex
|
|---|
-
Version:
|
2.5.2
|
|---|
-
Parts:
|
scanner generator
|
|---|
-
Author:
|
Vern Paxson <vern@ee.lbl.gov>
|
|---|
-
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:
|
vern@ee.lbl.gov or bug-gnu-utils@prep.ai.mit.edu
|
|---|
-
Updated:
|
April 28th, 1995
|
|---|
-
Language:
|
BNF (??)
|
|---|
-
Package:
|
FMQ
|
|---|
-
Version:
|
?
|
|---|
-
Parts:
|
paser generator w/error corrector generator
|
|---|
-
Author:
|
Jon Mauney
|
|---|
-
Location:
|
ftp://csczar.ncsu.edu
|
|---|
-
Description:
|
?
|
|---|
-
Status:
|
?
|
|---|
-
Contact:
|
?
|
|---|
-
Updated:
|
March 31st, 1990
|
|---|
-
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:
|
|
|---|
-
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:
|
October 1st, 1992
|
|---|
-
Language:
|
ABC
|
|---|
-
Package:
|
Grammar analysis tools
|
|---|
-
Version:
|
1
|
|---|
-
Parts:
|
analysis tools, samples, documentation
|
|---|
-
Author:
|
Steven Pemberton <Steven.Pemberton@cwi.nl>
|
|---|
-
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:
|
Steven.Pemberton@cwi.nl
|
|---|
-
Updated:
|
July 5th, 1993
|
|---|
-
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:
|
September 25th, 1994
|
|---|
-
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://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:
|
Febuary 10th, 1993
|
|---|
-
Language:
|
Icon
|
|---|
-
Package:
|
icon
|
|---|
-
Version:
|
8.8 (8.7, 8.5, 8.0 depending on platform)
|
|---|
-
Parts:
|
interpreter, compiler (some platforms), library (v8.8)
|
|---|
-
Author:
|
Ralph Griswold <ralph@CS.ARIZONA.EDU>
|
|---|
-
Location:
|
ftp://cs.arizona.edu/icon/*
MS-DOS version: ftp://bellcore.com/norman/iconexe.zip
|
|---|
-
Description:
|
Icon is a high-level, general purpose programming language that
contains many features for processing nonnumeric data,
particularly for textual material consisting of string of
characters. Some features are reminiscent of SNOBOL, which
Griswold had previously designed.
| - | no packages, one name-space |
| - | no exceptions |
| + | object oriented features |
| + | records, sets, lists, strings, tables |
| + | unlimited line length |
| - | unix interface is primitive |
| + | co-expressions |
|
|---|
-
Reference:
|
"The Icon Programming Language", Ralph E. Griswold and
Madge T. Griswold, Prentice Hall, seond edition, 1990.
"The Implementation of the Icon Programming Language",
Ralph E. Griswold and Madge T. Griswold, Princeton
University Press 1986
|
|---|
-
Ports:
|
Amiga, Atari, CMS, Macintosh, Macintosh/MPW, MSDOS, MVS, OS/2,
Unix (most variants), VMS, Acorn
|
|---|
-
Discussion:
|
comp.lang.icon
|
|---|
-
Contact:
|
icon-project@cs.arizona.edu
mengarini@delphi.com for MS-DOS version
|
|---|
-
Updated:
|
August 21st, 1992
|
|---|
-
Language:
|
BNF variant, Python
|
|---|
-
Package:
|
kwParsing ?
|
|---|
-
Version:
|
?
|
|---|
-
Parts:
|
parser generator
|
|---|
-
Author:
|
Aaron Watters <aaron@vienna.njit.edu>
|
|---|
-
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:
|
September 24th, 1994
|
|---|
-
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://the/new/lalr.shar Scheme Repository
|
|---|
-
Description:
|
A LALR(1) parser generator in and for Scheme.
|
|---|
-
Requires:
|
Scheme
|
|---|
-
Updated:
|
May 24th, 1993
|
|---|
-
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:
|
? dpoole@hydrogen.oscs.montana.edu (David Poole)
|
|---|
-
Updated:
|
July 2nd, 1993
|
|---|
-
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:
|
March 31st, 1990
|
|---|
-
Language:
|
Perl (Practical Extraction and Report Language)
|
|---|
-
Package:
|
MacPerl
|
|---|
-
Version:
|
5.2.0r4
|
|---|
-
Author:
|
Matthias Neeracher <neeri@iis.ee.ethz.ch>
|
|---|
-
Location:
|
http://www.ptf.com/macperl
|
|---|
-
Description:
|
MacPerl offers (nearly) all the features of Perl plus oodles
of Macintosh-specific functionality!
|
|---|
-
Ports:
|
Macintosh
|
|---|
-
Status:
|
actively developed
|
|---|
-
Discussion:
|
mac-perl-request@iis.ee.ethz.ch (majordomo list)
|
|---|
-
Updated:
|
20 April 1998
|
|---|
-
Language:
|
BNF (yacc), Standard ML
|
|---|
-
Package:
|
New SML-Yacc and SML-Lex
|
|---|
-
Version:
|
??
|
|---|
-
Parts:
|
??
|
|---|
-
Author:
|
Andrew Appel <appel@tyrolia.princeton.edu>
|
|---|
-
Location:
|
princeton.edu/pub/ml, files mlyacc94.tar.Z, lexgen94.tar.Z.
|
|---|
-
Description:
|
??
|
|---|
-
Updated:
|
May 23rd, 1994
|
|---|
-
Language:
|
BNF (yacc)
|
|---|
-
Package:
|
NewYacc
|
|---|
-
Version:
|
1.0
|
|---|
-
Parts:
|
parser generator, documenation
|
|---|
-
Author:
|
Jack Callahan <callahan@mimsy.cs.umd.edu>
|
|---|
-
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:
|
Febuary 10th, 1992
|
|---|
-
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://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 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:
|
November 14th, 1993
|
|---|
-
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:
|
|
|---|
-
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:
|
October 5th, 1995
|
|---|
-
Language:
|
Perl (Practical Extraction and Report Language)
|
|---|
-
Package:
|
perl
|
|---|
-
Version:
|
4.0 patchlevel 36
|
|---|
-
Parts:
|
interpreter, debugger, libraries, tests, documentation
|
|---|
-
Author:
|
Larry Wall <lwall@netlabs.com>
|
|---|
-
Location:
|
|
|---|
-
Description:
|
perl is an interpreted language optimized for scanning
arbitrary text files, extracting information from those text
files, and printing reports based on that information. It's
also a good language for many system management tasks.
|
|---|
-
Reference:
|
"Programming Perl" by Larry Wall and Randal L. Schwartz,
O'Reilly & Associates, Inc. Sebastopol, CA.
ISBN 0-93715-64-1
"Learning Perl" by Randal L. Schwartz,
O'Reilly & Associates, Inc. Sebastopol, CA.
ISBN 1-56592-042-2
The perl FAQ, ftp from rtfm.mit.edu
|
|---|
-
Features:
|
| + | very-high semantic density becuase of powerful operators |
like regular expression substitution
| + | exceptions, provide/require |
| + | associative array can be bound to dbm files |
| + | no arbitrary limits |
| + | direct access to almost all system calls |
| + | can access binary data |
| + | many powerful idioms for common tasks |
| + | 8-bit clean, including nulls |
| - | three variable types: scalar, array, and hash table |
| - | syntax requires variable and function prefix characters |
|
|---|
-
Bugs:
|
comp.lang.perl; Larry Wall <lwall@netlabs.com>
|
|---|
-
Ports:
|
almost all unix, MSDOS, Mac, Amiga, Atari, OS/2, VMS, NT, MVS
|
|---|
-
Portability:
|
very high for unix, not so high for others
|
|---|
-
Discussion:
|
-
|
comp.lang.perl
|
|---|
-
macintosh:
|
mpw-perl-request@iis.ee.ethz.ch
|
|---|
|
|---|
-
Updated:
|
Febuary 7th, 1993
|
|---|
-
Language:
|
Perl
|
|---|
-
Package:
|
perl profiler.
|
|---|
-
Version:
|
? 1
|
|---|
-
Parts:
|
profiler
|
|---|
-
Author:
|
Anthony Iano-Fletcher <arf@maths.nott.ac.uk>
|
|---|
-
Location:
|
Source posted on comp.lang.perl in mid-June 1993
|
|---|
-
Description:
|
Profiles Perl scripts (mkpprof).
Collates data from Perl scripts (pprof)
|
|---|
-
Updated:
|
June 17th, 1993
|
|---|
-
Language:
|
BNF (yacc), Perl
|
|---|
-
Package:
|
perl-byacc
|
|---|
-
Version:
|
1.8.2
|
|---|
-
Parts:
|
parser-generator(perl)
|
|---|
-
Author:
|
Rick Ohnemus <Rick_Ohnemus@Sterling.COM>
|
|---|
-
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:
|
January 24th, 1993
|
|---|
-
Language:
|
Perl (Practical Extraction and Report Language)
|
|---|
-
Package:
|
perl5
|
|---|
-
Version:
|
5.005
|
|---|
-
Parts:
|
interpreter, debugger, libraries, tests, documentation
|
|---|
-
Author:
|
Larry Wall <lwall@netlabs.com>
|
|---|
-
Location:
|
|
|---|
-
Description:
|
Perl5 is a major rewrite and enhancement to perl4. It adds
real data structures (by way of "references"), un-adorned
subroutine calls, and method inheritance. It is repackaged
with many extensions that can be dynamically loaded in the
interpreter at runtime.
|
|---|
-
Features:
|
- very-high semantic density becuase of powerful operators
like regular expression substitution
- no arbitrary limits
- exceptions
- variables can be tied to arbitrary code (like dbm)
- direct access to almost all system calls
- can access binary data
- many powerful idioms for common tasks
- 8-bit clean, including nulls
- dynamic loading of extensions
- constructors, destructors, multiple inheritence, and
operator overloading
- support for writing secure systems
- many useful libraries and extensions
|
|---|
-
References:
|
http://language.perl.com/
http://www.perl.com/pace/pub
"Programming Perl" by Larry Wall and Randal L. Schwartz,
O'Reilly & Associates, Inc. Sebastopol, CA.
ISBN 0-93715-64-1
"Learning Perl" by Randal L. Schwartz,
O'Reilly & Associates, Inc. Sebastopol, CA.
ISBN 1-56592-042-2
|
|---|
-
Extensions:
|
- Tk - easy to use X11 interface
- tcl - dynamically load Tcl into perl
- Curses - sreen-based
- CGI - easy web programming
- perlmenu - http://www.cc.iastate.edu/perlmenu/
- DBI - interfaces to many relational databases
- Safe - secure execution of untrusted code
- Penguin - distributed secure execution of untrusted code
|
|---|
-
Bugs:
|
Send bugs to <perl-bugs@perl.com>
|
|---|
-
Ports:
|
Almost all unix systems, Amiga, Atari, LynxOS, Macintosh,
MPE, MS-DOS, MVS, Netware, OS/2, QNX, VMS, Windows 3.x,
Windows NT (http://info.hip.com/ntperl/PerlFaq.htm)
|
|---|
-
Portability:
|
Extreamly high.
|
|---|
-
Updated:
|
July 8th, 1999
|
|---|
-
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 <ptb@comlab.ox.ac.uk>,
Jonathan Bowen <bowen@comlab.ox.ac.uk>
|
|---|
-
Updated:
|
June 2nd, 1994
|
|---|
-
Language:
|
BNF ?, Gofer
|
|---|
-
Package:
|
Ratatosk (?)
|
|---|
-
Version:
|
?
|
|---|
-
Parts:
|
parser generatr (Gofer)
|
|---|
-
Author:
|
Torben AEgidius Mogensen <torbenm@diku.dk>
|
|---|
-
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:
|
Regular Expressions
|
|---|
-
Package:
|
re2c
|
|---|
-
Version:
|
alpha
|
|---|
-
Parts:
|
translator (re->c)
|
|---|
-
Author:
|
?? peter@csg.uwaterloo.ca
|
|---|
-
Location:
|
ftp://csg.uwaterloo.ca/pub/peter/re2c.0.5.tar.gz
|
|---|
-
Description:
|
A regular expression to C converter.
|
|---|
-
Updated:
|
?? April 29th, 1994
|
|---|
-
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
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:
|
September 20th, 1995
|
|---|
-
Language:
|
Relation Grammar
|
|---|
-
Package:
|
rl
|
|---|
-
Version:
|
?
|
|---|
-
Parts:
|
?
|
|---|
-
Author:
|
Kent Wittenburg <kentw@bellcore.com>
|
|---|
-
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:
|
October 31st, 1992
|
|---|
-
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:
|
info-scorpion-request@cs.arizona.edu
|
|---|
-
Contact:
|
scorpion-project@cs.arizona.edu
|
|---|
-
Updated:
|
November 4 1993
|
|---|
-
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:
|
|
|---|
-
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:
|
September 1st, 1995
|
|---|
-
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://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:
|
September 25th, 1989
|
|---|
-
Language:
|
BNF (??)
|
|---|
-
Package:
|
T-gen
|
|---|
-
Version:
|
2.1
|
|---|
-
Parts:
|
parser generator, documentation, ?
|
|---|
-
Author:
|
Justin Graver <graver@comm.mot.com>
|
|---|
-
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:
|
October 18th, 1992
|
|---|
-
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).
|
|---|
-
Compilation plat
|
form);
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
|
|---|
-
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://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 <budd@fog.cs.orst.edu>
|
|---|
-
Updated:
|
September 12th, 1991
|
|---|
-
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:
|
October 3rd, 1994
|
|---|
-
Language:
|
TXL
|
|---|
-
Package:
|
TXL: Tree Transformation Language
|
|---|
-
Version:
|
7.4
|
|---|
-
Parts:
|
translator, documentation, tutorial, examples
|
|---|
-
Author:
|
Jim Cordy <cordy@qucis.queensu.ca>
|
|---|
-
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:
|
August 4 1993
|
|---|
-
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 <house@usq.edu.au>
|
|---|
-
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 <house@usq.edu.au>
|
|---|
-
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 <house@usq.edu.au>
|
|---|
-
Updated:
|
Febuary 2nd, 1998
|
|---|
-
Language:
|
Snobol4
|
|---|
-
Package:
|
vanilla
|
|---|
-
Version:
|
?
|
|---|
-
Parts:
|
compiler, documentation
|
|---|
-
Author:
|
Catspaw, Inc.
|
|---|
-
Location:
|
ftp://cs.arizona.edu/snobol4/vanilla.arc
|
|---|
-
Description:
|
An implementation of Ralph Griswold's SNOBOL 4, a classic early
language design specialized for text and string manipulation
that (among other things) influenced UNIX rexexp syntax. See
also Icon. This implementation is closely related to Phil
Budne's 'beta2' SNOBOL.
|
|---|
-
Ports:
|
MSDOS
|
|---|
-
Contact:
|
?
|
|---|
-
Updated:
|
November 1st, 1994
|
|---|
-
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 (yacc)
|
|---|
-
Package:
|
yacc
|
|---|
-
Version:
|
1.9.1
|
|---|
-
Parts:
|
parser_generator
|
|---|
-
Author:
|
Todd Dukes (ladco@tab.com)
|
|---|
-
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 (??)
|
|---|
-
Package:
|
ZUSE
|
|---|
-
Version:
|
?
|
|---|
-
Parts:
|
parser generator(?)
|
|---|
-
Author:
|
Arthur Pyster
|
|---|
-
Location:
|
? Univ Calif at Santa Barbara ?
|
|---|
-
Description:
|
ll(1) paser generator
|
|---|
-
Requires:
|
Pascal
|
|---|
-
Updated:
|
September 23rd, 1986
|
|---|
|
|