Archive-name: compilers/free/part4 Last-modified: 2000/02/08 Version: 10.3 concurrent, parallel, and simulation languages ------------------------------------------------------------------------------- category: concurrent, parellel, and simulation languages description: This is a fairly broad category of languages. Most of the implementations in this set are not good enough to be used in production systems. Some are. In addition to those listed below, see: lref: Concurrent Clean lref: Concurrent ML lref: EuLisp lref: Parallaxis lref: Maisie lref: uC++ lref: MeldC lref: pm2 lref: Simula 67 iref: (Tcl) MTtcl - Multi-threaded Tcl language: ABCL/1 (An object-Based Concurrent Language) package: ABCL/1 version: ? parts: ? author: Akinori Yonezawa, ABCL Group now at Department of Information Science, the University of Tokyo location: ftp://camille.is.s.u-tokyo.ac.jp/pub/abcl1/* description: Asynchronous message passing to objects. reference: "ABCL: An Object-Oriented Concurrent System", Edited by Akinori Yonezawa, The MIT Press, 1990, (ISBN 0-262-24029-7) restriction: no commercial use, must return license agreement requires: Common Lisp contact: [email protected] updated: 1990/05/23 language: ABCL ??? package: ABCL/R2 version: ? parts: ? author: [email protected], [email protected], [email protected], [email protected] location: ftp://camille.is.s.u-tokyo.ac.jp/pub/abclr2/* description: ABCL/R2 is an object-oriented concurrent reflective language based on Hybrid Group Architecture. As a reflective language, an ABCL/R2 program can dynamically control its own behavior, such as scheduling policy, from within user-program. An an object-oriented concurrent language, this system has almost all functions of ABCL/1. requires: Common Lisp updated: 1993/01/28 language: ALLOY package: ALLOY version: 2.0? parts: interpreter, documentation, examples author: Thanasis Mitsolides <[email protected]> location: ftp://cs.nyu.edu/pub/local/alloy/* description: ALLOY is a higher level parallel programming language appropriate for programming massively parallel computing systems. It is based on a combination of ideas from functional, object oriented and logic programming languages. The result is a language that can directly support functional, object oriented and logic programming styles in a unified and controlled framework. Evaluating modes support serial or parallel execution, eager or lazy evaluation, non-determinism or multiple solutions etc. ALLOY is simple as it only requires 29 primitives in all (half of which for Object Oriented Programming support). ports: sparc, ? updated: 1991/06/11 language: Cellang (Cellular Automata) package: Cellular version: 2.0 parts: byte-code compiler, runtime, viewer author: J Dana Eckart <[email protected]> location: comp.sources.unix, volume 26 description: A system for cellular automata programming. updated: 1993/04/03 language: Hermes package: IBM Watson prototype Hermes system version: 0.8alpha patchlevel 01 parts: bytecode compiler, compiler(bytecode->C), runtime author: Andy Lowry <[email protected]> location: ftp://software.watson.ibm.com/pub/hermes/README description: Hermes is a very-high-level integrated language and system for implementation of large systems and distributed applications, as well as for general-purpose programming. It is an imperative, strongly typed, process-oriented language. Hermes hides distribution and heterogeneity from the programmer. The programmer sees a single abstract machine containing processes that communicate using calls or sends. The compiler, not the programmer, deals with the complexity of data structure layout, local and remote communication, and interaction with the operating system. As a result, Hermes programs are portable and easy to write. Because the programming paradigm is simple and high level, there are many opportunities for optimization which are not present in languages which give the programmer more direct control over the machine. reference: Strom, Bacon, Goldberg, Lowry, Yellin, Yemini. Hermes: A Language for Distributed Computing. Prentice-Hall, Englewood Cliffs, NJ. 1991. ISBN: O-13-389537-8. ports: RS6000 Sun-4 NeXT IBM-RT/bsd4.3 (Sun-3 and Convex soon) discussion: comp.lang.hermes updated: 1992/03/22 language: ICC++ (Illinois Concert C++) and CA (Concurrent Aggregates) package: Illinois Concert System version: 3.0 parts: compiler(->C++), interpreter, symbolic debugger, parallel runtime simulator, parallel implementation on TMC CM5, Cray T3D author: Various, [email protected] location: http://www-csag.cs.uiuc.edu/projects/concert.html description: The Concert System incorporates global analysis for parallel object-oriented languages, including aggressive concrete type inference. In addition, it include an extremely lightweight communication and threading library (compiler-supported). The implementation supports both a parallel C++ and a simple parallel object-oriented language called Concurrent aggregates. conformance: ICC++ and CA documentation available from the web site. reference: Andrew Chien, et. al. The Concert System -- Compiler and Runtime Support for Efficient Fine-Grained Concurrent Object-Oriented Programs, Department of Computer Science, University of Illinois, Urbana, Illinois, Technical Report UIUCDCS-R-93-1815, June 1993. (Others are available also) bugs: [email protected] restriction: redistribution is restricted announcements: where new releases are announced contact: Andrew Chien [email protected] updated: 1995/05/07 Version 3.0 lref: C++ language: OCCAM 2 (A parallel, concurrent, distributed language) package: D7202-oc / TDS version: ? parts: compiler & full toolset system author: INMOS Ltd. location: ftp://unix.hensa.ac.uk/pub/parallel/occam/compilers/inmos http://www.hensa.ac.uk/parallel/occam/compilers/inmos/index.html description: An old version of the INMOS OCCAM compiler & toolset, made freely avaiable by INMOS Ltd. OCCAM is a language for designed to express concurrent algorithms and their implementation on a network of processing components. conformance: The original implementation of OCCAM 2 reference: "OCCAM 2 reference manual", INMOS ltd, Prentice-Hall International, ISBN 0-13-629312-3 features: produces object code for the INMOS transputer (but see KROC entry) restriction: Research purposes only. NO support will be provided by INMOS Ltd. requires: C & occam compiler (Sun4, PC, & Transputer binaries available) ports: Sun3, Sun4, PC, INMOS transputer. (Most UNIXes?) portability: produces object code for the INMOS transputer (but see KROC entry) status: Not developed, UNSUPPORTED. discussion: comp.sys.transputer contact: Dave Beckett <[email protected]> updated: 1-Mar-94 language: OCCAM 2 (A parallel, concurrent, distributed language) package: KROC (Kent Retargetable Occam Compiler) version: 0.1 Beta parts: compiler, run-time kernel, documentation author: David Wood, Professor Peter Welch location: ftp://unix.hensa.ac.uk/pub/parallel/occam/projects/occam-for-all/kroc http://www.hensa.ac.uk/parallel/occam/projects/occam-for-all/kroc/ description: KROC is a portable OCCAM compiler system that enables OCCAM to run on non-transputer platforms (initially SunOS/SPARC(TM) workstations). KROC works by translating code produced by an INMOS OCCAM Toolset compiler into the native assembler for the target architecture and linking in a small (< 2K bytes) kernel that provides the process scheduling and message-passing functionality of the transputer micro-code. Therefore, you will need an OCCAM Toolset compiler (see requires:). features: -initialy available as Sun4 (SunOS) binary. +A source release will follow. reference: "OCCAM 2 reference manual", INMOS ltd, Prentice-Hall International, ISBN 0-13-629312-3 "Transputer Instruction Set - A Compiler Writers Guide", INMOS Ltd, Prentice-Hall, ISBN 0-13-929100-8 restriction: ? requires: INMOS OCCAM compiler D7202 from: ftp://unix.hensa.ac.uk/pub/parallel/occam/compilers/inmos/oc ports: Sun4 (DEC Alpha and Motorola PowerPC to follow) portability: Sparc processor only at present status: actively developed, supported discussion: comp.sys.transputer, <[email protected]> contact: Occam For All Team <[email protected]> updated: 4-May-1995 language: OCCAM 2 (A parallel, concurrent, distributed language) package: SPOC (Southampton Portable Occam Compiler) version: 1.1 parts: compiler(->C), run-time system, documentation, tools, examples author: Denis Nicole <[email protected]>, Sean Wykes <[email protected]>, Mark Debbage <[email protected]>, Mark Hill <[email protected]> location: ftp://ftp.ecs.soton.ac.uk/pub/occam/spoc1.1 ftp://unix.hensa.ac.uk/pub/parallel/occam/compilers/spoc http://www.hensa.ac.uk/parallel/occam/compilers/spoc/index.html description: supports the OCCAM 2 programming language. conformance: Full implementation of OCCAM 2 reference: "OCCAM 2 reference manual", INMOS ltd, Prentice-Hall International, ISBN 0-13-629312-3 features: The system generates ANSI-C code, implementing efficient portable concurrency running on a single target processor. Supports cross-linking with NAG Fortran-90 compiler. restriction: GPL'ed requires: C compiler, gmd compiler tools (available with compiler sources) (Sun4 binaries available) ports: Sun3, Sun4 portability: ? Should work on most UNIXes status: actively developed, supported discussion: comp.sys.transputer contact: Dr Denis A Nicole <[email protected]> updated: 1-March-1994 language: PCN package: PCN version: 2.0 parts: compiler?, runtime, linker, libraries, tools, debugger, profiler, tracer author: Ian Foster <[email protected]>, Steve Tuecke <[email protected]>, and others location: ftp://info.mcs.anl.gov/pub/pcn/pcn_v2.0.tar.Z description: PCN is a parallel programming system designed to improve the productivity of scientists and engineers using parallel computers. It provides a simple language for specifying concurrent algorithms, interfaces to Fortran and C, a portable toolkit that allows applications to be developed on a workstation or small parallel computer and run unchanged on supercomputers, and integrated debugging and performance analysis tools. PCN was developed at Argonne National Laboratory and the California Institute of Technology. It has been used to develop a wide variety of applications, in areas such as climate modeling, fluid dynamics, computational biology, chemistry, and circuit simulation. ports: (workstation nets): Sun4, NeXT, RS/6000, SGI (multicomputers): iPSC/860, Touchstone DELTA (shared memory multiprocessors): Symmetry/Dynix contact: <[email protected]> updated: 1993/02/12 language: LOOPN package: LOOPN version: ? parts: compiler?, simulator author: ? location: ftp://ftp.utas.edu.au/departments/computer_sci*/loopn.tar.Z description: I wish to announce the availability of a compiler, simulator and associated source control for an object-oriented petri net language called LOOPN. In LOOPN, a petri net is an extension of coloured timed petri nets. The extension means firstly that token types are classes. In other words, they consist of both data fields and functions, they can be declared by inheriting from other token types, and they can be used polymorphically. The object-oriented extensions also mean that module or subnet types are classes. LOOPN has been developed over a period of about 5 years at the University of Tasmania, where it has been used in teaching computer simulation and the modelling of network protocols. A petri net is a directed, bipartite graph; nodes are either places (represented by circles) or transitions (represented by rectangles). A net is marked by placing tokens on places. When all the places pointing to a transition (the input places) have a token, the net may be fired by removing a token from each input place and adding a token to each place pointed to by the transition (the output places). Petri nets are used to model concurrent systems, particularly in the network protocol area. contact: Charles Lakos <[email protected]> updated: 1992/12/20 language: Simula package: Lund Simula version: 4.07 parts: ? author: ? location: ftp://rascal.ics.utexas.edu/misc/mac/programming/+_Simula/* description: ? contact: Lund Software House AB / Box 7056 / S-22007 Lund, Sweden updated: 1992/05/22 language: SR (Synchronizing Resources) package: sr version: 2.0 parts: ?, documentation, tests author: ? location: ftp://cs.arizona.edu/sr/sr.tar.Z description: SR is a language for writing concurrent programs. The main language constructs are resources and operations. Resources encapsulate processes and variables they share; operations provide the primary mechanism for process interaction. SR provides a novel integration of the mechanisms for invoking and servicing operations. Consequently, all of local and remote procedure call, rendezvous, message passing, dynamic process creation, multicast, and semaphores are supported. reference: "The SR Programming Language: Concurrency in Practice", by Gregory R. Andrews and Ronald A. Olsson, Benjamin/Cummings Publishing Company, 1993, ISBN 0-8053-0088-0 ports: Sun-4, Sun-3, Decstation, SGI Iris, HP PA, HP 9000/300, NeXT, Sequent Symmetry, DG AViiON, RS/6000, Multimax, Apollo, and others. discussion: [email protected] contact: [email protected] updated: 1992/09/01 language: UNITY package: MasPar Unity version: 1.0 parts: translator(UNITY->MPL), documentation author: Martin Huber, University of Karlsruhe, Germany location: ftp://SanFrancisco.ira.uka.de/pub/maspar/maspar_unity* description: ? contact: Lutz Prechelt <[email protected]> updated: ? language: UNITY package: HOL-UNITY version: 2.1 parts: verification tool author: ? location: ? description: ? contact: Flemming Andersen <[email protected]> ? updated: ? Forth family languages ------------------------------------------------------------------------------- category: Forth family languages description: These are the stack-based postfix languages, usually interpreted, descended from the FORTH language originally developed for telescope control. lref: Postscript iref: (mc6809) 6809, E-Forth language: Forth package: TILE Forth version: 2.1 parts: interpreter author: Mikael Patel <[email protected]> location: ftp tile-forth-2.1.tar.Z from a GNU archive site description: Forth interpreter in C; many Forth libraries conformance: Forth83 restriction: shareware/GPL ports: unix updated: 1991/11/13 language: Forth package: cforth version: ? parts: interpreter author: ? location: comp.sources.unix archive volume 1 description: ? updated: ? language: Forth package: pfe (Portable Forth Environment) version: 0.9.14 parts: ? author: Dirk Zoller <whereabouts-unknown> location: ftp://ftp.taygeta.com/pub/Forth/Compilers/native/unix/ description: A Forth development system that tries to be correct, complete, portable, usable and simple. It doesn't try too hard to be fast. conformance: all dpANS word sets ports: Runs on several Unix-like operating systems and on MS-DOS and OS/2. Makefiles readily provided for AIX, FreeBSD, Linux, HP-UX, Ultrix, DOS and OS/2. DOS and OS/2 executables included (with EMX DOS extender). Written in ANSI-C using Posix extensions and termcap. Compiles with GNU-C and several OS-specific compilers. restriction: Freely Redistributable portability: high updated: 1996/05/02 language: Forth package: gforth version: 0.2.1 author: Anton Ertl location: ftp://prep.ai.mit.edu/pub/gnu/gforth-0.2.1.tar.gz and http://www.complang.tuwien.ac.at/forth/gforth/gforth-0.2.1.tar.gz description: Gforth is a fast and portable implementation of the ANS Forth language. It works nicely with the Emacs editor, offers some nice features such as input completion and history and a powerful locals facility, and it even has (the beginnings of) a manual. Gforth employs traditional implementation techniques. Gforth is distributed under the GNU General Public license (see COPYING). Gforth runs under Unix and DOS and should not be hard to port to other systems supported by GCC. This version has been tested successfully on the following platforms: i486-unknown-linuxaout, i586-unknown-linux, alpha-dec-osf3.2, mips-dec-ultrix4.3, sparc-sun-sunos4.1.4, sparc-unknown-netbsd1.2 (configured with ac_cv_sizeof_long_long=0, see INSTALL), hppa1.1-hp-hpux9.05, hppa1.1-hp-hpux10.20, Windows 95 using DJGPP 2.0, and OS/2 3.0 using EMX 0.9c, the latter with manual help to finish compilation. updated: 1997/01/13 language: Forth package: F68K version: ? parts: ? author: ? location: ftp://archive.umich.edu/atari/Languages/f68k.* description: a portable Forth system for Motorola 68k computers ports: Atari ST/TT, Amiga, Sinclair QL and OS9 portability: very high for 68000 based systems contact: Joerg Plewe <[email protected]> updated: 1992/12/14 language: Forth package: 51forth version: ? parts: ? author: Scott Gehmlich location: ftp giovanni/51forth.zip from [130.123.96.9] ? description: source and documentation for a 8051 subroutine- threaded forth contact: ? updated: 1993/04/03 language: Forth package: M4th version: ? parts: interpreter, kernel, editor, application (8086 assembler), hypertext-based documentation, decompiler author: Nils M. Holm <[email protected]> location: ftp://ftp.uni-stuttgart.de/pub/systems/pc/lang/forth/m4th10.zip description: A small Forth implementation ports: MSDOS. updated: 1994/06/28 language: Forth package: ThisForth version: 1.0.0.d author: Will Baden <[email protected]> location: ftp://ftp.taygeta.com/pub/Forth/Compilers/native/unix/ description: This Forth was written to try out Standard (ANS) Forth, to integrate macro processing with Forth, to be able to use Forth in a conventional environment and to have Forth as an interpretive shell and scripting language for applications. features: + Integrated macro processing + Input/output re-assignment + Portable implementation + Easy extensibility + Pinhole optimization requires: M4 and an ANSI C compiler. ports: Macintosh, PowerMac, MIPS, SUN, SGI, 32-bit DOS updated: 1995/02 language: Mops package: Mops version: 3.2 parts: compiler, assembler, documentation, editor author: Michael Hore <[email protected]> location: ftp://ftp.taygeta.com/pub/Forth/Compilers/native/mac/Mops/ ftp://astro.uchicago.edu/pub/MAC/Yerk description: Like Yerk, Mops is descended from the ex-commercial object-oriented language Neon. Mops features an optimizing native-code compiler; it is much faster than Yerk, but less compatible with Neon. Mops includes extensions such as multiple inheritance. conformance: Includes a prologue for ANSI Forth. features: + classes for all the standard Mac interface items + can produce double-clickable applications + extremely fast edit-compile cycle + includes a PowerPC assembler ports: Macintosh updated: 1998/07 language: Kevo (Forth-like) package: kevo version: 0.9b6 parts: interpreter, demo programs, user's guide, papers author: Antero Taivalsaari <[email protected]> location: ftp://cs.uta.fi/pub/kevo/* description: Kevo is a prototype-based object-oriented language for Macintosh Kevo features a unique prototype-based object model (which is based neither on classes nor Self-style delegation), multitasking (both preemptive and cooperative), dynamic memory management, and an icon-based object browser and editor modeled loosely after Mac Finder. Kevo has been built around a portable threaded code interpreter, and is syntactically a close derivative of Forth. ports: Macintosh contact: [email protected] updated: 1993/05/18 language: Yerk package: Yerk version: 3.68 parts: interpreter, assembler, documentation, decompiler author: Bob Loewenstein location: ftp://astro.uchicago.edu/pub/astro/MAC/Yerk description: Yerk is an object oriented derivative of Forth. It was originally known as Neon, developed and sold as a product by Kriya Systems from 1985 to 1989. The language features many system classes and objects for mac interfacing: windows, controls, events, files, arrays, ordered-columns, menus,hierarchical and popup menus, handles, strings, mouse,quickdraw, modal dialogs, offscreen bitmaps, vbl, time manager, etc. features: + defaulted early binding, with ability to late bind in almost any circumstance + objects may be instantiated on the heap (dynamically) + inheritance (not multiple) + floating point (SANE) + module (overlay) creation that are loaded only when necessary + modules may be purged from application heap memory. updated: 1996/03/19 compiler generators and related tools ------------------------------------------------------------------------------- category: compiler generators and related tools description: Yacc, and the rest of its family language: ABC package: Grammar analysis tools version: 1 parts: analysis tools, samples, documentation author: Steven Pemberton <[email protected]> location: ftp://ftp.cwi.nl/pub/abc/examples/grammar/* or http://www.cwi.nl/~steven/abc/examples/grammar description: Grammar analysis program written in ABC (q.v.) for answering such questions as "what are the start symbols of all rules", "what symbols can follow this symbol", "which rules are left recursive", and so on. Includes a grammar of ISO Pascal. reference: Ftp://archive includes an article explaining the package. ports: unix, MSDOS, atari, mac contact: [email protected] updated: 1993/07/05 language: ? attribute grammar ? package: Alpha version: pre-release parts: semantic-analysis generator?, documentation(german) author: Andreas Koschinsky <[email protected]> location: from author description: I have written a compiler generator. The generator is called Alpha and uses attribute grammars as specification calculus. Alpha is the result of a thesis at Technische Universitaet Berlin. I am looking for someone who would like to test and use Alpha. Alpha generates compilers from a compiler specification. This specification describes a compiler in terminology of attribute grammars. Parser and Scanner are generated by means of Bison and Flex. Alpha generates an ASE-evaluator (Jazayeri and Walter). The documentation is in german since it is a thesis at a german university. updated: 1993/02/16 language: attribute-grammar extension of Yacc and Lex package: Ox version: G1.01 parts: Yacc/Lex/C preprocessor, tutorial, reference manual, man page, examples, Ox-ready parsers (C, C++, Pascal, Ada, Fortran) author: Kurt Bischoff <[email protected]> location: ftp://ftp.cs.iastate.edu/pub/ox/* description: Ox generalizes the function of Yacc in the way that attribute grammars generalize context-free grammars. Ordinary Yacc and Lex specifications may be augmented with definitions of synthesized and inherited attributes written in C syntax. Ox checks these specifications for consistency and completeness, and generates from them a program that builds and decorates attributed parse trees. Ox accepts a most general class of attribute grammars. The user may specify postdecoration traversals for easy ordering of side effects such as code generation. Ox handles the tedious and error-prone details of writing code for parse-tree management, so its use eases problems of security and maintainability associated with that aspect of translator development. Ox is a preprocessor, and extends the syntax and semantics of Yacc, Lex, and C. reference: Most compiler textbooks have descriptions of attribute grammars. features: LALR(1), semantic-analyzer generation. bugs: none known. Report bugs to [email protected]. restriction: Use of Ox is free. Ox-generated code is the property of the Ox user. ports: Unix contact: [email protected] updated: 1993/11/14 language: attribute grammar package: Rie version: 1.0.6 parts: compiler generator, attribute evaluator generator author: Masataka Sassa, Kazuhiro Kuroishi, Teruhisa Hirai and Yoshiki Ohshima location: ftp://ftp.is.titech.ac.jp/pub/Rie/* description: Rie is a yet another compiler generator which is based on a one-pass attribute grammar called ECLR-attributed grammar. ECLR-attributed grammar is a superset of LR-attributed grammar, and the generated compiler can evaluate both inherited and synthesized attributes in parallel with LR parsing without creating a parse tree. The style of the Rie description is derived from Yacc, but the semantic section of a production may contain attribution rules. Because the specification is based on attribute grammar, user can integrate syntax and semantics in one description. Rie also accepts shorthand notations, context conditions and `local' attributes, which are useful to write actual compilers. The generated compiler is only 1.8 times slower than a handwritten compiler. Rie generates an attribute evaluator in C source. The package includes sample descriptions of PL/0 compiler and of a sample of simple semantic analyzer, and documentation. reference: Sassa, M., Ishizuka, H., and Nakata, I.: Rie, a Compiler Generator Based on a One-Pass Attribute Grammar, Res. Rep. C-107, Dept. of Inf. Sci., Tokyo Institute of Technology (Now, only a printed version is available. Contact [email protected]. Electric version will be available from ftp://ftp.is.titech.ac.jp/pub/Rie/Papers/* .) bugs: Bug reports are welcome to [email protected]. restriction: Rie is implemented by modifying Bison, so Rie must be also covered by GNU General Public License version 2 and Bison's restriction. requires: C compiler ports: UNIX, DOS, etc. (same as bison) and Sharp X68000 status: We hope that it is stable contact: [email protected]> updated: 1995/09/20 language: BNF (Extended, actually a regular right part grammar) package: Gray version: 4 parts: parser generator, documentation, examples author: Martin Anton Ertl <[email protected]> how to get: ftp://server.complang.tuwien.ac.at/pub/forth/gray4.tar.gz ftp://server.complang.tuwien.ac.at/pub/forth/gray4.zip description: Gray is a parser generator written in Forth. It takes grammars in an extended BNF and produces executable Forth code for recursive descent parsers. restrictions: Copyleft requires: ANS Forth conformance: ANS Forth with some environmental dependences (see README) status: supported ports: Several ANS Forth Systems; mail author for old versions running on Tile. updated: 1994/08/08 language: BNF (??) package: ZUSE version: ? parts: parser generator(?) author: Arthur Pyster location: ? Univ Calif at Santa Barbara ? description: ll(1) paser generator requires: Pascal updated: 1986/09/23 language: BNF (??) package: FMQ version: ? parts: paser generator w/error corrector generator author: Jon Mauney location: ftp://csczar.ncsu.edu description: ? status: ? contact: ? updated: 1990/03/31 language: BNF (??) package: ATS (Attribute Translation System) version: ? parts: ? author: ? University of Saskatchewan ? location: ? description: generates table-driven LL(1) parsers with full insert-only error recovery. It also handles full left-attribute semantic handling, which is a dream compared to using YACC's parser actions. status: ? contact: ? (suggested: Dave Bocking <[email protected]>) updated: 1988/11/29 language: BNF (Extended) package: PCCTS (Purdue Compiler-Construction Tool Set) version: 1.33 parts: scanner generator, parser generator (pred-LL(k)), documentation, tutorial author: Terence J. Parr <[email protected]>, Will E. Cohen <[email protected]>, Henry G. Dietz <[email protected]>, Russell W. Quong <[email protected]> location: ftp://ftp.parr-research.com/pub/pccts/ UK: ftp://src.doc.ic.ac.uk/computing/programming/languages/tools/pccts/ description: PCCTS is similar to a highly integrated version of YACC and LEX; where ANTLR (ANother Tool for Language Recognition) corresponds to YACC and DLG (DFA-based Lexical analyzer Generator) functions like LEX. PCCTS grammars contain specifications for lexical and syntactic analysis with selective backtracking ("infinite lookahead"), semantic predicates, intermediate-form construction and sophisticated parser exception handling. Rules may employ Extended BNF (EBNF) grammar constructs and may define parameters, return values and local variables. Languages described in PCCTS are recognized via predicated-LL(k) parsers constructed in pure, human-readable, C/C++ code; the C++ programming interface is very good. The documentation is complete, but distributed over an original manual plus multiple release notes. A book is in the works and should be available 1Q 1996. A recently-developed PCCTS-based C++ parser is available at the ftp://site; it is an *initial* release and was derived from the grammar built by NeXT, Inc.. restriction: The tool is totally public domain--it has no legal restrictions on its use or incorporation into commercial applications. ports: Unix, DOS, Windows, OS/2, Macintosh, NeXT portability: very high discussion: comp.compilers.tools.pccts contact: Terence J. Parr <[email protected]> updated: 1995/10/05 language: Antlr 1.33 (PCCTS Development Tools) package: USQAGMS version: 1998.02.02 parts: Grammar merger, documentation, additional small tools including Word Perfect grammar extraction macro. author: Ron House <[email protected]> location: httpd://www.sci.usq.edu.au/staff/house/usqagms/usqagms-manual.html description: USQAGMS is a grammar merger that combines actions from an old/obsolescent grammar with rules from an updated grammar. It is intended to assist language designers who are writing a compiler in parallel with making changes to the grammar. conformance: Processes Antlr 1.33 (PCCTS Development Tools) grammars. bugs: Ron House <[email protected]> restriction: Setting up for your language is a bit fiddly, but it saves heaps of work thereafter. requires: Antlr 1.33 (PCCTS Development Tools) The grammar extraction macro requires Word Perfect (not an essential component). ports: Linux. portability: Should work on any Unix. status: Not officially supported, but I want to fix any bugs you might find. announcements: On web site and comp.compilers.tools.pccts. contact: Ron House <[email protected]> updated: 1998/02/02 language: BNF (very extended), yacc package: PRE-CC Xtended version: 2.30 parts: library, parser generator (LL(oo)), translator(yacc->) author: Peter Breuer location: ftp://ftp.comlab.ox.ac.uk/pub/Programs/preccx.tar.Z (Unix) ftp://ftp.comlab.ox.ac.uk/pub/Programs/preccx.msdos (MS-DOS) ftp://ftp.comlab.ox.ac.uk/pub/Documents/techpapers/Jonathan.Bowen/preccx-uug.ps.Z (more recent versions available by subscription) URL: http://www.comlab.ox.ac.uk/archive/redo/precc.html description: PRECCX is an infinite-lookahead compiler compiler for context dependent grammars. The generated code is ANSI C. Specification scripts are in very EBNF with inherited and synthetic attributes allowed. Scripts can be compiled in separate modules, and linked together later. Meta-production rules allowed. The technology is essentially LL(oo) with optimizations. A converter for yacc scripts is available. reference: "The PRECC Compiler-Compiler" by P.T. Breuer and J.P. Bowen. In E. Davies and A. Findlay (eds.), Proc. UKUUG/SUKUG Joint New Year 1993 Conference, St. Cross Centre, Oxford, UK, 6-8 January 1993, ISBN 1 873611 06 4 (UKUUG), 0 9520700 0 6 (SUKUG) UKUUG/SUKUG Secretariat, Owles Hall, Buntingford, Herts SG9 9PL, UK, pp 167-182, 1993. "A PREttier Compiler-Compiler: Generating Higher Order Parsers in C" P.T. Breuer and J.P. Bowen. Oxford University Computing Laboratory Technical Report PRG-TR-20-92, 25pp, November 1992. Accepted by Software - Practice and Experience, 1994. ftp://ftp.comlab.ox.ac.uk/pub/Documents/techreports/TR-20-92.ps.Z ports: unix, MS-DOS contact: Peter Breuer <[email protected]>, Jonathan Bowen <[email protected]> updated: 1994/06/02 language: BNF (??) package: LLGen version: ? parts: parser generator author: ? Fischer and LeBlanc ? location: ? ftp://csczar.ncsu.edu ? description: LL(1) parser generator conformance: subset of FMQ reference: "Crafting A Compiler", by Fischer and LeBlanc status: ? contact: ? updated: 1990/03/31 language: BNF package: wacco version: 1.1, July 91 parts: parser generator author: Parag Patel ([email protected], [email protected]) location: comp.sources.misc volume ? description: Wacco is a recursive descent LL(1) parser generator that generates C++ code. Its syntax is similar to YACC with a lot of sugaring. It can also do attribute-driven parsing. The source is bootstrapped wacco code. ports: HP-UX s300 and s800, Sparc, and 4.3BSD (on HP) portability: Host machine must be 32 bits. contact: ? updated: ? language: BNF (Extended), BNF (yacc) package: GMD Toolbox for Compiler Construction (aka Cocktail) version: 9209 parts: lalr: parser generator (LALR(1) -> C, Modula-2), ell : parser generator (LL(1) -> C, Modula-2), rex : scanner generator (-> C, Modula-2), bnf : translator (Extended BNF -> BNF), y2l : translator (BNF (yacc) -> Extended BNF), ast : abstract syntax tree generator, ag : attribute-evaluator generator, puma: transformation of abstract syntax tree using pattern-matching documentation, examples author: Josef Grosch <[email protected]> and others location: ftp://ftp.gmd.de/gmd/cocktail ftp://ftp.rus.uni-stuttgart.de/pub/unix/programming/compilerbau ftp://ftp.th-darmstadt.de/pub/programming/languages/compiler-compiler/cocktail ftp://src.doc.ic.ac.uk/languages/tools/gmd ftp://gatekeeper.dec.com/.3/plan/gmd OS/2: ftp.eb.ele.tue.nl/pub/src/cocktail/dos-os2.zoo description: A huge set of compiler building tools. requires: (MS-DOS and MS-Windows only) DJ Delorie's DOS extender (go32) (OS/2 only) emx programming environment for OS/2 ports: Unix, Linux, MS-DOS, MS-Windows, OS/2 portability: very high status: version 9209 is unsupported, Cocktail is actively developed, versions 9401 and higher are commercial discussion: subscribe to Cocktail using [email protected] support: Josef Grosch <[email protected]> contact: Josef Grosch <[email protected]> OS/2: Willem Jan Withagen <[email protected]> updated: 1992/10/01 language: BNF (??) package: T-gen version: 2.1 parts: parser generator, documentation, ? author: Justin Graver <[email protected]> location: ftp://st.cs.uiuc.edu/pub/st80_r41/T-gen2.1/* description: T-gen is a general-purpose object-oriented tool for the automatic generation of string-to-object translators. It is written in Smalltalk and lives in the Smalltalk programming environment. T-gen supports the generation of both top-down (LL) and bottom-up (LR) parsers, which will automatically generate derivation trees, abstract syntax trees, or arbitrary Smalltalk objects. The simple specification syntax and graphical user interface are intended to enhance the learning, comprehension, and usefulness of T-gen. requires: Smalltalk-80 ports: ParcPlace Objectworks/Smalltalk 4.0 & 4.1 updated: 1992/10/18 language: BNF package: Eli version: 4.1.0 parts: scanner generator (regular expressions->C, C++), parser generator (LALR->C, C++), attribute evaluator generator (LIDO->C, C++), definition table generator (PDL->C, C++), tree pattern-matcher generator (OIL->C, C++), pattern-based text generator (PTG->C, C++), unparser generator (Idem), command-line processing generator (CLP->C, C++), literate programming (FunnelWeb), integrated high-level debugger (Noosa), library with solutions for common tasks (ModLib), online and printable documentation author: William Waite <[email protected]> Basim Kadhim <[email protected]> Uwe Kastens <[email protected]> Matthias Jung <[email protected]> Peter Pfahler <[email protected]> Anthony Sloane <[email protected]> location: http://www.cs.colorado.edu/~eliuser http://www.uni-paderborn.de/project-hp/eli.html http://www.cs.jcu.edu.au/~tony/eli.html description: Eli is a fully integrated environment for the automatic generation of processors of structured text. It transparently utilises off-the-shelf tools and libraries with specialized language processors to generate complete processors quickly and reliably. It simplifies the development of new special-purpose languages, implementation of existing languages on new hardware and extension of the constructs and features of existing languages. bugs: <[email protected]> restriction: Eli is under the Free Software Foundation's General Public License. Code generated by Eli has no restrictions except that the dynamic memory allocation module (obstack) is covered by FSF's Library General Public License. requires: High-level debugging requires Tcl/Tk (at least versions 7.6/4.2). ports: SunOS (4.1.2, 5.4, 5.5), OSF1 (V3.0, V4.0), Linux (2.0.30 ELF), IRIX (5.3, 6.3), HP-UX (A.09.05) portability: Portable to most Unix systems using FSF's autoconf support. status: active, supported discussion: <[email protected]> (join at <[email protected]>) help: <[email protected]> announcements: comp.compilers, <[email protected]> contact: <[email protected]> <[email protected]> <[email protected]> updated: 1997/10/6 language: BNF package: tom (demo for Tomita Parsing algorithm) version: 1 parts: parser generator, parser interpreter, examples, documentation author: Mark Hopkins <[email protected]> location: iecc.com in pub/files/tomita.tar.gz alt.sources archive from October 4, 1993. description: An implementation of the Tomita parsing algorithm using LR(0) tables and dynamic programming. reference: Kluwer '91, _Generalized LR Parsing_, Tomita ed., 0-7923-9201-9 "The Tomita Parsing Algorithm ...", comp.compilers May 20, 1994 features: Cyclic context free grammars are processed. portability: System independent updated: 1994/10/03 language: BNF (yacc) package: NewYacc version: 1.0 parts: parser generator, documenation author: Jack Callahan <[email protected]> location: ftp://flubber.cs.umd.edu/src/newyacc.1.0.*.Z description: [someone want to fill it in? --ed] reference: see Dec 89 CACM for a brief overview of NewYacc. updated: 1992/02/10 language: BNF (yacc) package: bison version: 1.22 parts: parser generator, documentation author: Robert Corbett and Richard Stallman location: ftp bison-1.16.tar.Z from a GNU archive site description: ? bugs: [email protected] restriction: !! will apply the GNU General Public License to *your* code !! ports: unix, atari, ? updated: 1993/09/14 language: BNF (yacc), Lex package: Bison++ and Flex++ version: 1.21-8 (bison), 2.3.8-7 (flex), 5 (flex++bison++misc) parts: translator, documentation, postscript, examples, DOS binary author: Alain Coetmeur <[email protected]> location: cse.unl.edu in ~ftp/pub/nandy/c++/tools/LATEST/* Europe: mirrored on ftp.th-darmstadt.de description: A retargeting of bison-1 and flex 2.3 to C++, able to generate classes. As with Bison and Flex, these two tools are independent but designed for mutual compatibility. The version numbering has been changed for consistency with Flex and Bison, so versions of flex3.0.x and bison2.x of this package are are actually earlier versions, not later. Examples are provided to help in getting started. conformance: Mostly compatible with flex2.3 and bison 1 in C, apart from the ability to generate classes. features: Almost all symbol names can be redefined, parsers can be shared in C and C++ in the same headers... very extensible... flex++ support IOSTREAM and STDIO in C++. bugs: Contact [email protected] (current author and maintainer). restriction: GNU License for bison++. Same as flex for flex++. ports: SUNOS4, DOS, and same ports as Flex/Bison, Windows NT (tested) portability: Larger memory model required on DOS (DOS binary supplied). status: active, supported, might not support flex 2.4 discussion: [email protected], news: comp.compiler, or comp.lang.c++ help: [email protected], news: comp.compiler, or comp.lang.c++ for substantial problems. support: see help, no commercial support. (volunteer ?) announcements: mail list locally maintained by [email protected], news: comp.compiler comp.lang.c++ updated: 1994/02/07 lref: C lref: C++ lref: Lex lref: yacc language: BNF (yacc) package: bison-A2.3 version: 2.3 (corresponds to gnu bison 1.22) parts: parser generator, C-parser, C++parser, documentation author: Fred Hansen <[email protected]> location: ftp://ftp.andrew.cmu.edu/pub/AUIS/bison/bison-A2.2.tar.gz also in contrib/andrew on the XV11R6 distribution in directories overhead/bison, overhead/mkparser (but not the C++ version of the parser) description: This is the standard gnu bison with a number of improvments: license-free parsers for C and C++, only one external symbol for each grammar, permits multiple grammars per application, better error reports on the grammar. conformance: grammars are the same as bison and yacc; but run-time errors are handled differently, so semantic rules must be changed features: tokens in the grammar can be expressed as ">=" instead of GE bugs: send bugs to [email protected] restriction: none (unless you use the native gnu-bison parser) ports: has been tested on most Unix platforms portability: generation of names for temp files is system dependent. discussion: [email protected] (mirrored to comp.soft-sys.andrew) support: supported by the Andrew Consortium contributions: your organization is invited to join the Andrew Consortium [email protected] updated: 1994/05/09 language: BNF (Yacc like description languages) package: Compiler Construction Tool Set (aka COCOM or Russian Armoury) version: 0.9 parts: +Ammunition: reusable packages +Sprut : internal representation description translator (C, C++) +Nona : code selector description translator (C, C++) +Oka : pipeline hazards description translator (C,C++) and basic block scheduler (C, C++) +Shilka : keywords description translator (C, C++) for for fast recognizing keywords +Msta : syntax description translator (now only C) for description of parsers and scanners (LR(k), LALR(k)). documentation, examples author: Vladimir N. Makarov <[email protected]> location: http://www.geocities.com/SiliconValley/Lab/4557 description: A set of compiler building tools. ports: Unix, Linux portability: very high (GNU configure) status: COCOM is actively developed support: Vladimir N. Makarov <[email protected]> contact: Vladimir N. Makarov <[email protected]> updated: 1998/01/05 language: BNF (yacc) package: ? jaccl ? version: ? parts: parser generator author: Dave Jones <[email protected]> location: ? description: a LR(1) parser generator updated: 1989/09/08 language: BNF (yacc) package: byacc (Berkeley Yacc) version: 1.9 parts: parser generator author: Robert Corbett <[email protected]> location: ftp://vangogh.CS.Berkeley.EDU/pub/byacc.tar.1.9.Z description: probably the best yacc variant around. Previously known as Zoo, and before that, as Zeus. updated: 1993/02/22 language: BNF (yacc) package: yacc version: 1.9.1 parts: parser_generator author: Todd Dukes ([email protected]) location: sunsite.unc.edu/pub/Linux/devel/lang/compiler_tools description: Yacc is a parser generator. It reads an input file that describes a grammar and generates C code that implements that grammar. It is designed to work well with 'lex' compatible lexers. Flex is a good program for generating these lexers. This version has improved support for C++. Yacc 1.9 generated C code that caused warnings and errors when compiled with C++. Minor changes were made in the declarations in the skeleton file to eliminate these warnings and errors. updated: ? language: BNF (yacc), Lex package: Lex/Yacc for Turbo Pascal uploaded version: ? parts: parser generator, scanner generator, documentation? author: ? location: ftp://iecc.com/pub/file/lyprg.zip. description: Lex and Yacc retargeted to Pascal. contact: ? [email protected] (David Poole) updated: 1993/07/02 language: BNF (yacc), Ada package: aflex-ayacc version: 1.2a parts: parser generator (Ada), scanner generator (Ada) author: IRUS (Irvine Research Unit in Software) location: ftp://liege.ics.uci.edu/pub/irus/aflex-ayacc_1.2a.tar.Z description: Lex and Yacc equivalents that produce Ada output announcements: [email protected] contact: [email protected] updated: 1993/01/06 language: BNF (yacc), Perl package: perl-byacc version: 1.8.2 parts: parser-generator(perl) author: Rick Ohnemus <[email protected]> location: ftp://ftp.sterling.com/local/perl-byacc.tar.Z description: A modified version of byacc that generates perl code. Has '-p' switch so multiple parsers can be used in one program (C or perl). portability: Should work on most (?) Unix systems. Also works with SAS/C 6.x on AMIGAs. updated: 1993/01/24 language: BNF (yacc), Standard ML package: New SML-Yacc and SML-Lex version: ?? parts: ?? author: Andrew Appel <[email protected]> location: princeton.edu/pub/ml, files mlyacc94.tar.Z, lexgen94.tar.Z. description: ?? updated: 1994/05/23 language: BNF (variant), Icon package: Ibpag2 (Icon-Based Parser Generation System 2) version: 1.2 parts: parser generator (Icon, SLR(1)) author: Richard L. Goerwitz <[email protected]> location: comp.sources.misc volume 44 description: Ibpag2 is a parser generator for Icon. It does most of what you would expect. Latest version can handle both SLR(1) and even GLR (Tomita) grammars. ports: unix portability: ? (Unix dependencies?) updated: 1994/09/25 language: BNF ?, Gofer package: Ratatosk (?) version: ? parts: parser generatr (Gofer) author: Torben AEgidius Mogensen <[email protected]> location: ftp://ftp.diku.dk/pub/diku/dists/Ratatosk.tar.Z description: Ratatosk is a SLR parser generator in Gofer (a Haskell variant) that generates purely functional parsers (also in Gofer). Even though the sematic value of a production is a function of the attributes of its right-hand side (and thus apparently purely synthesized), inherited attributes are easily simulated by using higher order functions. ports: ? updated: ? language: BNF package: lalr.ss - An LALR(1) parser generator version: 0.9 parts: parser generator (->Scheme) author: Mark Johnson <[email protected]> location: ftp new/lalr.shar from the Scheme Repository description: A LALR(1) parser generator in and for Scheme. requires: Scheme updated: 1993/05/24 language: BURS ? package: Iburg version: ? parts: parser generator? author: Christopher W. Fraser <[email protected]>, David R. Hanson <[email protected]>, Todd A. Proebsting <[email protected]> location: ftp://ftp.cs.princeton.edu/pub/iburg.tar.Z description: Iburg is a program that generates a fast tree parser. It is compatible with Burg. Both programs accept a cost-augmented tree grammar and emit a C program that discovers an optimal parse of trees in the language described by the grammar. They have been used to construct fast optimal instruction selectors for use in code generation. Burg uses BURS; Iburg's matchers do dynamic programming at compile time. updated: 1993/02/10 language: BNF variant, Python package: kwParsing ? version: ? parts: parser generator author: Aaron Watters <[email protected]> location: ftp://ftp.markv.com/pub/python/kwParsing.* description: A parser generator written in Python for Python. This package may be appropriate for experimental translators, code generators, interpreters, or compilers; for instructinal purposes; among other possibility. The documentation gives a brief introduction to the conventions and basic ideas of parsing. updated: 1994/09/24 language: Candle, IDL (Interface Description Language) package: Scorpion System version: 6.0 parts: software development environment for developing software development environments, documentation author: University of Arizona location: ftp://cs.arizona.edu/scorpion/* description: 20 tools that can be used to construct specialized programming environments. The Scorpion Project was started by Prof. Richard Snodgrass as an outgrowth of the SoftLab Project (which pro- duced the IDL Toolkit) that he started when he was at the University of North Carolina. The Scorpion Project is directed by him at the University of Arizona and by Karen Shannon at the University of North Carolina at Chapel Hill. reference: "The Interface Description Language: Definition and Use," by Richard Snodgrass, Computer Science Press, 1989, ISBN 0-7167-8198-0 ports: Sun-3, Sun-4, Vax, Decstation, Iris, Sequent, HP9000 discussion: [email protected] contact: [email protected] updated: 1993/11/04 language: COCOL (EBNF variant) package: COCO/R version: 1.39 (Modula, Pascal, Oberon) parts: parser generator(LL(1)) author: Hanspeter Moessenboeck <[email protected]> Port to Modula-2 done by Marc Brandis, Christof Brass and Pat Terry <[email protected]> Port to Turbo Pascal done by Pat Terry and Volker Pohlers <[email protected]> location: ftp://ftp.inf.ethz.ch:/pub/software/Coco ftp://ftp.psg.com:/pub/modula-2/coco ftp://cs.ru.ac.za:/pub/coco ftp://ftp.fit.qut.edu.au:/pub/coco description: Coco/R generates recursive descent parsers and their associated scanners from attributed grammars. Coco/R can bootstrap itself to generate its own driver, parser, scanner, and semantic evaluator from the attributed grammar CR.ATG. This grammar thus serves as an an example of how to write compiler descriptions for Coco. There are also other simpler examples showing its use. reference: _A compiler generator for microcomputers_, by Rechenberg and Moessenboeck (Prentice Hall, 1989, 0-13-155136-1) bugs: MS-DOS related versions: Pat Terry <[email protected]> Other: Hanspeter Moessenboeck <[email protected]> requires: Oberon, Modula-2, or Turbo Pascal ports: MS-DOS: TopSpeed Modula-2; FST 2.0; FST 3.1 - 3.5; StonyBrook QuickMod 2.2; Logitech 3.03; Turbo Pascal. Macintosh: Apple MacMeth. Unix/Linux/FreeBSD: Mocka, Gardens Point. status: Oberon version is freely available. Modula-2 version is free to academic sites; commercial use requires a license updated: 1995/11/01 language: COCOL (EBNF variant) package: Coco/R for C version: 1.05 author: Francisco Arzu <[email protected]> location: ftp://cs.ru.ac.za:/pub/coco/cocorc05.zip description: This is a C version of Professor Moessenboeck's Coco/R. Coco/R generates recursive descent parsers and their associated scanners from attributed grammars. Semantic attributes and semantic actions are a dream compared to YACC's and Lex's ones. There are many examples showing its use, including itself (it can bootstrap itself to generate its own driver, parser, scanner, and semantic evaluator from the attributed grammar CR.ATG) and a simple C like language which uses Iburg to generate intel 80x86 assemble language. parts: parser generator(LL(1)), scanner generator, documentation, examples bugs: Francisco Arzu <[email protected]> requires: Standard C compiler ports: Many UNIX systems(Linux, UnixWare, SunOS, IBM AIX, HP-UX, etc) MS-DOS and OS/2 restrictions: Next release will be under the GNU General Public License updated: 1995/11/01 lref: C language: EAG (Extended Affix Grammar) package: EAG version: first public release parts: recognizer generator, transduccer generator, translator generator, editor generator, documentation author: Marc Seutter <[email protected]> location: ftp://hades.cs.kun.nl/pub/eag/* description: The Extended Affix Grammar formalism, or EAG for short, is a formalism for describing both the context free and the context sensitive syntax of languages. EAG is a member of the family of two-level grammars. They are very closely related to two-level van Wijngaarden grammars. The EAG compiler will generate either a recognizer or a transducer or a translator or a syntax directed editor for a language described in the EAG formalism. updated: 1993/09/14 language: EBNF package: ETO version: test version parts: parser, postscript document, examples author: Lin Li <[email protected]> location: FTP://fi.ethz.ch/pub/ETO/eto-09.* description: ETO is an object oriented universal syntax checker. It takes an EBNF specification for a language and then uses it on an input file to check its syntax. updated: 1994/06/03 language: lex package: flex version: 2.5.2 parts: scanner generator author: Vern Paxson <[email protected]> location: ftp://ftp.ee.lbl.gov/flex-2.5.2.tar.Z or from a GNU archive site description: A POSIX-compliant "lex" scanner generator. bugs: [email protected] or [email protected] updated: 1995/04/28 language: Regular Expressions package: re2c version: alpha parts: translator (re->c) author: ?? [email protected] location: ftp://csg.uwaterloo.ca/pub/peter/re2c.0.5.tar.gz description: A regular expression to C converter. updated: ?? 1994/04/29 language: Pascal, Lisp, APL, Scheme, SASL, CLU, Smalltalk, Prolog package: Tim Budd's C++ implementation of Kamin's interpreters version: ? parts: interpretors, documentation author: Tim Budd <[email protected]> location: ? ftp://cs.orst.edu/pub/budd/kamin/*.shar description: a set of interpretors written as subclasses based on "Programming Languages, An Interpreter-Based Approach", by Samuel Kamin. requires: C++ status: ? contact: Tim Budd <[email protected]> updated: 1991/09/12 language: Relation Grammar package: rl version: ? parts: ? author: Kent Wittenburg <[email protected]> location: flash.bellcore.com/rl/* description: The RL files contain code for defining Relational Grammars and using them in a bottom-up parser to recognize and/or parse expressions in Relational Languages. The approach is a simplification of that described in Wittenburg, Weitzman, and Talley (1991), Unification-Based Grammars and Tabular Parsing for Graphical Languages, Journal of Visual Languages and Computing 2:347-370. This code is designed to support the definition and parsing of Relational Languages, which are characterized as sets of objects standing in user-defined relations. Correctness and completeness is independent of the order in which the input is given to the parser. Data to be parsed can be in many forms as long as an interface is supported for queries and predicates for the relations used in grammar productions. To date, this software has been used to parse recursive pen-based input such as math expressions and flowcharts; to check for data integrity and design conformance in databases; to automatically generate constraints in drag-and-drop style graphical interfaces; and to generate graphical displays by parsing relational data and generating output code. requires: Common Lisp ports: Allegro Common Lisp 4.1, Macintosh Common Lisp 2.0 updated: 1992/10/31 language: S/SL (Syntax Semantic Language) package: ssl version: ? parts: parser bytecode compiler, runtime author: Rick Holt, Jim Cordy <[email protected]> (language), Rayan Zachariassen <[email protected]> (C implementation) location: ftp://neat.cs.toronto.edu/pub/ssl.tar.Z description: A better characterization is that S/SL is a language explicitly designed for making efficient recusive-descent parsers. Unlike most other languages, practicially the LEAST expensive thing you can do in S/SL is recur. A small language that defines input/output/error token names (& values), semantic operations (which are really escapes to a programming language but allow good abstration in the pseudo-code), and a pseudo-code program that defines a grammar by the token stream the program accepts. Alternation, control flow, and 1-symbol lookahead constructs are part of the language. What I call an S/SL "implementation", is a program that compiles this S/SL pseudo-code into a table (think byte-codes) that is interpreted by the S/SL table-walker (interpreter). I think the pseudo-code language is LR(1), and that the semantic mechanisms turn it into LR(N) relatively easily. + more powerful and cleaner than yac - slower than yacc reference: Cordy, J.R. and Holt, R.C. [1980] Specification of S/SL: Syntax/Semantic Language, Computer Systems Research Institute, University of Toronto. "An Introduction to S/SL: Syntax/Semantic Language" by R.C. Holt, J.R. Cordy, and D.B. Wortman, in ACM Transactions on Programming Languages and Systems (TOPLAS), Vol 4, No. 2, April 1982, Pages 149-178. updated: 1989/09/25 language: TXL package: TXL: Tree Transformation Language version: 7.4 parts: translator, documentation, tutorial, examples author: Jim Cordy <[email protected]> location: ftp://ftp.qucis.queensu.ca/pub/txl/* description: TXL is a language for performing source to source transformations and is well suited for rapidly prototyping new languages and language processors. It has also been used to prototype specification languages, command languages, and more traditional program transformation tasks such as constant folding, type inference, source optimization and reverse engineering. TXL takes as input an arbitrary context-free grammar in extended BNF-like notation, and a set of show-by-example transformation rules to be applied to inputs parsed using the grammar. TXL is a functional/rule-based hybrid programming language, using the paradigm of structural transformation. reference: Several listed in software documentation updated: 1993/08/04 language: BNF (extended) package: SORCERER: A Simple Tree Parser and Rewrite Generator version: 1.00B15 parts: translator, documentation, tutorial, examples author: Terence Parr <[email protected]>, Aaron Sawdey <[email protected]>, Gary Funck <[email protected]> location: ftp://ftp.parr-research.com/pub/pccts/sorcerer/ ftp://ftp.uu.net/languages/tools/pccts/ UK: ftp://src.doc.ic.ac.uk/computing/programming/languages/tools/pccts/ Europe: ftp://ftp.th-darmstadt.de/pub/programming/languages/compiler-compiler/pccts/ description: SORCERER is more suitable for the class of translation problems lying between those solved by code-generator generators and by full source-to-source translator generators. SORCERER generates simple, flexible, top-down, tree parsers that, in contrast to code-generators, may execute actions at any point during a tree walk. SORCERER accepts extended BNF notation, allows predicates to direct the tree walk with semantic and syntactic context information, and does not rely on any particular intermediate form, parser generator, or other pre-existing application. Both C and C++ based tree walkers can be generated. SORCERER is well integrated with PCCTS (soon SORCERER will be distributed with PCCTS). reference: Several listed in software documentation. A book will available first quarter 1996; a pre-release version is available at the ftp site. discussion: Usenet newsgroup comp.compilers.tools.pccts help: newsgroup support: actively supported, from newsgroup and Parr Research Corporation <[email protected]>. updated: 1995/09/01 language: Attribute Grammars package: The FNC-2 Attribute Grammar System version: 1.14 parts: FNC-2: the Olga compiler and attribute evaluator generator; ATC: a generator of abstract tree constructors driven by bottom-up parsers, with two flavours, one on top of SYNTAX, and one on top of Lex and Yacc; PPAT: a generator of unparsers of attributed abstract trees, based on the TeX-like notion of nested boxes of text. author: Martin Jourdan, Didier Parigot and students location: http://www-rocq.inria.fr/charme/FNC-2/index.html ftp://ftp.inria.fr/INRIA/Projects/ChLoE/FNC-2/ description: The FNC-2 system is a modern AG-processing system that aims at production-quality by providing the following qualities: + Efficiency: The generated evaluators, based on the visit-sequence paradigm, are completely deterministic; furthermore, this paradigm allows to apply very effective space optimization techniques. The evaluators are hence basically as efficient in time and space as hand-written programs using a tree as internal data structure. + Expressive power: This efficiency is not achieved at the expense of expressive power since FNC-2 accepts AGs in the very broad class of strongly non-circular AGs. + Easiness of use: Olga, the input language of FNC-2, enforces a high degree of programming safety, reliability and productivity. It provides powerful constructions for modularity and reusability. + It contains the following sub-languages: attributed abstract syntaxes ASX; attribute grammars; declaration and definition modules. + Versatility: The generated evaluators can be interfaced with many other tools and produced in many variations: Several modes of attribute evaluation: exhaustive; incremental; concurrent (on shared-memory multiprocessor machines). + Several implementation languages: C (standalone); Lisp (on top of the http://www-rocq.inria.fr/charme/FNC-2/centaurfnc2.html C/fSDL (for the <A HREF="http://www-rocq.inria.fr/charme/FNC-2/cosyfnc2.html"> CoSy </A> compilation platform); ML (Caml). In addition, FNC-2 is the testbed for an active research team. ports: Unix status: active contact: <[email protected]> or <[email protected]> updated: 1995 language: Ml4 (extended EBNF) package: Depot4 version: 1.6 parts: translator generator (->Java), documentation, examples author: Juergen Lampe <[email protected]> location: ftp ftp.math.tu-dresden.de/Depot4/ description: Depot4 generates recursive descent parsers and translators. Ml4 is a true extension of N.Wirth's EBNF. It features a unique translation=20 centred description, which makes it especially useful for people not educated in compiler construction. The Ml4 translator can bootstrap itself, thus serving as an example. Although translators are generated in a certain host language, their description is totally independent from this. Depot4 is intended for domain specific language implementation. reference: "An Extensible Translator-Generator for Use in Branch Software Construction", J. Comp. and Inform. 2, 1 (1996), pp. 1057-1067 "A Generator for Dynamically Extensible Translators" in Proc. of JMLC'97 Joint Modular Languages Conference (Linz, 1997), pp. 75-87. "A tool for syntax directed software design" J. of Systems Architecture 43 (1997), pp. 199-202. features: + easy to capture recursive translator description + rule based modularization (simplifies test) + monitor/trace tools + unbounded lookahead possible + interface to other software + extensible + convenient standard user interface bugs: [email protected] requires: Java Virtual Machine supporting JDK 1.0.2 portability: no futher restrictions status: active help: online manual at http://www.math.tu-dresden.de/wir/staff/lampe/Dp4Doc/UM.html support: [email protected] updated: 1997/06 language: Ml4 (extended EBNF) package: Depot4/Oberon version: 1.6 parts: translator generator (->Oberon), documentation, examples author: Juergen Lampe <[email protected]> location: ftp ftp.math.tu-dresden.de/Depot4/ description: A Oberon version of Depot4 Accepts exactly the same language as Depot4/Java, cross translation, i.e. generation of translators in Java (and vice versa) possible reference: "An Oberon-Based Implementation Tool" in "Advances in Modular Languages" P. Schulthess (ed), Universit=8Atsverl., Ulm, 1994, ISBN 3-89559-220-X, pp. 303-312. requires: ETHZ Oberon V4 ports: Oberon/F resp. Component Pascal ETHZ Oberon System3 possible help: online manual at http://www.math.tu-dresden.de/wir/staff/lampe/Dp4Doc/UM.html support: [email protected] updated: 1997/06 language: ANSI C, K&R C package: CDG - C Documentation Generator version: 1.1 parts: documentation, document generator (all in one file) author: Peter Knoppers <[email protected]> location: http://cardit.et.tudelft.nl/~knop/cdg11.tar.gz (Anonymous ftp not supported; use your WWW-browser and save it in a file.) description: Cdg reads a set of C-source files and generates a two-column listing of those sources where all lines are numbered. After the listing part comes a three-column cross-reference table which gives for each identifier a list of line-numbers where this identifier occurs in the source listing part. This format resembles the format that John Lions used in "Source Code and Commentary on UNIX level 6". conformance: Should operate on all K&R and ANSI C programs. There are some restrictions on the placement of matching #ifdef, #else and #endif directives, or else the way an identifier is used may be incorrectly determined. features: + Non-C sources can be included in the output - Non-C sources will not be cross-referenced + Long lines are folded in the output and marked as such + Customizable footer for copyright or other messages + Cross reference list distinguishes definition versus use of an identifier + Possibility to exclude certain identifiers + Can save a list of all identifiers with linenumbers + Identifiers can be included or excluded from the cross- reference listing depending on their use + PostScript output can be generated for A4 or US Letter size paper, on the non-PostScript printers only A4 is supported. bugs: None known (except the restriction mentioned under "conformance"). restriction: GNU conditions requires: Unix, ANSI-C compiler (preferably gcc) (to build it), sort(1), PostScript printer, or HP DeskJet 500 or LaserJet printer, or GhostScript plus almost any popular printer. ports: Linux portability: Little experience at this time, should be quite portable. status: Works fine for the author... discussion: Email the author. help: Email the author. support: Email the author. announcements: http://cardit.et.tudelft.nl/~knop cref: C variants cref: unix tool building cref: programming in the large updated: 1996/08/06 mathematical tools and languages ------------------------------------------------------------------------------- category: mathematical tools and languages description: These are either special-purpose languages and tools, or general purpose languages and tools that have traditionally been used for mathematical and scientific computing task. lref: Fortran lref: PCN lref: CLP lref: SISAL 1.2 language: Algea language (math manipulation - MATLAB-like) package: Algea version: 3.4.0 parts: ? author: Scott Hunziker <[email protected]> and Mike Brennan location: http://www.eskimo.com/~ksh/algae/index.html http://axams1.bo.infn.it:9999/algae ftp://ftp.eskimo.com/u/k/ksh/algae restriction: GPL requires: gcc ports: UNIX (Linux Only?) status: Active discussion: To join the Algea list email [email protected] description: Algae is an interpreted language for numerical analysis. Algae borrows ideas from languages like MATLAB, APL, and C, but it was developed in response to a need for a free, efficient, and versatile high-level language with large problem capability. updated: 1998/05 language: APL package: I-APL version: ? parts: ? author: ? location: ftp://watserv1.waterloo.edu/languages/apl/* description: ? updated: 1992/07/06 language: APL package: APLWEB version: ? parts: translator(web->apl), translator(web->TeX) author: Dr. Christoph von Basum <[email protected]> location: ftp://watserv1.uwaterloo.ca/languages/apl/aplweb/* description: [Should this be listed with the Web entries? -- Ed.] updated: 1992/12/07 language: APL iref: (APL) Tim Budd's C++ implementation of Kamin's interpreters language: J package: J-mode version: ? parts: emacs macros author: ? location: ftp://think.com/pub/j/gmacs/j-interaction-mode.el description: add on to J updated: 1991/03/04 language: RLaB language (math manipulation - MATLAB-like) package: RLaB version: 1.18d parts: interpreter, libraries, documentation author: Ian Searle <[email protected]> location: ftp://evans.ee.adfa.oz.au/pub/RLaB/* US: ftp://csi.jpl.nasa.gov/pub/matlab/RLaB description: RLaB is a "MATLAB-like" matrix-oriented programming language/toolbox. RLaB focuses on creating a good experimental environment (or laboratory) in which to do matrix math Currently RLaB has numeric scalars and matrices (real and complex), and string scalars, and matrices. RLaB also contains a list variable type, which is a heterogeneous associative array. bugs: Ian Searle <[email protected]> restriction: GNU General Public License requires: GNUPLOT, lib[IF]77.a (from f2c) ports: many unix, OS/2, Amiga updated: 1995/03/16 language: Octave language (math manipulation - MATLAB-like) package: Octave version: 2.0.13 parts: interpreter, libraries, documentation author: John W. Eaton location: ftp://ftp.che.utexas.edu/pub/octave also, any GNU archive site (see archive listing below) description: Octave is a high-level language, primarily intended for numerical computations. It provides a convenient command line interface for solving linear and nonlinear problems numerically. Octave can do arithmetic for real and complex scalars and matrices, solve sets of nonlinear algebraic equations, integrate functions over finite and infinite intervals, and integrate systems of ordinary differential and differential-algebraic equations. bugs: [email protected] restriction: GNU General Public License requires: g++ 2.7.2 or later, a recent version of GNU Make, GNU libstdc++ ports: Linux, Digital Unix, HP-UX, SunOS, OS/2, and Windows NT/95 updated: 1998/5/21 language: FUDGIT language (math manipulation) package: FUDGIT version: 2.27 parts: interpreter author: Martin-D. Lacasse location: ftp://tsx-11.mit.edu/pub/linux/sources/usr.bin/fudgit-*?? description: FUDGIT is a double-precision multi-purpose fitting program. It can manipulate complete columns of numbers in the form of vector arithmetic. FUDGIT is also an expression language interpreter understanding most of C grammar except pointers. Morever, FUDGIT is a front end for any plotting program supporting commands from stdin. It is a nice mathematical complement to GNUPLOT, for example. Ported to Linux by Thomas Koenig requires: GNUPLOT ports: AIX, HPUX, Linux, IRIX, NeXT, SunOS, Ultrix updated: 1993/02/22 language: Unix BC (arbitrary-precision arithmetic language) package: C-BC version: 1.1 parts: bytecode compiler, interpreter, documentation, examples author: Mark Hopkins <[email protected]> location: alt.sources (10/04/93), or contact author by E-mail. description: A strongly typed version of BC with expanded C-like syntax, more base types, with ability to form array and pointer types of any dimension and to allocate/free arrays at run-time. conformance: Most POSIX-BC features supported, except functions must be declared consistently and declared before first use. String handling slightly different. reference: C-BC implementation notes contained with software documentation requires: ANSI-C compiler ports: DOS, Unix portability: No system dependent features present. updated: 1993/08/23 language: Unix BC (arbitrary-precision arithmetic language) package: GNU BC version: 1.02 parts: parser (yacc), interpreter, BC math library author: Philip A. Nelson <[email protected]> location: ftp bc-1.02.tar.Z from a GNU archive site description: BC is an arbitrary precision numeric processing language with a C-like syntax that traditionally provided a front-end to DC. This version, however, is self-contained and internally executes its own compiled code (unrelated to DC code). conformance: Superset of POSIX BC (P10003.2/D11), with a POSIX-only mode. restriction: Source code falls under the GNU CopyLeft. requires: vsprintf and vfprintf routines ports: Unix (BSD, System V, MINIX, POSIX) updated: ? language: Calc? (symbolic math calculator) package: Calc version: 2.02 parts: interpreter, emacs mode, documentation author: Dave Gillespie <[email protected]> location: ftp calc-2.02.tar.z from a GNU archive site description: Calc is an extensible, advanced desk calculator and mathematical tool written in Emacs Lisp that runs as part of GNU Emacs. It is accompanied by the "Calc Manual", which serves as both a tutorial and a reference. If you wish, you can use Calc as only a simple four-function calculator, but it also provides additional features including choice of algebraic or RPN (stack-based) entry, logarithms, trigonometric and financial functions, arbitrary precision, complex numbers, vectors, matrices, dates, times, infinities, sets, algebraic simplification, differentiation, and integration. bugs: ? updated: ? language: C-like caluculator package: Arbitrary precision calculator version: 1.26.4 parts: interpreter author: David I. Bell <[email protected]> location: ftp://ftp.uu.net/pub/calc description: Arbitrary precision C-like calculator [similar to BC? --ed] ports: Linux updated: 1993/06/15 language: Unix DC (arbitrary-precision arithmetic language) package: GNU DC version: 0.2 parts: interpreter author: ? location: ftp dc-0.2.tar.Z from a GNU archive site description: DC is the language for an arbitrary precision postfix calculator. This version is a subset of DC that handles all the Unix DC operations, except the (undocumented) array operations. status: Attempting integration with GNU BC. updated: 1993/05/21 language: Fortran package: f2c version: 1993.04.28 parts: translator (to C), postscript documentation, man pages, support libraries. author: S. I. Feldman, D. M. Gay, M. W. Maimone and N. L. Schryer location: ftp from [email protected]:netlib/f2c/src/* description: translator (Fortran 77 to ANSI C or C++) bugs: D. M. Gay <[email protected]> updated: 1993 April 27 language: GNU Fortran package: g77 version: 0.5.17 parts: compiler, documentation, libraries. author: Craig Burley <[email protected]> location: ftp g77-0.5.17.tar.gz from any GNU site description: GNU Fortran is a free replacement for the UNIX f77 Fortran compiler, and is currently in beta testing. requires: To build it requires the GNU CC source distribution, Version 2.6.3 through 2.7. bugs: <[email protected]> updated: 1995/11/22 language: Fortran package: Floppy version: ? parts: ? author: ? location: ffccc in comp.sources.misc archive volume 12 description: ? contact: ? updated: 1992/08/04 language: Fortran package: Flow version: ? parts: ? author: Julian James Bunn <[email protected]> location: comp.sources.misc archive volume 31 description: The Flow program is a companion to Floppy, it allows the user to produce various reports on the structure of Fortran 77 code, such as flow diagrams and common block tables. requires: Floppy ports: VMS, Unix, CMS updated: ? language: Fortran (HPF) package: Adaptor (Automatic DAta Parallelism TranslatOR) version: 3.0 parts: preprocessor, library, documentation author: ? location: ftp://ftp.gmd.de/GMD/adaptor/adp_3.0.tar.gz description: Adaptor is a tool that transforms data parallel programs written in Fortran with array extensions, parallel loops, and layout directives to parallel programs with explicit message passing. ADAPTOR is not a compiler but a source to source transformation that generates Fortran 77 host and node programs with message passing. The new generated source codes have to be compiled by the compiler of the parallel machine. reference: http://www.gmd.de/SCAI/lab/adaptor/adaptor_home.html ports: CM-5, iPCS/860, Meiko CS1/CS2, KSR 1, SGI, Alliant, network of Suns, or RS/6000s contact: Thomas Brandes <[email protected]> updated: 1995/06 language: Fortran, C package: cfortran.h version: 2.6 parts: macros, documentation, examples author: Burkhard Burow location: ftp://zebra.desy.de/cfortran/* description: cfortran.h is an easy-to-use powerful bridge between C and FORTRAN. It provides a completely transparent, machine independent interface between C and FORTRAN routines and global data. cfortran.h provides macros which allow the C preprocessor to translate a simple description of a C (Fortran) routine or global data into a Fortran (C) interface. reference: reviewed in RS/Magazine November 1992 and a user's experiences with cfortran.h are to be described in the 1/93 issue of Computers in Physics. ports: VAX VMS or Ultrix, DECstation, Silicon Graphics, IBM RS/6000, Sun, CRAY, Apollo, HP9000, LynxOS, f2c, NAG f90. portability: high contact: [email protected] updated: 1992/04/12 language: Fortran package: fsplit version: ? parts: ? author: ? location: ? description: a tool to split up monolithic fortran programs updated: ? language: Fortran package: ? version: ? parts: ? author: Steve Mccrea <[email protected]> location: ? description: a tool to split up monolithic fortran programs requires: new awk updated: ? language: Fortran package: Fortran77 -> Fortran90 converter version: ? 1 parts: translator(Fortran 77 -> Fortran 90), documentation? author: [email protected] <Michael Metcalf> location: ftp://jkr.cc.rl.ac.uk/pub/MandR/convert.f90 description: A Fortran77 to Fortran90 translator. There's a number of significant differences between the two Fortrans that makes a package like this useful. updated: 1993/07/17 language: Fortran package: F-curses version: ? parts: library author: Wade Schauer <[email protected]> location: comp.sources.misc volume 44 description: F-curses (C) is a library of Fortran and C routines that gives Fortran programmers tranparent access to the curses library (a C library). restriction: shareware ports: UNIX, MS-DOS updated: 1994/10/10 language: Fortran iref: (Fortran) Stanford Base SUIF Compiler Package (``basesuif'') language: Fortran package: ? version: ? parts: semantic analyser author: ? location: http://www.nag.co.uk:70/ description: Fortran 90 semantic analyser updated: ? language: J package: J from ISI version: 6 parts: interpreter, tutorial author: Kenneth E. Iverson and Roger Hui <[email protected]> location: ftp://watserv1.waterloo.edu/languages/apl/j/* description: J was designed and developed by Ken Iverson and Roger Hui. It is similar to the language APL, departing from APL in using using the ASCII alphabet exclusively, but employing a spelling scheme that retains the advantages of the special alphabet required by APL. It has added features and control structures that extend its power beyond standard APL. Although it can be used as a conventional procedural programming language, it can also be used as a pure functional programming language. ports: Dec, NeXT, SGI, Sun-3, Sun-4, VAX, RS/6000, MIPS, Mac, Acorn IBM-PC, Atari, 3b1, Amiga updated: 1992/10/31 language: Ratfor package: ? ratfor ? version: ? parts: translator(Ratfor->Fortran IV) author: Brian Kernighan and P.J. Plauger (wrote the book anyway) location: comp.sources.unix archives volume 13 description: Ratfor is a front end language for Fortran. It was designed to give structured control structures to Fortran. It is mainly of historical significance. updated: ? language: Y (cross between C and Ratfor) package: y+po version: ? parts: compiler author: Jack W. Davidson and Christopher W. Fraser location: ftp://ftp.cs.princeton.edu/pub/y+po.tar.Z description: Davidson/Fraser peephole optimizer PO [1-3] [where the GCC RTL idea and other optimization ideas came from] along with the Y compiler [cross between C+ratfor] is ftpable from ftp.cs.princeton.edu: /pub/y+po.tar.Z. It is a copy of the original distribution from the University of Arizona during the early 80's, totally unsupported, almost forgotten [do not bug the authors] old code, possibly of interest to compiler/language hackers. reference: Jack W. Davidson and Christopher W. Fraser, "The Design and Application of a Retargetable Peephole Optimizer", TOPLAS, Apr. 1980. Jack W. Davidson, "Simplifying Code Through Peephole Optimization" Technical Report TR81-19, The University of Arizona, Tucson, AZ, 1981. Jack W. Davidson and Christopher W. Fraser, "Register Allocation and Exhaustive Peephole Optimization" Software-Practice and Experience, Sep. 1984. status: history updated: ? language: ZPL package: ZPL version: ? parts: compiler,language documents, sample code author: L. Snyder, C. Lin, B. Chamberlain, S-E. Choi, E. Lewis, J. Secosky, D. Weathersby location: http://www.cs.washington.edu/research/zpl/ description: ZPL is a new array programming language designed from first principles for fast execution on both sequential and parallel computers. ZPL benefits from recent parallel compiler research, though code from existing sequential Fortran and C programs can often be reused. Programmers with scientific computing experience can learn ZPL in a few hours. discussion: [email protected] updated: 1997/07/01 electrical engineering languages ------------------------------------------------------------------------------- category: electrical engineering languages description: These are languages used for simulating, designing, and specifying circuits. language: CASE-DSP (Computer Aided Software Eng. for Digital Signal Proc) package: Ptolemy version: 0.6 parts: grahpical algorithm layout, code generator, simulator author: ? location: ftp://ptolemy.eecs.berkeley.edu/pub/ptolemy/ptolemy0.6/ description: Ptolemy provides a highly flexible foundation for the specification, simulation, and rapid prototyping of systems. It is an object oriented framework within which diverse models of computation can co-exist and interact. For example, using Ptolemy a data-flow system can be easily connected to a hardware simulator which in turn may be connected to a discrete-event system, etc. Because of this, Ptolemy can be used to model entire systems. In addition, Ptolemy now has code generation capabilities. from a flow graph description, Ptolemy can generate both C code and DSP assembly code for rapid prototyping. Note that code generation is not yet complete, and is included in the current release for demonstration purposes only. requires: C++, C ports: Sun-4, MIPS/Ultrix; DSP56001, DSP96002. FreeBSD status: active research project discussion: [email protected] contact: [email protected] updated: 1996/05/28 language: EDIF (Electronic Design Interchange Format) package: Berkeley EDIF200 version: 7.6 parts: translator-building toolkit author: Wendell C. Baker and Prof A. Richard Newton of the Electronics Research Laboratory, Department of Electrical Engineering and Computer Sciences at the University of California, Berkeley, CA location: ?? ftp://ic.berkeley.edu/pub/edif ?? description: ? restriction: no-profit w/o permission ports: ? updated: 1990/07 language: SAOL, SASL (the MPEG-4 Structured Audio Orchestra Language and Structured Audio Score Language) package: saolc version: 0.5 parts: parser, interpreter, grammar, core opcode implementation author: Eric Scheirer, MIT Media Laboratory location: http://sound.media.mit.edu/~eds/mpeg4 description: SAOL is an audio processing and digital synthesis and effects language. It is part of the MPEG-4 standard, and allows the flexible description of synthesizers and effects-processing algorithms within than toolset. SAOL is historically related to Csound and other "Music N" languages, but is more flexible and easy to use than these. While maintaining features such as the instrument/score distinction and dual-rate processing, it adds user-defined opcodes, more well-defined rate semantics, more lexical flexibility, and an improved syntax. references: forthcoming conformance: This implementation is being developed as the official Reference Software for the Structured Audio component of ISO 14496 (MPEG-4). features: - non-real time performance (unless your machine is much faster than my SGI Octane) + implements user-defined opcodes as macro expansion + standalone mode as well as bitstream processing bugs: many known and being worked on. restrictions: source code is released to the public domain requires: C compiler only; lex/yacc to rebuild parser not much fun without audio capability ports: At least SGI, Alpha, NT, Win95, Linux, and SunOS systems portability: Word length and byte-order independent status: Under active development Discussion: [email protected] to be added to the SAOL developers' mailing list Help: Eric Scheirer <[email protected]> Support: Eric Scheirer <[email protected]> Announcements: http://sound.media.mit.edu/~eds/mpeg4 and the mailing list Contact: Eric Scheirer <[email protected]> Updated: 07/1997 language: SPAM Compiler package: SPAM version: ? parts: ? author: ? location: http://www.ee.princeton.edu/spam description: The SPAM Compiler is a retargetable optimizing compiler for embedded fixed- point DSP processors. SPAM is built on top of the SUIF Compiler, which serves as the "front and middle"-end. The back-end of the SPAM Compiler consists of two components. The first component is a set of data structures that store the various representations of the source program (e.g. calling graph, control-flow graphs, expression DAGs). The second component is a suite of retargetable algorithms that perform code generation and machine-dependent code optimization. updated: ? language: Verilog, XNF package: XNF to Verilog Translator version: ? parts: translator(XNF->Verilog) author: M J Colley <[email protected]> location: ftp://ftp.caltech.edu/pub/dank/xnf2ver.tar.Z ? description: This program was written by a postgraduate student as part of his M.Sc course, it was designed to form part a larger system operating with the Cadence Edge 2.1 framework. This should be born in mind when considering the construction and/or operation of the program. [If anyone knows the current location of this program please let me know - ed (6/98)]. updated: ? language: VHDL package: ALLIANCE version: 1.1 parts: compiler, simulator, tools and environment, documentation author: ? location: ftp://ftp.ibp.fr/ibp/softs/masi/alliance/ description: ALLIANCE 1.1 is a complete set of CAD tools for teaching Digital CMOS VLSI Design in Universities. It includes VHDL compiler and simulator, logic synthesis tools, automatic place and route, etc... ALLIANCE is the result of a ten years effort at University Pierre et Marie Curie (PARIS VI, France). ports: Sun4, also not well supported: Mips/Ultrix, 386/SystemV discussion: [email protected] contact: [email protected] updated: 1993/02/16 language: VHDL package: VHDL Object Model (VOM) version: 1.0 parts: parser author: David Benz <[email protected]> and Phillip Baraona <[email protected]> location: ftp://thor.ece.uc.edu/pub/vhdl/tools/vhdl-object-model.tar.gz description: VOM 1.0 is an object-oriented syntactic specification for VHDL written using the REFINE software design and synthesis environment. In simpler terms, it is a VHDL parser which builds an object tree from VHDL source code. If you are interested in transforming VHDL into some other form (source code, whatever) you might be interested in this. The parse tree (in the form of an object tree) is provided, you would just need to add your own transformations. VOM isn't complete. The semantic information is not included (type checking, certain syntactic-rules, etc.). VOM 1.0 should parse most VHDL programs. However, it will not detect errors such as a wait statement in a process statement with an explicit sensitivity list. updated: 1994/11/01 -- Send compilers articles to [email protected], meta-mail to [email protected]. Archives at http://www.iecc.com/compilers
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |