Article 21954 of comp.lang.misc: Newsgroups: comp.compilers,comp.lang.misc,comp.archives.admin,news.answers,comp.answers Path: nntpd.lkg.dec.com!crl.dec.com!crl.dec.com!bloom-beacon.mit.edu!news.kei.com!world!iecc!compilers-sender From: free-compilers@idiom.com (Steven Robenalt) Subject: Catalog of compilers, interpreters, and other language tools [p4of5] Message-ID: Followup-To: comp.lang.misc Summary: Monthly posting of free language tools that include source code Keywords: tools, FTP, administrivia Sender: compilers-sender@chico.iecc.com Supersedes: Reply-To: free-compilers@idiom.com (Steven Robenalt) Organization: Idiom Consulting / Berkeley, CA References: Date: Sat, 1 Jul 1995 11:00:52 GMT Approved: compilers@iecc.com Expires: Tue, 1 Aug 1995 23:59:00 GMT Lines: 1654 Xref: nntpd.lkg.dec.com comp.compilers:9019 comp.lang.misc:21954 comp.archives.admin:1893 news.answers:46986 comp.answers:12594 Archive-name: free-compilers/part4 Last-modified: 1995/05/04 Version: 8.0 concurrent, parallel, and simulation languages ------------------------------------------------------------------------------- category: concurrent, parellel, and simulation languages description: This is a fairly broad category of languages. Most of the implementations in this set are not good enough to be used in production systems. Some are. In addition to those listed below, see: lref: Concurrent Clean lref: Concurrent ML lref: EuLisp lref: Parallaxis lref: Maisie lref: uC++ lref: MeldC lref: pm2 lref: Simula 67 iref: (Tcl) MTtcl - Multi-threaded Tcl language: ABCL/1 (An object-Based Concurrent Language) package: ABCL/1 version: ? parts: ? author: Akinori Yonezawa, ABCL Group now at Department of Information Science, the University of Tokyo location: ftp pub/abcl1/* from camille.is.s.u-tokyo.ac.jp description: Asynchronous message passing to objects. reference: "ABCL: An Object-Oriented Concurrent System", Edited by Akinori Yonezawa, The MIT Press, 1990, (ISBN 0-262-24029-7) restriction: no commercial use, must return license agreement requires: Common Lisp contact: abcl@is.s.u-tokyo.ac.jp updated: 1990/05/23 language: ABCL ??? package: ABCL/R2 version: ? parts: ? author: masuhara@is.s.u-tokyo.ac.jp, matsu@is.s.u-tokyo.ac.jp, takuo@is.s.u-tokyo.ac.jp, yonezawa@is.s.u-tokyo.ac.jp location: ftp pub/abclr2/* from camille.is.s.u-tokyo.ac.jp description: ABCL/R2 is an object-oriented concurrent reflective language based on Hybrid Group Architecture. As a reflective language, an ABCL/R2 program can dynamically control its own behavior, such as scheduling policy, from within user-program. An an object-oriented concurrent language, this system has almost all functions of ABCL/1. requires: Common Lisp updated: 1993/01/28 language: ALLOY package: ALLOY version: 2.0? parts: interpreter, documentation, examples author: Thanasis Mitsolides location: ftp pub/local/alloy/* from cs.nyu.edu description: ALLOY is a higher level parallel programming language appropriate for programming massively parallel computing systems. It is based on a combination of ideas from functional, object oriented and logic programming languages. The result is a language that can directly support functional, object oriented and logic programming styles in a unified and controlled framework. Evaluating modes support serial or parallel execution, eager or lazy evaluation, non-determinism or multiple solutions etc. ALLOY is simple as it only requires 29 primitives in all (half of which for Object Oriented Programming support). ports: sparc, ? updated: 1991/06/11 language: Cellang (Cellular Automata) package: Cellular version: 2.0 parts: byte-code compiler, runtime, viewer author: J Dana Eckart 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 location: ftp pub/hermes/README from software.watson.ibm.com description: Hermes is a very-high-level integrated language and system for implementation of large systems and distributed applications, as well as for general-purpose programming. It is an imperative, strongly typed, process-oriented language. Hermes hides distribution and heterogeneity from the programmer. The programmer sees a single abstract machine containing processes that communicate using calls or sends. The compiler, not the programmer, deals with the complexity of data structure layout, local and remote communication, and interaction with the operating system. As a result, Hermes programs are portable and easy to write. Because the programming paradigm is simple and high level, there are many opportunities for optimization which are not present in languages which give the programmer more direct control over the machine. reference: Strom, Bacon, Goldberg, Lowry, Yellin, Yemini. Hermes: A Language for Distributed Computing. Prentice-Hall, Englewood Cliffs, NJ. 1991. ISBN: O-13-389537-8. ports: RS6000 Sun-4 NeXT IBM-RT/bsd4.3 (Sun-3 and Convex soon) discussion: comp.lang.hermes updated: 1992/03/22 language: PCN package: PCN version: 2.0 parts: compiler?, runtime, linker, libraries, tools, debugger, profiler, tracer author: Ian Foster , Steve Tuecke , and others location: ftp pub/pcn/pcn_v2.0.tar.Z from info.mcs.anl.gov description: PCN is a parallel programming system designed to improve the productivity of scientists and engineers using parallel computers. It provides a simple language for specifying concurrent algorithms, interfaces to Fortran and C, a portable toolkit that allows applications to be developed on a workstation or small parallel computer and run unchanged on supercomputers, and integrated debugging and performance analysis tools. PCN was developed at Argonne National Laboratory and the California Institute of Technology. It has been used to develop a wide variety of applications, in areas such as climate modeling, fluid dynamics, computational biology, chemistry, and circuit simulation. ports: (workstation nets): Sun4, NeXT, RS/6000, SGI (multicomputers): iPSC/860, Touchstone DELTA (shared memory multiprocessors): Symmetry/Dynix contact: updated: 1993/02/12 language: LOOPN package: LOOPN version: ? parts: compiler?, simulator author: ? location: ftp departments/computer_sci*/loopn.tar.Z from ftp.utas.edu.au description: I wish to announce the availability of a compiler, simulator and associated source control for an object-oriented petri net language called LOOPN. In LOOPN, a petri net is an extension of coloured timed petri nets. The extension means firstly that token types are classes. In other words, they consist of both data fields and functions, they can be declared by inheriting from other token types, and they can be used polymorphically. The object-oriented extensions also mean that module or subnet types are classes. LOOPN has been developed over a period of about 5 years at the University of Tasmania, where it has been used in teaching computer simulation and the modelling of network protocols. A petri net is a directed, bipartite graph; nodes are either places (represented by circles) or transitions (represented by rectangles). A net is marked by placing tokens on places. When all the places pointing to a transition (the input places) have a token, the net may be fired by removing a token from each input place and adding a token to each place pointed to by the transition (the output places). Petri nets are used to model concurrent systems, particularly in the network protocol area. contact: Charles Lakos updated: 1992/12/20 language: Simula package: Lund Simula version: 4.07 parts: ? author: ? location: ftp misc/mac/programming/+_Simula/* from rascal.ics.utexas.edu description: ? contact: Lund Software House AB / Box 7056 / S-22007 Lund, Sweden updated: 1992/05/22 language: SR (Synchronizing Resources) package: sr version: 2.0 parts: ?, documentation, tests author: ? location: ftp sr/sr.tar.Z from cs.arizona.edu description: SR is a language for writing concurrent programs. The main language constructs are resources and operations. Resources encapsulate processes and variables they share; operations provide the primary mechanism for process interaction. SR provides a novel integration of the mechanisms for invoking and servicing operations. Consequently, all of local and remote procedure call, rendezvous, message passing, dynamic process creation, multicast, and semaphores are supported. reference: "The SR Programming Language: Concurrency in Practice", by Gregory R. Andrews and Ronald A. Olsson, Benjamin/Cummings Publishing Company, 1993, ISBN 0-8053-0088-0 ports: Sun-4, Sun-3, Decstation, SGI Iris, HP PA, HP 9000/300, NeXT, Sequent Symmetry, DG AViiON, RS/6000, Multimax, Apollo, and others. discussion: info-sr-request@cs.arizona.edu contact: sr-project@cs.arizona.edu updated: 1992/09/01 language: UNITY package: MasPar Unity version: 1.0 parts: translator(UNITY->MPL), documentation author: Martin Huber, University of Karlsruhe, Germany location: ftp pub/maspar/maspar_unity* from SanFrancisco.ira.uka.de description: ? contact: Lutz Prechelt updated: ? language: UNITY package: HOL-UNITY version: 2.1 parts: verification tool author: ? location: ? description: ? contact: Flemming Andersen ? 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 location: ftp tile-forth-2.1.tar.Z from a GNU archive site description: Forth interpreter in C; many Forth libraries conformance: Forth83 restriction: shareware/GPL ports: unix updated: 1991/11/13 language: Forth package: cforth version: ? parts: interpreter author: ? location: comp.sources.unix archive volume 1 description: ? updated: ? language: Forth package: pfe (Portable Forth Environment) version: 0.9.4 parts: ? author: Dirk Zoller location: ftp pub/unix/languages/pfe* from duz@roxi.rz.fht-mannheim.de description: A Forth development system that tries to be correct, complete, portable, usable and simple. It doesn't try too hard to be fast. conformance: all dpANS word sets ports: Linux, RS/6000, HP-UX portability: high updated: 1994/05/02 language: Forth package: F68K version: ? parts: ? author: ? location: ftp atari/Languages/f68k.* from archive.umich.edu description: a portable Forth system for Motorola 68k computers ports: Atari ST/TT, Amiga, Sinclair QL and OS9 portability: very high for 68000 based systems contact: Joerg Plewe 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 location: ftp.uni-stuttgart.de:/pub/systems/pc/lang/forth/m4th10.zip description: A small Forth implementation ports: MSDOS. updated: 1994/06/28 language: Forth package: ThisForth version: ? author: ? location: ftp pub/wilbaden/this4th-00B01.MAC.sit.* from ftp.netcom.com description: ThisForth has been built for Macintosh and PowerMac.There is still a single source for all incarnations. For now there is just a console interface for the Mac and PowerMac. ports: Macintosh, PowerMac updated: 1994/09/20 language: Mops package: Mops version: 2.3.1 parts: compiler, documentation, editor author: Michael Hore location: ftp pub/Yerk/? from oddjob.uchicago.edu description: Like Yerk, Mops is descended from the ex-commercial object-oriented language Neon. Mops features an optimizing native-code compiler; it is much faster than Yerk, but less compatible with Neon. Mops includes extensions such as multiple inheritance. ports: Macintosh updated: ? language: Kevo (Forth-like) package: kevo version: 0.9b6 parts: interpreter, demo programs, user's guide, papers author: Antero Taivalsaari location: ftp /pub/kevo/* from cs.uta.fi description: Kevo is a prototype-based object-oriented language for Macintosh Kevo features a unique prototype-based object model (which is based neither on classes nor Self-style delegation), multitasking (both preemptive and cooperative), dynamic memory management, and an icon-based object browser and editor modeled loosely after Mac Finder. Kevo has been built around a portable threaded code interpreter, and is syntactically a close derivative of Forth. ports: Macintosh contact: kevo-interest@ursamajor.uvic.ca updated: 1993/05/18 language: Yerk package: Yerk version: 3.62 parts: ? author: ? location: ftp pub/Yerk/? from oddjob.uchicago.edu description: Yerk is an object oriented language based on a Forth Kernel with some major modifications. It was originally known as Neon, developed and sold as a product by Kriya Systems from 1985 to 1989. Several of us at The University of Chicago have maintained Yerk since its demise as a product. Because of the possible trademark conflict that Kriya mentions, we picked the name Yerk, which is at least not an acronym for anything, but rather stands for Yerkes Observatory, part of the Department of Astronomy and Astrophysics at U of C. updated: ? compiler generators and related tools ------------------------------------------------------------------------------- category: compiler generators and related tools description: Yacc, and the rest of its family language: ABC package: Grammar analysis tools version: 1 parts: analysis tools, samples, documentation author: Steven Pemberton location: ftp /pub/abc/examples/grammar/* from ftp.cwi.nl or http://www.cwi.nl/~steven/abc/examples/grammar description: Grammar analysis program written in ABC (q.v.) for answering such questions as "what are the start symbols of all rules", "what symbols can follow this symbol", "which rules are left recursive", and so on. Includes a grammar of ISO Pascal. reference: Ftp archive includes an article explaining the package. ports: unix, MSDOS, atari, mac contact: Steven.Pemberton@cwi.nl updated: 1993/07/05 language: ? attribute grammar ? package: Alpha version: pre-release parts: semantic-analysis generator?, documentation(german) author: Andreas Koschinsky 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 location: ftp pub/ox/* from ftp.cs.iastate.edu description: Ox generalizes the function of Yacc in the way that attribute grammars generalize context-free grammars. Ordinary Yacc and Lex specifications may be augmented with definitions of synthesized and inherited attributes written in C syntax. Ox checks these specifications for consistency and completeness, and generates from them a program that builds and decorates attributed parse trees. Ox accepts a most general class of attribute grammars. The user may specify postdecoration traversals for easy ordering of side effects such as code generation. Ox handles the tedious and error-prone details of writing code for parse-tree management, so its use eases problems of security and maintainability associated with that aspect of translator development. Ox is a preprocessor, and extends the syntax and semantics of Yacc, Lex, and C. reference: Most compiler textbooks have descriptions of attribute grammars. features: LALR(1), semantic-analyzer generation. bugs: none known. Report bugs to ox-project@cs.iastate.edu. restriction: Use of Ox is free. Ox-generated code is the property of the Ox user. ports: Unix contact: ox-request@cs.iastate.edu updated: 1993/11/14 language: attribute grammar package: Rie version: 1.0.4 parts: compiler generator (Rie->C), attribute evaluator generator, documentation, examples (PL/0 compiler, simple semantic analyzer). author: Masataka Sassa, Kazuhiro Kuroishi, Teruhisa Hirai and Yoshiki Ohshima location: ftp /pub/Rie/* from ftp.is.titech.ac.jp description: Rie is a yet another compiler generator based on a one-pass ECLR-attribnute grammar, a one-pass superset of LR-attributed grammar. It generates compilers comparable in speed to handwritten compilers (about 1.8 times slower) that can directly evaluate inherited and synthesized attributes in parallel with LR parsing, without having to create parse trees. Rie has a YACC-like syntax, but with the ability to define attribution rules, thus allowing a unified treatment of the syntax and semantics. Shorthand conditions, context conditions and 'local' attributes are also processed. 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 Contact rie-info@is.titech.ac.jp for hardcopy. Electric version soon to be available at ftp.is.titech.ac.jp in /pub/Rie/Papers/*. bugs: Bug reports are welcome to rie-comments@is.titech.ac.jp. restriction: Falls under version 2 of the GNU CopyLeft and the same restrictions as Bison. ports: UNIX, DOS, etc. (same as bison) and Sharp X68000 contact: rie-info@is.titech.ac.jp> updated: 1993/12/02 language: BNF (Extended, actually a regular right part grammar) package: Gray version: 4 parts: parser generator, documentation, examples author: Martin Anton Ertl how to get: ftp://server.complang.tuwien.ac.at/pub/forth/gray4.tar.gz ftp://server.complang.tuwien.ac.at/pub/forth/gray4.zip description: Gray is a parser generator written in Forth. It takes grammars in an extended BNF and produces executable Forth code for recursive descent parsers. restrictions: Copyleft requires: ANS Forth conformance: ANS Forth with some environmental dependences (see README) status: supported ports: Several ANS Forth Systems; mail author for old versions running on Tile. updated: 1994/08/08 language: BNF (??) package: ZUSE version: ? parts: parser generator(?) author: Arthur Pyster location: ? Univ Calif at Santa Barbara ? description: ll(1) paser generator requires: Pascal updated: 1986/09/23 language: BNF (??) package: FMQ version: ? parts: paser generator w/error corrector generator author: Jon Mauney location: ftp from csczar.ncsu.edu description: ? status: ? contact: ? updated: 1990/03/31 language: BNF (??) package: ATS (Attribute Translation System) version: ? parts: ? author: ? University of Saskatchewan ? location: ? description: generates table-driven LL(1) parsers with full insert-only error recovery. It also handles full left-attribute semantic handling, which is a dream compared to using YACC's parser actions. status: ? contact: ? (suggested: Dave Bocking ) updated: 1988/11/29 language: BNF (Extended) package: PCCTS (Purdue Compiler-Construction Tool Set) version: 1.31 parts: scanner generator, parser generator (pred-LL(k)), documentation, tutorial author: Terence J. Parr , Will E. Cohen , Henry G. Dietz , Russell W. Quong location: ftp pub/pccts/* from ftp.parr-research.com UK: ftp computing/programming/languages/tools/pccts/* from src.doc.ic.ac.uk 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 Fall 1995. 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 updated: 1995/04/05 language: BNF (very extended), yacc package: PRE-CC Xtended version: 2.30 parts: library, parser generator (LL(oo)), translator(yacc->) author: Peter Breuer location: FTP: ftp.comlab.ox.ac.uk:/pub/Programs/preccx.tar.Z (Unix) ftp.comlab.ox.ac.uk:/pub/Programs/preccx.msdos (MS-DOS) ftp.comlab.ox.ac.uk: /pub/Documents/techpapers/Jonathan.Bowen/preccx-uug.ps.Z (more recent versions available by subscription) URL: http://www.comlab.ox.ac.uk/archive/redo/precc.html description: PRECCX is an infinite-lookahead compiler compiler for context dependent grammars. The generated code is ANSI C. Specification scripts are in very EBNF with inherited and synthetic attributes allowed. Scripts can be compiled in separate modules, and linked together later. Meta-production rules allowed. The technology is essentially LL(oo) with optimizations. A converter for yacc scripts is available. reference: "The PRECC Compiler-Compiler" by P.T. Breuer and J.P. Bowen. In E. Davies and A. Findlay (eds.), Proc. UKUUG/SUKUG Joint New Year 1993 Conference, St. Cross Centre, Oxford, UK, 6-8 January 1993, ISBN 1 873611 06 4 (UKUUG), 0 9520700 0 6 (SUKUG) UKUUG/SUKUG Secretariat, Owles Hall, Buntingford, Herts SG9 9PL, UK, pp 167-182, 1993. "A PREttier Compiler-Compiler: Generating Higher Order Parsers in C" P.T. Breuer and J.P. Bowen. Oxford University Computing Laboratory Technical Report PRG-TR-20-92, 25pp, November 1992. Accepted by Software - Practice and Experience, 1994. ftp pub/Documents/techreports/TR-20-92.ps.Z from ftp.comlab.ox.ac.uk ports: unix, MS-DOS contact: Peter Breuer , Jonathan Bowen updated: 1994/06/02 language: BNF (??) package: LLGen version: ? parts: parser generator author: ? Fischer and LeBlanc ? location: ? ftp from csczar.ncsu.edu ? description: LL(1) parser generator conformance: subset of FMQ reference: "Crafting A Compiler", by Fischer and LeBlanc status: ? contact: ? updated: 1990/03/31 language: BNF package: wacco version: 1.1, July 91 parts: parser generator author: Parag Patel (parag@netcom.com, parag@sde.hp.com) location: comp.sources.misc volume ? description: Wacco is a recursive descent LL(1) parser generator that generates C++ code. Its syntax is similar to YACC with a lot of sugaring. It can also do attribute-driven parsing. The source is bootstrapped wacco code. ports: HP-UX s300 and s800, Sparc, and 4.3BSD (on HP) portability: Host machine must be 32 bits. contact: ? updated: ? language: BNF (Extended), BNF (yacc) package: GMD Toolbox for Compiler Construction (aka Cocktail) version: 9209 parts: lalr: parser generator (LALR(1) -> C, Modula-2), ell : parser generator (LL(1) -> C, Modula-2), rex : scanner generator (-> C, Modula-2), bnf : translator (Extended BNF -> BNF), y2l : translator (BNF (yacc) -> Extended BNF), ast : abstract syntax tree generator, ag : attribute-evaluator generator, puma: transformation of abstract syntax tree using pattern-matching documentation, examples author: Josef Grosch and others location: ftp /gmd/cocktail from ftp.gmd.de ftp /pub/unix/programming/compilerbau from ftp.rus.uni-stuttgart.de ftp /pub/programming/languages/compiler-compiler/cocktail from ftp.th-darmstadt.de ftp /languages/tools/gmd from src.doc.ic.ac.uk ftp /.3/plan/gmd from gatekeeper.dec.com OS/2: ftp.eb.ele.tue.nl/pub/src/cocktail/dos-os2.zoo description: A huge set of compiler building tools. requires: (MS-DOS and MS-Windows only) DJ Delorie's DOS extender (go32) (OS/2 only) emx programming environment for OS/2 ports: Unix, Linux, MS-DOS, MS-Windows, OS/2 portability: very high status: version 9209 is unsupported, Cocktail is actively developed, versions 9401 and higher are commercial discussion: subscribe to Cocktail using listserv@eb.ele.tue.nl support: Josef Grosch contact: Josef Grosch OS/2: Willem Jan Withagen updated: 1992/10/01 language: BNF (??) package: T-gen version: 2.1 parts: parser generator, documentation, ? author: Justin Graver location: ftp pub/st80_r41/T-gen2.1/* from st.cs.uiuc.edu description: T-gen is a general-purpose object-oriented tool for the automatic generation of string-to-object translators. It is written in Smalltalk and lives in the Smalltalk programming environment. T-gen supports the generation of both top-down (LL) and bottom-up (LR) parsers, which will automatically generate derivation trees, abstract syntax trees, or arbitrary Smalltalk objects. The simple specification syntax and graphical user interface are intended to enhance the learning, comprehension, and usefulness of T-gen. requires: Smalltalk-80 ports: ParcPlace Objectworks/Smalltalk 4.0 & 4.1 updated: 1992/10/18 language: BNF package: Eli Compiler Construction System version: 3.8 parts: scanner generator(regular expressions->C, C++), documentation parser generator(LALR->C, C++), documentation attribute grammar generator(LIDO->C, C++), documentation definition table generator(PDL->C, C++), documentation tree pattern-matcher generator(OIL->C, C++), documentation unparser generator(PTG->C, C++), documentation author: ? location: ftp pub/cs/distribs/eli/* from ftp.cs.colorado.edu Europe: ftp unix/eli from ftp.uni-paderborn.de or http://www.cs.colorado.edu/~eliuser description: Eli integrates off-the-shelf tools and libraries with specialized language processors to generate complete compilers quickly and reliably. It simplifies the development of new special-purpose languages, implementation of existing languages on new hardware and extension of the constructs and features of existing languages. ports: Sun-4 (SunOS 4 & 5), Ultrix/MIPS, RS/6000, HP-UX, SGI, Linux discussion: bugs: contact: , updated: 1993/11/01 language: BNF package: tom (demo for Tomita Parsing algorithm) version: 1 parts: parser generator, parser interpreter, examples, documentation author: Mark Hopkins 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 location: ftp src/newyacc.1.0.*.Z from flubber.cs.umd.edu description: [someone want to fill it in? --ed] reference: see Dec 89 CACM for a brief overview of NewYacc. updated: 1992/02/10 language: BNF (yacc) package: bison version: 1.22 parts: parser generator, documentation author: ? Robert Corbett and Richard Stallman location: ftp bison-1.16.tar.Z from a GNU archive site description: ? bugs: bug-gnu-utils@prep.ai.mit.edu restriction: !! will apply the GNU General Public License to *your* code !! ports: unix, atari, ? updated: 1993/09/14 language: BNF (yacc), Lex package: Bison++ and Flex++ version: 1.21-8 (bison), 2.3.8-7 (flex), 5 (flex++bison++misc) parts: translator, documentation, postscript, examples, DOS binary author: Alain Coetmeur location: cse.unl.edu in ~ftp/pub/nandy/c++/tools/LATEST/* Europe: mirrored on ftp.th-darmstadt.de description: A retargeting of bison-1 and flex 2.3 to C++, able to generate classes. As with Bison and Flex, these two tools are independent but designed for mutual compatibility. The version numbering has been changed for consistency with Flex and Bison, so versions of flex3.0.x and bison2.x of this package are are actually earlier versions, not later. Examples are provided to help in getting started. conformance: Mostly compatible with flex2.3 and bison 1 in C, apart from the ability to generate classes. features: Almost all symbol names can be redefined, parsers can be shared in C and C++ in the same headers... very extensible... flex++ support IOSTREAM and STDIO in C++. bugs: Contact coetmeur@icdc.fr (current author and maintainer). restriction: GNU License for bison++. Same as flex for flex++. ports: SUNOS4, DOS, and same ports as Flex/Bison, Windows NT (tested) portability: Larger memory model required on DOS (DOS binary supplied). status: active, supported, might not support flex 2.4 discussion: coetmeur@icdc.fr, news: comp.compiler, or comp.lang.c++ help: coetmeur@icdc.fr, news: comp.compiler, or comp.lang.c++ for substantial problems. support: see help, no commercial support. (volunteer ?) announcements: mail list locally maintained by coetmeur@icdc.fr, news: comp.compiler comp.lang.c++ updated: 1994/02/07 lref: C lref: C++ lref: Lex lref: yacc language: BNF (yacc) package: bison-A2.3 version: 2.3 (corresponds to gnu bison 1.22) parts: parser generator, C-parser, C++parser, documentation author: Fred Hansen location: ftp://ftp.andrew.cmu.edu/pub/AUIS/bison/bison-A2.2.tar.gz also in contrib/andrew on the XV11R6 distribution in directories overhead/bison, overhead/mkparser (but not the C++ version of the parser) description: This is the standard gnu bison with a number of improvments: license-free parsers for C and C++, only one external symbol for each grammar, permits multiple grammars per application, better error reports on the grammar. conformance: grammars are the same as bison and yacc; but run-time errors are handled differently, so semantic rules must be changed features: tokens in the grammar can be expressed as ">=" instead of GE bugs: send bugs to info-andrew-bugs@andrew.cmu.edu restriction: none (unless you use the native gnu-bison parser) ports: has been tested on most Unix platforms portability: generation of names for temp files is system dependent. discussion: info-andrew@andrew.cmu.edu (mirrored to comp.soft-sys.andrew) support: supported by the Andrew Consortium contributions: your organization is invited to join the Andrew Consortium info-andrew-request@andrew.cmu.edu updated: 1994/05/09 language: BNF (yacc) package: ? jaccl ? version: ? parts: parser generator author: Dave Jones 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 location: ftp pub/byacc.tar.1.9.Z from vangogh.CS.Berkeley.EDU description: probably the best yacc variant around. Previously known as Zoo, and before that, as Zeus. updated: 1993/02/22 language: BNF (yacc), Lex package: Lex/Yacc for Turbo Pascal uploaded version: ? parts: parser generator, scanner generator, documentation? author: ? location: iecc.com (140.186.81.1) at pub/file/lyprg.zip. description: Lex and Yacc retargeted to Pascal. contact: ? dpoole@hydrogen.oscs.montana.edu (David Poole) updated: 1993/07/02 language: BNF (yacc), Ada package: aflex-ayacc version: 1.2a parts: parser generator (Ada), scanner generator (Ada) author: IRUS (Irvine Research Unit in Software) location: ftp pub/irus/aflex-ayacc_1.2a.tar.Z from liege.ics.uci.edu description: Lex and Yacc equivalents that produce Ada output announcements: irus-software-request@ics.uci.edu contact: irus-software-request@ics.uci.edu updated: 1993/01/06 language: BNF (yacc), Perl package: perl-byacc version: 1.8.2 parts: parser-generator(perl) author: Rick Ohnemus location: ftp local/perl-byacc.tar.Z from ftp.sterling.com description: A modified version of byacc that generates perl code. Has '-p' switch so multiple parsers can be used in one program (C or perl). portability: Should work on most (?) Unix systems. Also works with SAS/C 6.x on AMIGAs. updated: 1993/01/24 language: BNF (yacc), Standard ML package: New SML-Yacc and SML-Lex version: ?? parts: ?? author: Andrew Appel location: princeton.edu in pub/ml, files mlyacc94.tar.Z, lexgen94.tar.Z. description: ?? updated: 1994/05/23 language: BNF (variant), Icon package: Ibpag2 (Icon-Based Parser Generation System 2) version: 1.2 parts: parser generator (Icon, SLR(1)) author: Richard L. Goerwitz 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 location: ftp pub/diku/dists/Ratatosk.tar.Z from ftp.diku.dk description: Ratatosk is a SLR parser generator in Gofer (a Haskell variant) that generates purely functional parsers (also in Gofer). Even though the sematic value of a production is a function of the attributes of its right-hand side (and thus apparently purely synthesized), inherited attributes are easily simulated by using higher order functions. ports: ? updated: ? language: BNF package: lalr.ss - An LALR(1) parser generator version: 0.9 parts: parser generator (->Scheme) author: Mark Johnson 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 , David R. Hanson , Todd A. Proebsting location: ftp pub/iburg.tar.Z from ftp.cs.princeton.edu description: Iburg is a program that generates a fast tree parser. It is compatible with Burg. Both programs accept a cost-augmented tree grammar and emit a C program that discovers an optimal parse of trees in the language described by the grammar. They have been used to construct fast optimal instruction selectors for use in code generation. Burg uses BURS; Iburg's matchers do dynamic programming at compile time. updated: 1993/02/10 language: BNF variant, Python package: kwParsing ? version: ? parts: parser generator author: Aaron Watters location: ftp pub/python/kwParsing.* from ftp.markv.com description: A parser generator written in Python for Python. This package may be appropriate for experimental translators, code generators, interpreters, or compilers; for instructinal purposes; among other possibility. The documentation gives a brief introduction to the conventions and basic ideas of parsing. updated: 1994/09/24 language: Candle, IDL (Interface Description Language) package: Scorpion System version: 6.0 parts: software development environment for developing software development environments, documentation author: University of Arizona location: ftp scorpion/* from cs.arizona.edu description: 20 tools that can be used to construct specialized programming environments. The Scorpion Project was started by Prof. Richard Snodgrass as an outgrowth of the SoftLab Project (which pro- duced the IDL Toolkit) that he started when he was at the University of North Carolina. The Scorpion Project is directed by him at the University of Arizona and by Karen Shannon at the University of North Carolina at Chapel Hill. reference: "The Interface Description Language: Definition and Use," by Richard Snodgrass, Computer Science Press, 1989, ISBN 0-7167-8198-0 ports: Sun-3, Sun-4, Vax, Decstation, Iris, Sequent, HP9000 discussion: info-scorpion-request@cs.arizona.edu contact: scorpion-project@cs.arizona.edu updated: 1993/11/04 language: COCOL (EBNF variant) package: COCO/R version: 1.36 parts: parser generator(LL(1)) author: Hanspeter Moessenboeck Port to Modula-2 done by Marc Brandis, Christof Brass and Pat Terry location: neptune.inf.ethz.ch:/pub/Coco ftp.psg.com:/pub/modula-2/coco cs.ru.ac.za:/pub/coco pluto.fit.qut.edu.au:/pub/coco description: Coco/R generates recursive descent parsers and their associated scanners from attributed grammars. Coco/R can bootstrap itself to generate its own driver, parser, scanner, and semantic evaluator from the attributed grammar CR.ATG. This grammar thus serves as an an example of how to write compiler descriptions for Coco. There are also other simpler examples showing its use. reference: _A compiler generator for microcomputers_, by Rechenberg and Mossenbock (Prentice Hall, 1989, 0-13-155136-1) bugs: MS-DOS related versions: Pat Terry Other: Hanspeter Moessenboeck requires: Oberon or Modula-2 ports: MS-DOS: TopSpeed Modula-2; FST 2.0; FST 3.1; StonyBrook QuickMod 2.2; Logitech 3.03. Macintosh: Apple MacMeth status: Oberon version is freely available?, Modula-2 version is free to academic sites; commercial use requires a license updated: 1994/06/23 language: COCOL (EBNF variant) package: coco/R version: 1.03 parts: parser generator(LL(1)) description: A C version of COCO/R updated: 1994/11/10 language: EAG (Extended Affix Grammar) package: EAG version: first public release parts: recognizer generator, transduccer generator, translator generator, editor generator, documentation author: Marc Seutter location: ftp pub/eag/* from hades.cs.kun.nl description: The Extended Affix Grammar formalism, or EAG for short, is a formalism for describing both the context free and the context sensitive syntax of languages. EAG is a member of the family of two-level grammars. They are very closely related to two-level van Wijngaarden grammars. The EAG compiler will generate either a recognizer or a transducer or a translator or a syntax directed editor for a language described in the EAG formalism. updated: 1993/09/14 language: EBNF package: ETO version: test version parts: parser, postscript document, examples author: Lin Li location: FTP: fi.ethz.ch under /pub/ETO/eto-09.* description: ETO is an object oriented universal syntax checker. It takes an EBNF specification for a language and then uses it on an input file to check its syntax. updated: 1994/06/03 language: lex package: flex version: 2.5.2 parts: scanner generator author: Vern Paxson location: ftp flex-2.5.2.tar.Z from a GNU archive site or ftp.ee.lbl.gov description: A POSIX-compliant "lex" scanner generator. bugs: vern@ee.lbl.gov or bug-gnu-utils@prep.ai.mit.edu updated: 1995/03/28 language: Regular Expressions package: re2c version: alpha parts: translator (re->c) author: ?? peter@csg.uwaterloo.ca location: csg.uwaterloo.ca in /pub/peter/re2c.0.5.tar.gz description: A regular expression to C converter. updated: ?? 1994/04/29 language: Milarepa package: Milarepa Perl/BNF Parser version: Prototype 1.0 parts: parser-generator, examples, tutorial author: Jeffrey Kegler location: via anonymous ftp at alexia.lis.uiuc.edu:/pub/perl/marpa-1.0.tar.Z description: Milarepa takes a source grammar in the Milarepa language (a straightforward mix of BNF and Perl) and generates a Perl file, which, when enclosed in a simple wrapper, parses some third language described by the source grammar. This is intended to be a real hacker's parser. It is not restricted to LR(k), and the parse logic follows directly from the BNF. It handles ambiguous grammars, ambiguous tokens (tokens which were not positively identified by the lexer) and allows the programmer to change the start symbol. The grammar may not be left recursive. The input must be divided into sentences of a finite maximum length. There is no fixed distinction between terminals and non-terminals, that is, a symbol can both match the input AND be on the left hand side of a production. Multiple Marpa grammars are allowed in a single perl program. It's only a prototype primarily due to poor speed. This is intended to be remedied after Perl 5.0 is out. requires: perl updated: 1994/04/27 language: Pascal, Lisp, APL, Scheme, SASL, CLU, Smalltalk, Prolog package: Tim Budd's C++ implementation of Kamin's interpreters version: ? parts: interpretors, documentation author: Tim Budd location: ? ftp pub/budd/kamin/*.shar from cs.orst.edu ? description: a set of interpretors written as subclasses based on "Programming Languages, An Interpreter-Based Approach", by Samuel Kamin. requires: C++ status: ? contact: Tim Budd updated: 1991/09/12 language: Relation Grammar package: rl version: ? parts: ? author: Kent Wittenburg location: fto rl/* from flash.bellcore.com description: The RL files contain code for defining Relational Grammars and using them in a bottom-up parser to recognize and/or parse expressions in Relational Languages. The approach is a simplification of that described in Wittenburg, Weitzman, and Talley (1991), Unification-Based Grammars and Tabular Parsing for Graphical Languages, Journal of Visual Languages and Computing 2:347-370. This code is designed to support the definition and parsing of Relational Languages, which are characterized as sets of objects standing in user-defined relations. Correctness and completeness is independent of the order in which the input is given to the parser. Data to be parsed can be in many forms as long as an interface is supported for queries and predicates for the relations used in grammar productions. To date, this software has been used to parse recursive pen-based input such as math expressions and flowcharts; to check for data integrity and design conformance in databases; to automatically generate constraints in drag-and-drop style graphical interfaces; and to generate graphical displays by parsing relational data and generating output code. requires: Common Lisp ports: Allegro Common Lisp 4.1, Macintosh Common Lisp 2.0 updated: 1992/10/31 language: S/SL (Syntax Semantic Language) package: ssl version: ? parts: parser bytecode compiler, runtime author: Rick Holt, Jim Cordy (language), Rayan Zachariassen (C implementation) location: ftp pub/ssl.tar.Z from neat.cs.toronto.edu description: A better characterization is that S/SL is a language explicitly designed for making efficient recusive-descent parsers. Unlike most other languages, practicially the LEAST expensive thing you can do in S/SL is recur. A small language that defines input/output/error token names (& values), semantic operations (which are really escapes to a programming language but allow good abstration in the pseudo-code), and a pseudo-code program that defines a grammar by the token stream the program accepts. Alternation, control flow, and 1-symbol lookahead constructs are part of the language. What I call an S/SL "implementation", is a program that compiles this S/SL pseudo-code into a table (think byte-codes) that is interpreted by the S/SL table-walker (interpreter). I think the pseudo-code language is LR(1), and that the semantic mechanisms turn it into LR(N) relatively easily. + more powerful and cleaner than yac - slower than yacc reference: Cordy, J.R. and Holt, R.C. [1980] Specification of S/SL: Syntax/Semantic Language, Computer Systems Research Institute, University of Toronto. "An Introduction to S/SL: Syntax/Semantic Language" by R.C. Holt, J.R. Cordy, and D.B. Wortman, in ACM Transactions on Programming Languages and Systems (TOPLAS), Vol 4, No. 2, April 1982, Pages 149-178. updated: 1989/09/25 language: TXL package: TXL: Tree Transformation Language version: 7.4 parts: translator, documentation, tutorial, examples author: Jim Cordy location: ftp pub/txl/* from ftp.qucis.queensu.ca description: TXL is a language for performing source to source transformations and is well suited for rapidly prototyping new languages and language processors. It has also been used to prototype specification languages, command languages, and more traditional program transformation tasks such as constant folding, type inference, source optimization and reverse engineering. TXL takes as input an arbitrary context-free grammar in extended BNF-like notation, and a set of show-by-example transformation rules to be applied to inputs parsed using the grammar. TXL is a functional/rule-based hybrid programming language, using the paradigm of structural transformation. reference: Several listed in software documentation updated: 1993/08/04 language: BNF (extended) package: SORCERER: A Simple Tree Parser Generator version: 1.01 parts: translator, documentation, tutorial, examples author: Terence Parr location: ftp pub/pccts/sorcerer/* from marvin.ecn.purdue.edu description: SORCERER is more suitable for the class of translation problems lying between those solved by code-generator generators and by full source-to-source translator generators. SORCERER generates simple, flexible, top-down, tree parsers that, in contrast to code-generators, may execute actions at any point during a tree walk. SORCERER accepts extended BNF notation, allows predicates to direct the tree walk with semantic and syntactic context information, and does not rely on any particular intermediate form, parser generator, or other pre-existing application. reference: Several listed in software documentation discussion: send mail with a body of "subscribe pccts-users your_name" to pccts-users@ahpcrc.umn.edu. "your_name" can be email, or full. help: from mailing list support: actively supported, from mailing list updated: ? 1994/06/15 mathematical tools and languages ------------------------------------------------------------------------------- category: mathematical tools and languages description: These are either special-purpose languages and tools, or general purpose languages and tools that have traditionally been used for mathematical and scientific computing task. lref: Fortran lref: PCN lref: CLP lref: SISAL 1.2 language: APL package: I-APL version: ? parts: ? author: ? location: ftp languages/apl/* from watserv1.waterloo.edu description: ? updated: 1992/07/06 language: APL package: APLWEB version: ? parts: translator(web->apl), translator(web->TeX) author: Dr. Christoph von Basum location: ftp languages/apl/aplweb/* from watserv1.uwaterloo.ca description: [Should this be listed with the Web entries? -- Ed.] updated: 1992/12/07 language: APL iref: (APL) Tim Budd's C++ implementation of Kamin's interpreters language: J package: J-mode version: ? parts: emacs macros author: ? location: ftp pub/j/gmacs/j-interaction-mode.el from think.com description: add on to J updated: 1991/03/04 language: RLaB language (math manipulation - MATLAB-like) package: RLaB version: 1.18d parts: interpreter, libraries, documentation author: Ian Searle location: ftp pub/RLaB/* from evans.ee.adfa.oz.au US: csi.jpl.nasa.gov in /pub/matlab/RLaB description: RLaB is a "MATLAB-like" matrix-oriented programming language/toolbox. RLaB focuses on creating a good experimental environment (or laboratory) in which to do matrix math Currently RLaB has numeric scalars and matrices (real and complex), and string scalars, and matrices. RLaB also contains a list variable type, which is a heterogeneous associative array. bugs: Ian Searle restriction: GNU General Public License requires: GNUPLOT, lib[IF]77.a (from f2c) ports: many unix, OS/2, Amiga updated: 1995/03/16 language: octave language (math manipulation - MATLAB-like) package: octave version: 1.1.1 parts: interpreter, libraries, documentation author: John W. Eaton location: ftp /pub/octave/* from ftp.che.utexas.edu also, any GNU archive site (see archive listing below) description: Octave is a high-level language, primarily intended for numerical computations. It provides a convenient command line interface for solving linear and nonlinear problems numerically. Octave can do arithmetic for real and complex scalars and matrices, solve sets of nonlinear algebraic equations, integrate functions over finite and infinite intervals, and integrate systems of ordinary differential and differential-algebraic equations. bugs: bug-octave@che.utexas.edu restriction: GNU General Public License requires: gnuplot, C++ compiler and FORTRAN compiler or f2c translator. ports: several updated: 1994/2/23 language: FUDGIT language (math manipulation) package: FUDGIT version: 2.27 parts: interpreter author: Thomas Koenig ?? location: ftp /pub/linux/sources/usr.bin/fudgit-* from tsx-11.mit.edu ?? description: FUDGIT is a double-precision multi-purpose fitting program. It can manipulate complete columns of numbers in the form of vector arithmetic. FUDGIT is also an expression language interpreter understanding most of C grammar except pointers. Morever, FUDGIT is a front end for any plotting program supporting commands from stdin. It is a nice mathematical complement to GNUPLOT, for example. requires: GNUPLOT ports: AIX, HPUX, Linux, IRIX, NeXT, SunOS, Ultrix updated: 1993/02/22 language: Unix BC (arbitrary-precision arithmetic language) package: C-BC version: 1.1 parts: bytecode compiler, interpreter, documentation, examples author: Mark Hopkins 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 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 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 location: ftp pub/calc from ftp.uu.net description: Arbitrary precision C-like calculator [similar to BC? --ed] ports: Linux updated: 1993/06/15 language: Unix DC (arbitrary-precision arithmetic language) package: GNU DC version: 0.2 parts: interpreter author: ? location: ftp dc-0.2.tar.Z from a GNU archive site description: DC is the language for an arbitrary precision postfix calculator. This version is a subset of DC that handles all the Unix DC operations, except the (undocumented) array operations. status: Attempting integration with GNU BC. updated: 1993/05/21 language: Fortran package: f2c version: 1993.04.28 parts: translator (to C), postscript documentation, man pages, support libraries. author: S. I. Feldman, D. M. Gay, M. W. Maimone and N. L. Schryer location: ftp from netlib@research.att.com:netlib/f2c/src/* description: translator (Fortran 77 to ANSI C or C++) bugs: D. M. Gay updated: 1993 April 27 language: Fortran package: Floppy version: ? parts: ? author: ? location: ffccc in comp.sources.misc archive volume 12 description: ? contact: ? updated: 1992/08/04 language: Fortran package: Flow version: ? parts: ? author: Julian James Bunn location: comp.sources.misc archive volume 31 description: The Flow program is a companion to Floppy, it allows the user to produce various reports on the structure of Fortran 77 code, such as flow diagrams and common block tables. requires: Floppy ports: VMS, Unix, CMS updated: ? language: Fortran package: Adaptor (Automatic DAta Parallelism TranslatOR) version: 1.0 parts: preprocessor, library, documentation author: ? location: ftp gmd/adaptor/adp_1.0.tar.Z from ftp.gmd.de description: Adaptor is a tool that transforms data parallel programs written in Fortran with array extensions, parallel loops, and layout directives to parallel programs with explicit message passing. ADAPTOR is not a compiler but a source to source transformation that generates Fortran 77 host and node programs with message passing. The new generated source codes have to be compiled by the compiler of the parallel machine. ports: CM-5, iPCS/860, Meiko CS1/CS2, KSR 1, SGI, Alliant, network of Suns, or RS/6000s contact: Thomas Brandes updated: 1993/06 language: Fortran, C package: cfortran.h version: 2.6 parts: macros, documentation, examples author: Burkhard Burow location: ftp cfortran/* from zebra.desy.de description: cfortran.h is an easy-to-use powerful bridge between C and FORTRAN. It provides a completely transparent, machine independent interface between C and FORTRAN routines and global data. cfortran.h provides macros which allow the C preprocessor to translate a simple description of a C (Fortran) routine or global data into a Fortran (C) interface. reference: reviewed in RS/Magazine November 1992 and a user's experiences with cfortran.h are to be described in the 1/93 issue of Computers in Physics. ports: VAX VMS or Ultrix, DECstation, Silicon Graphics, IBM RS/6000, Sun, CRAY, Apollo, HP9000, LynxOS, f2c, NAG f90. portability: high contact: burow@vxdesy.cern.ch updated: 1992/04/12 language: Fortran package: fsplit version: ? parts: ? author: ? location: ? description: a tool to split up monolithic fortran programs updated: ? language: Fortran package: ? version: ? parts: ? author: Steve Mccrea location: ? description: a tool to split up monolithic fortran programs requires: new awk updated: ? language: Fortran package: Fortran77 -> Fortran90 converter version: ? 1 parts: translator(Fortran 77 -> Fortran 90), documentation? author: metcalf@cernvm.cern.ch location: ftp pub/MandR/convert.f90 from jkr.cc.rl.ac.uk description: A Fortran77 to Fortran90 translator. There's a number of significant differences between the two Fortrans that makes a package like this useful. updated: 1993/07/17 language: Fortran package: F-curses version: ? parts: library author: Wade Schauer location: comp.sources.misc volume 44 description: F-curses (C) is a library of Fortran and C routines that gives Fortran programmers tranparent access to the curses library (a C library). restriction: shareware ports: UNIX, MS-DOS updated: 1994/10/10 language: Fortran iref: (Fortran) Stanford SUIF Compiler language: Fortran package: ? version: ? parts: semantic analyser author: ? location: http://www.nag.co.uk:70/ description: Fortran 90 semantic analyser updated: ? language: J package: J from ISI version: 6 parts: interpreter, tutorial author: Kenneth E. Iverson and Roger Hui location: ftp languages/apl/j/* from watserv1.waterloo.edu description: J was designed and developed by Ken Iverson and Roger Hui. It is similar to the language APL, departing from APL in using using the ASCII alphabet exclusively, but employing a spelling scheme that retains the advantages of the special alphabet required by APL. It has added features and control structures that extend its power beyond standard APL. Although it can be used as a conventional procedural programming language, it can also be used as a pure functional programming language. ports: Dec, NeXT, SGI, Sun-3, Sun-4, VAX, RS/6000, MIPS, Mac, Acorn IBM-PC, Atari, 3b1, Amiga updated: 1992/10/31 language: Ratfor package: ? ratfor ? version: ? parts: translator(Ratfor->Fortran IV) author: Brian Kernighan and P.J. Plauger (wrote the book anyway) location: comp.sources.unix archives volume 13 description: Ratfor is a front end language for Fortran. It was designed to give structured control structures to Fortran. It is mainly of historical significance. updated: ? language: Y (cross between C and Ratfor) package: y+po version: ? parts: compiler author: Jack W. Davidson and Christopher W. Fraser location: ftp pub/y+po.tar.Z from ftp.cs.princeton.edu description: Davidson/Fraser peephole optimizer PO [1-3] [where the GCC RTL idea and other optimization ideas came from] along with the Y compiler [cross between C+ratfor] is ftpable from ftp.cs.princeton.edu: /pub/y+po.tar.Z. It is a copy of the original distribution from the University of Arizona during the early 80's, totally unsupported, almost forgotten [do not bug the authors] old code, possibly of interest to compiler/language hackers. reference: Jack W. Davidson and Christopher W. Fraser, "The Design and Application of a Retargetable Peephole Optimizer", TOPLAS, Apr. 1980. Jack W. Davidson, "Simplifying Code Through Peephole Optimization" Technical Report TR81-19, The University of Arizona, Tucson, AZ, 1981. Jack W. Davidson and Christopher W. Fraser, "Register Allocation and Exhaustive Peephole Optimization" Software-Practice and Experience, Sep. 1984. status: history updated: ? electrical engineering languages ------------------------------------------------------------------------------- category: electrical engineering languages description: These are languages used for simulating, designing, and specifying circuits. language: CASE-DSP (Computer Aided Software Eng. for Digital Signal Proc) package: Ptolemy version: 0.4.1 parts: grahpical algorithm layout, code generator, simulator author: ? location: ftp pub/ptolemy/* from ptolemy.bekeley.edu description: Ptolemy provides a highly flexible foundation for the specification, simulation, and rapid prototyping of systems. It is an object oriented framework within which diverse models of computation can co-exist and interact. For example, using Ptolemy a data-flow system can be easily connected to a hardware simulator which in turn may be connected to a discrete-event system, etc. Because of this, Ptolemy can be used to model entire systems. In addition, Ptolemy now has code generation capabilities. from a flow graph description, Ptolemy can generate both C code and DSP assembly code for rapid prototyping. Note that code generation is not yet complete, and is included in the current release for demonstration purposes only. requires: C++, C ports: Sun-4, MIPS/Ultrix; DSP56001, DSP96002. status: active research project discussion: ptolemy-hackers-request@ohm.berkeley.edu contact: ptolemy@ohm.berkeley.edu updated: 1993/04/22 language: EDIF (Electronic Design Interchange Format) package: Berkeley EDIF200 version: 7.6 parts: translator-building toolkit author: Wendell C. Baker and Prof A. Richard Newton of the Electronics Research Laboratory, Department of Electrical Engineering and Computer Sciences at the University of California, Berkeley, CA location: ftp from pub/edif in ic.berkeley.edu description: ? restriction: no-profit w/o permission ports: ? updated: 1990/07 language: Verilog, XNF package: XNF to Verilog Translator version: ? parts: translator(XNF->Verilog) author: M J Colley location: ftp pub/dank/xnf2ver.tar.Z from punisher.caltech.edu description: This program was written by a postgraduate student as part of his M.Sc course, it was designed to form part a larger system operating with the Cadence Edge 2.1 framework. This should be born in mind when considering the construction and/or operation of the program. updated: ? language: VHDL package: ALLIANCE version: 1.1 parts: compiler, simulator, tools and environment, documentation author: ? location: ftp pub/cao-vlsi/alliance from ftp-masi.ibp.fr description: ALLIANCE 1.1 is a complete set of CAD tools for teaching Digital CMOS VLSI Design in Universities. It includes VHDL compiler and simulator, logic synthesis tools, automatic place and route, etc... ALLIANCE is the result of a ten years effort at University Pierre et Marie Curie (PARIS VI, France). ports: Sun4, also not well supported: Mips/Ultrix, 386/SystemV discussion: alliance-request@masi.ibp.fr contact: cao-vlsi@masi.ibp.fr updated: 1993/02/16 language: VHDL package: VHDL Object Model (VOM) version: 1.0 parts: parser author: David Benz and Phillip Baraona location: ftp pub/vhdl/tools/vhdl-object-model.tar.g from thor.ece.uc.edu description: VOM 1.0 is an object-oriented syntactic specification for VHDL written using the REFINE software design and synthesis environment. In simpler terms, it is a VHDL parser which builds an object tree from VHDL source code. If you are interested in transforming VHDL into some other form (source code, whatever) you might be interested in this. The parse tree (in the form of an object tree) is provided, you would just need to add your own transformations. VOM isn't complete. The semantic information is not included (type checking, certain syntactic-rules, etc.). VOM 1.0 should parse most VHDL programs. However, it will not detect errors such as a wait statement in a process statement with an explicit sensitivity list. updated: 1994/11/01 -- Send compilers articles to compilers@iecc.com, meta-mail to compilers-request@iecc.com.