home *** CD-ROM | disk | FTP | other *** search
/ Peanuts NeXT Software Archives / Peanuts-1.iso / CDROM / FAQs / compilers / part4 < prev    next >
Encoding:
Internet Message Format  |  1996-10-01  |  71.9 KB

  1. Path: informatik.tu-muenchen.de!fu-berlin.de!cs.tu-berlin.de!newscaster-1.mcast.net!news.mathworks.com!uunet!news-in2.uu.net!ivan.iecc.com!ivan.iecc.com!not-for-mail
  2. From: free-compilers@idiom.com (Steven Robenalt)
  3. Newsgroups: comp.compilers,comp.lang.misc,comp.archives.admin,news.answers,comp.answers
  4. Subject: Catalog of compilers, interpreters, and other language tools [p4of5]
  5. Supersedes: <free4-Sep-96@comp.compilers>
  6. Followup-To: comp.lang.misc
  7. Date: 1 Oct 1996 07:00:11 -0400
  8. Organization: Idiom Consulting / Berkeley, CA
  9. Lines: 1820
  10. Sender: johnl@iecc.com
  11. Approved: compilers@iecc.com
  12. Expires: 1 Nov 96 23:59:00 GMT
  13. Message-ID: <free4-Oct-96@comp.compilers>
  14. References: <free3-Oct-96@comp.compilers>
  15. Reply-To: free-compilers@idiom.com (Steven Robenalt)
  16. NNTP-Posting-Host: ivan.iecc.com
  17. Summary: Monthly posting of free language tools that include source code
  18. Keywords: tools, FTP, administrivia
  19. Xref: informatik.tu-muenchen.de comp.compilers:11128 comp.lang.misc:23380 comp.archives.admin:2167 news.answers:83024 comp.answers:21380
  20.  
  21. Archive-name: compilers/free/part4
  22. Last-modified: 1996/04/01
  23. Version: 9.0
  24.  
  25. concurrent, parallel, and simulation languages
  26. -------------------------------------------------------------------------------
  27. category:    concurrent, parellel, and simulation languages
  28. description:    This is a fairly broad category of languages.  Most of the
  29.         implementations in this set are not good enough to be used in
  30.         production systems.  Some are.    In addition to those listed
  31.         below, see:
  32. lref:        Concurrent Clean
  33. lref:        Concurrent ML
  34. lref:        EuLisp
  35. lref:        Parallaxis
  36. lref:        Maisie
  37. lref:        uC++
  38. lref:        MeldC
  39. lref:        pm2
  40. lref:        Simula 67
  41. iref:        (Tcl) MTtcl - Multi-threaded Tcl
  42.  
  43. language:    ABCL/1 (An object-Based Concurrent Language)
  44. package:    ABCL/1 
  45. version:    ?
  46. parts:        ?
  47. author:        Akinori Yonezawa, ABCL Group now at Department of Information 
  48.         Science, the University of Tokyo
  49. location:    ftp pub/abcl1/* from camille.is.s.u-tokyo.ac.jp
  50. description:    Asynchronous message passing to objects.  
  51. reference:    "ABCL: An Object-Oriented Concurrent System", Edited by 
  52.         Akinori Yonezawa, The MIT Press, 1990, (ISBN 0-262-24029-7)
  53. restriction:    no commercial use, must return license agreement
  54. requires:    Common Lisp
  55. contact:    abcl@is.s.u-tokyo.ac.jp
  56. updated:    1990/05/23
  57.  
  58. language:    ABCL ???
  59. package:    ABCL/R2
  60. version:    ?
  61. parts:        ?
  62. author:        masuhara@is.s.u-tokyo.ac.jp, matsu@is.s.u-tokyo.ac.jp,
  63.         takuo@is.s.u-tokyo.ac.jp, yonezawa@is.s.u-tokyo.ac.jp
  64. location:    ftp pub/abclr2/* from camille.is.s.u-tokyo.ac.jp
  65. description:    ABCL/R2 is an object-oriented concurrent reflective language
  66.         based on Hybrid Group Architecture.  As a reflective language,
  67.         an ABCL/R2 program can dynamically control its own behavior,
  68.         such as scheduling policy, from within user-program.  An an
  69.         object-oriented concurrent language, this system has almost all
  70.         functions of ABCL/1.
  71. requires:    Common Lisp
  72. updated:    1993/01/28
  73.  
  74. language:    ALLOY
  75. package:    ALLOY
  76. version:    2.0?
  77. parts:        interpreter, documentation, examples
  78. author:        Thanasis Mitsolides <mitsolid@cs.nyu.edu>
  79. location:    ftp pub/local/alloy/* from cs.nyu.edu
  80. description:    ALLOY is a higher level parallel programming language
  81.         appropriate for programming massively parallel computing
  82.         systems.  It is based on a combination of ideas from
  83.         functional, object oriented and logic programming languages.
  84.         The result is a language that can directly support
  85.         functional, object oriented and logic programming styles
  86.         in a unified and controlled framework.    Evaluating modes
  87.         support serial or parallel execution, eager or lazy
  88.         evaluation, non-determinism or multiple solutions etc.
  89.         ALLOY is simple as it only requires 29 primitives in all
  90.         (half of which for Object Oriented Programming support).
  91. ports:        sparc, ?
  92. updated:    1991/06/11
  93.  
  94. language:    Cellang (Cellular Automata)
  95. package:    Cellular
  96. version:    2.0
  97. parts:        byte-code compiler, runtime, viewer
  98. author:        J Dana Eckart <dana@rucs.faculty.cs.runet.edu>
  99. location:    comp.sources.unix, volume 26
  100. description:    A system for cellular automata programming.
  101. updated:    1993/04/03
  102.  
  103. language:    Hermes
  104. package:    IBM Watson prototype Hermes system
  105. version:    0.8alpha patchlevel 01
  106. parts:        bytecode compiler, compiler(bytecode->C), runtime
  107. author:        Andy Lowry <lowry@watson.ibm.com>
  108. location:    ftp pub/hermes/README from software.watson.ibm.com
  109. description:    Hermes is a very-high-level integrated language and
  110.         system for implementation of large systems and
  111.         distributed applications, as well as for
  112.         general-purpose programming.  It is an imperative,
  113.         strongly typed, process-oriented language.  Hermes
  114.         hides distribution and heterogeneity from the
  115.         programmer.  The programmer sees a single abstract
  116.         machine containing processes that communicate using
  117.         calls or sends.     The compiler, not the programmer,
  118.         deals with the complexity of data structure layout,
  119.         local and remote communication, and interaction with
  120.         the operating system.  As a result, Hermes programs are
  121.         portable and easy to write.  Because the programming
  122.         paradigm is simple and high level, there are many
  123.         opportunities for optimization which are not present in
  124.         languages which give the programmer more direct control
  125.         over the machine.
  126. reference:    Strom, Bacon, Goldberg, Lowry, Yellin, Yemini. Hermes: A
  127.          Language for Distributed Computing. Prentice-Hall, Englewood
  128.          Cliffs, NJ.  1991.  ISBN: O-13-389537-8.
  129. ports:        RS6000 Sun-4 NeXT IBM-RT/bsd4.3 (Sun-3 and Convex soon)
  130. discussion:    comp.lang.hermes
  131. updated:    1992/03/22
  132.  
  133. language:    ICC++ (Illinois Concert C++) and CA (Concurrent Aggregates)
  134. package:    Illinois Concert System
  135. version:    3.0
  136. parts:        compiler(->C++), interpreter, symbolic debugger, parallel
  137.         runtime simulator, parallel implementation on TMC CM5,
  138.         Cray T3D
  139. author:        Various, concert@red-herring.cs.uiuc.edu
  140. location:    http://www-csag.cs.uiuc.edu/projects/concert.html
  141. description:    The Concert System incorporates global analysis for
  142.         parallel object-oriented languages, including
  143.         aggressive concrete type inference.  In addition, it 
  144.         include an extremely lightweight communication and 
  145.         threading library (compiler-supported).     The
  146.         implementation supports both a parallel C++ and 
  147.         a simple parallel object-oriented language called 
  148.         Concurrent aggregates.
  149. conformance:    ICC++ and CA documentation available from the web site.
  150. reference:    Andrew Chien, et. al. The Concert System -- Compiler and 
  151.         Runtime Support for Efficient Fine-Grained Concurrent 
  152.         Object-Oriented Programs, Department of Computer Science, 
  153.         University of Illinois, Urbana, Illinois, Technical 
  154.         Report UIUCDCS-R-93-1815, June 1993.
  155.         (Others are available also)
  156. bugs:        concert@red-herring.cs.uiuc.edu
  157. restriction:    redistribution is restricted
  158. announcements:    where new releases are announced
  159. contact:    Andrew Chien   achien@cs.uiuc.edu
  160. updated:    1995/05/07  Version 3.0
  161. lref:        C++
  162.  
  163. language:    OCCAM 2 (A parallel, concurrent, distributed language)
  164. package:    D7202-oc / TDS
  165. version:    ?
  166. parts:        compiler & full toolset system
  167. author:        INMOS Ltd.
  168. location:    ftp://unix.hensa.ac.uk/pub/parallel/occam/compilers/inmos
  169.         http://www.hensa.ac.uk/parallel/occam/compilers/inmos/index.html
  170. requires:    INMOS OCCAM compiler D7202 from: 
  171.         ftp://unix.hensa.ac.uk/pub/parallel/occam/compilers/inmos/oc
  172. ports:        Sun4 (DEC Alpha and Motorola PowerPC to follow)
  173. portability:    Sparc processor only at present
  174. status:        actively developed, supported
  175. discussion:    comp.sys.transputer, <ofa-com-request@ukc.ac.uk>
  176. contact:    Occam For All Team <ofa-bugs@ukc.ac.uk>
  177. updated:    4-May-1995
  178.  
  179. language:    OCCAM 2 (A parallel, concurrent, distributed language)
  180. package:    SPOC (Southampton Portable Occam Compiler)
  181. version:    1.1
  182. parts:        compiler(->C), run-time system, documentation, tools, examples
  183. author:        Denis Nicole <dan@ecs.soton.ac.uk>, 
  184.         Sean Wykes <smw@ecs.soton.ac.uk>, 
  185.         Mark Debbage <md@pact.srf.ac.uk>, 
  186.         Mark Hill <mbh@pact.srf.ac.uk>
  187. location:    ftp://ftp.ecs.soton.ac.uk/pub/occam/spoc1.1
  188.         ftp://unix.hensa.ac.uk/pub/parallel/occam/compilers/spoc
  189.         http://www.hensa.ac.uk/parallel/occam/compilers/spoc/index.html
  190. description:    supports the OCCAM 2 programming language.
  191. conformance:    Full implementation of OCCAM 2
  192. reference:    "OCCAM 2 reference manual", INMOS ltd, Prentice-Hall
  193.         International, ISBN 0-13-629312-3
  194. features:    The system generates ANSI-C code, implementing efficient
  195.         portable concurrency running on a single target processor.
  196.         Supports cross-linking with NAG Fortran-90 compiler.
  197. restriction:    GPL'ed
  198. requires:    C compiler, gmd compiler tools (available with compiler
  199.         sources) (Sun4 binaries available)
  200. ports:        Sun3, Sun4
  201. portability:    ? Should work on most UNIXes
  202. status:        actively developed, supported
  203. discussion:    comp.sys.transputer
  204. contact:    Dr Denis A Nicole <dan@ecs.soton.ac.uk>
  205. updated:    1-March-1994
  206.  
  207. language:    PCN
  208. package:    PCN
  209. version:    2.0
  210. parts:        compiler?, runtime, linker, libraries, tools, debugger, 
  211.         profiler, tracer
  212. author:        Ian Foster <foster@mcs.anl.gov>, Steve Tuecke
  213.         <tuecke@mcs.anl.gov>, and others
  214. location:    ftp pub/pcn/pcn_v2.0.tar.Z from info.mcs.anl.gov
  215. description:    PCN is a parallel programming system designed to improve
  216.         the productivity of scientists and engineers using parallel
  217.         computers.  It provides a simple language for specifying
  218.         concurrent algorithms, interfaces to Fortran and C, a
  219.         portable toolkit that allows applications to be developed
  220.         on a workstation or small parallel computer and run
  221.         unchanged on supercomputers, and integrated debugging and
  222.         performance analysis tools.  PCN was developed at Argonne
  223.         National Laboratory and the California Institute of
  224.         Technology.  It has been used to develop a wide variety of
  225.         applications, in areas such as climate modeling, fluid
  226.         dynamics, computational biology, chemistry, and circuit
  227.         simulation.
  228. ports:        (workstation nets): Sun4, NeXT, RS/6000, SGI
  229.         (multicomputers): iPSC/860, Touchstone DELTA
  230.         (shared memory multiprocessors): Symmetry/Dynix
  231. contact:    <pcn@mcs.anl.gov>
  232. updated:    1993/02/12
  233.  
  234. language:    LOOPN
  235. package:    LOOPN
  236. version:    ?
  237. parts:        compiler?, simulator
  238. author:        ?
  239. location:    ftp departments/computer_sci*/loopn.tar.Z from ftp.utas.edu.au
  240. description:    I wish to announce the availability of a compiler, simulator
  241.         and associated source control for an object-oriented petri net
  242.         language called LOOPN.    In LOOPN, a petri net is an extension
  243.         of coloured timed petri nets.  The extension means firstly that
  244.         token types are classes.  In other words, they consist of both
  245.         data fields and functions, they can be declared by inheriting
  246.         from other token types, and they can be used polymorphically.
  247.         The object-oriented extensions also mean that module or subnet
  248.         types are classes.  LOOPN has been developed over a period of
  249.         about 5 years at the University of Tasmania, where it has been
  250.         used in teaching computer simulation and the modelling of
  251.         network protocols.  A petri net is a directed, bipartite graph;
  252.         nodes are either places (represented by circles) or transitions
  253.         (represented by rectangles).  A net is marked by placing tokens
  254.         on places.  When all the places pointing to a transition (the
  255.         input places) have a token, the net may be fired by removing a
  256.         token from each input place and adding a token to each place
  257.         pointed to by the transition (the output places).  Petri nets
  258.         are used to model concurrent systems, particularly in the
  259.         network protocol area.
  260. contact:    Charles Lakos <charles@probitas.cs.utas.edu.au>
  261. updated:    1992/12/20
  262.  
  263. language:    Simula
  264. package:    Lund Simula
  265. version:    4.07
  266. parts:        ?
  267. author:        ?
  268. location:    ftp misc/mac/programming/+_Simula/* from rascal.ics.utexas.edu
  269. description:    ?
  270. contact:    Lund Software House AB / Box 7056 / S-22007 Lund, Sweden
  271. updated:    1992/05/22
  272.  
  273. language:    SR (Synchronizing Resources)
  274. package:    sr
  275. version:    2.0 
  276. parts:        ?, documentation, tests
  277. author:        ?
  278. location:    ftp sr/sr.tar.Z from cs.arizona.edu
  279. description:    SR is a language for writing concurrent programs.
  280.         The main language constructs are resources and
  281.         operations.  Resources encapsulate processes and
  282.         variables they share; operations provide the primary
  283.         mechanism for process interaction.  SR provides a novel
  284.         integration of the mechanisms for invoking and
  285.         servicing operations.  Consequently, all of local and
  286.         remote procedure call, rendezvous, message passing,
  287.         dynamic process creation, multicast, and semaphores are
  288.         supported.
  289. reference:    "The SR Programming Language: Concurrency in Practice", 
  290.          by Gregory R. Andrews and Ronald A. Olsson, Benjamin/Cummings 
  291.          Publishing Company, 1993, ISBN 0-8053-0088-0
  292. ports:        Sun-4, Sun-3, Decstation, SGI Iris, HP PA, HP 9000/300,
  293.         NeXT, Sequent Symmetry, DG AViiON, RS/6000, Multimax,
  294.         Apollo, and others.
  295. discussion:    info-sr-request@cs.arizona.edu
  296. contact:    sr-project@cs.arizona.edu
  297. updated:    1992/09/01
  298.  
  299. language:    UNITY
  300. package:    MasPar Unity
  301. version:    1.0
  302. parts:        translator(UNITY->MPL), documentation
  303. author:        Martin Huber, University of Karlsruhe, Germany
  304. location:    ftp pub/maspar/maspar_unity* from SanFrancisco.ira.uka.de
  305. description:    ?
  306. contact:    Lutz Prechelt <prechelt@ira.uka.de>
  307. updated:    ?
  308.  
  309. language:    UNITY
  310. package:    HOL-UNITY
  311. version:    2.1
  312. parts:        verification tool
  313. author:        ?
  314. location:    ?
  315. description:    ?
  316. contact:    Flemming Andersen <fa@tfl.dk> ?
  317. updated:    ?
  318.  
  319. Forth family languages
  320. -------------------------------------------------------------------------------
  321. category:    Forth family languages
  322. description:    These are the stack-based postfix languages, usually
  323.         interpreted, descended from the FORTH language originally
  324.         developed for telescope control.
  325. lref:        Postscript
  326. iref:        (mc6809) 6809, E-Forth
  327.  
  328. language:    Forth
  329. package:    TILE Forth
  330. version:    2.1
  331. parts:        interpreter
  332. author:        Mikael Patel <mip@sectra.se>
  333. location:    ftp tile-forth-2.1.tar.Z from a GNU archive site
  334. description:    Forth interpreter in C; many Forth libraries
  335. conformance:    Forth83
  336. restriction:    shareware/GPL
  337. ports:        unix
  338. updated:    1991/11/13
  339.  
  340. language:    Forth
  341. package:    cforth
  342. version:    ?
  343. parts:        interpreter
  344. author:        ?
  345. location:    comp.sources.unix archive volume 1
  346. description:    ?
  347. updated:    ?
  348.  
  349. language:    Forth
  350. package:    pfe (Portable Forth Environment)
  351. version:    0.9.4
  352. parts:        ?
  353. author:        Dirk Zoller <duz@roxi.rz.fht-mannheim.de>
  354. location:    ftp pub/unix/languages/pfe* from duz@roxi.rz.fht-mannheim.de
  355. description:    A Forth development system that tries to be correct,
  356.         complete, portable, usable and simple.    It doesn't try too
  357.         hard to be fast.
  358. conformance:    all dpANS word sets
  359. ports:        Linux, RS/6000, HP-UX
  360. portability:    high
  361. updated:    1994/05/02
  362.  
  363. language:    Forth
  364. package:    F68K
  365. version:    ?
  366. parts:        ?
  367. author:        ?
  368. location:    ftp atari/Languages/f68k.* from archive.umich.edu
  369. description:    a portable Forth system for Motorola 68k computers
  370. ports:        Atari ST/TT, Amiga, Sinclair QL and OS9
  371. portability:    very high for 68000 based systems
  372. contact:    Joerg Plewe <joerg.plewe@mpi-dortmund.mpg.de>
  373. updated:    1992/12/14
  374.  
  375. language:    Forth
  376. package:    51forth
  377. version:    ?
  378. parts:        ?
  379. author:        Scott Gehmlich
  380. location:    ftp giovanni/51forth.zip from [130.123.96.9]
  381. description:    source and documentation for a 8051 subroutine-
  382.         threaded forth
  383. contact:    ?
  384. updated:    1993/04/03
  385.  
  386. language:    Forth
  387. package:    M4th
  388. version:    ?
  389. parts:        interpreter, kernel, editor, application (8086 assembler),
  390.         hypertext-based documentation, decompiler
  391. author:        Nils M. Holm <fs29@rummelplatz.uni-mannheim.de>
  392. location:    ftp.uni-stuttgart.de:/pub/systems/pc/lang/forth/m4th10.zip
  393. description:    A small Forth implementation
  394. ports:        MSDOS.
  395. updated:    1994/06/28
  396.  
  397. language:    Forth
  398. package:    ThisForth
  399. version:    ?
  400. author:        ?
  401. location:    ftp pub/wilbaden/this4th-00B01.MAC.sit.* from ftp.netcom.com
  402. description:    ThisForth has been built for Macintosh and PowerMac.There is
  403.         still a single source for all incarnations. For now there is
  404.         just a console interface for the Mac and PowerMac.
  405. ports:        Macintosh, PowerMac
  406. updated:    1994/09/20
  407.  
  408. language:    Mops
  409. package:    Mops
  410. version:    2.6
  411. parts:        compiler, assembler, documentation, editor
  412. author:        Michael Hore <mikeh@zeta.org.au>
  413. location:    ftp://taygeta.oc.nps.navy.mil/pub/Forth/Mops/Mops26s.sea
  414.         ftp pub/MAC/Yerk from astro.uchicago.edu
  415. description:    Like Yerk, Mops is descended from the ex-commercial
  416.         object-oriented language Neon. Mops features an
  417.         optimizing native-code compiler; it is much faster
  418.         than Yerk, but less compatible with Neon. Mops
  419.         includes extensions such as multiple inheritance.
  420. conformance:    Includes a prologue for ANSI Forth.
  421. features:    + classes for all the standard Mac interface items
  422.         + can produce double-clickable applications
  423.         + extremely fast edit-compile cycle
  424.         + includes a PowerPC assembler
  425. ports:        Macintosh
  426. updated:    ?
  427.  
  428. language:    Kevo (Forth-like)
  429. package:    kevo
  430. version:    0.9b6
  431. parts:        interpreter, demo programs, user's guide, papers
  432. author:        Antero Taivalsaari <tsaari@cs.uta.fi>
  433. location:    ftp /pub/kevo/* from cs.uta.fi
  434. description:    Kevo is a prototype-based object-oriented language for
  435.         Macintosh Kevo features a unique prototype-based object model
  436.         (which is based neither on classes nor Self-style delegation),
  437.         multitasking (both preemptive and cooperative), dynamic memory
  438.         management, and an icon-based object browser and editor modeled
  439.         loosely after Mac Finder. Kevo has been built around a portable
  440.         threaded code interpreter, and is syntactically a close
  441.         derivative of Forth.
  442. ports:        Macintosh
  443. contact:    kevo-interest@ursamajor.uvic.ca
  444. updated:    1993/05/18
  445.  
  446. language:    Yerk
  447. package:    Yerk
  448. version:    3.62
  449. parts:        ?
  450. author:        ?
  451. location:    ftp pub/Yerk/? from oddjob.uchicago.edu
  452. description:    Yerk is an object oriented language based on a
  453.         Forth Kernel with some major modifications.  It
  454.         was originally known as Neon, developed and sold
  455.         as a product by Kriya Systems from 1985 to 1989.
  456.         Several of us at The University of Chicago have
  457.         maintained Yerk since its demise as a product.
  458.         Because of the possible trademark conflict that
  459.         Kriya mentions, we picked the name Yerk, which is
  460.         at least not an acronym for anything, but rather
  461.         stands for Yerkes Observatory, part of the Department
  462.         of Astronomy and Astrophysics at U of C.
  463. updated:    ?
  464.  
  465. compiler generators and related tools
  466. -------------------------------------------------------------------------------
  467. category:    compiler generators and related tools
  468. description:    Yacc, and the rest of its family
  469.  
  470. language:    ABC
  471. package:    Grammar analysis tools
  472. version:    1
  473. parts:        analysis tools, samples, documentation
  474. author:        Steven Pemberton <Steven.Pemberton@cwi.nl>
  475. location:    ftp /pub/abc/examples/grammar/* from ftp.cwi.nl
  476.         or http://www.cwi.nl/~steven/abc/examples/grammar
  477. description:    Grammar analysis program written in ABC (q.v.) for
  478.         answering such questions as "what are the start
  479.         symbols of all rules", "what symbols can follow this
  480.         symbol", "which rules are left recursive", and so on.
  481.         Includes a grammar of ISO Pascal.
  482. reference:    Ftp archive includes an article explaining the package.
  483. ports:        unix, MSDOS, atari, mac 
  484. contact:    Steven.Pemberton@cwi.nl
  485. updated:    1993/07/05
  486.  
  487. language:    ? attribute grammar ?
  488. package:    Alpha
  489. version:    pre-release
  490. parts:        semantic-analysis generator?, documentation(german)
  491. author:        Andreas Koschinsky <koschins@cs.tu-berlin.de>
  492. location:    from author
  493. description:    I have written a compiler generator. The generator is called
  494.         Alpha and uses attribute grammars as specification calculus.
  495.         Alpha is the result of a thesis at Technische Universitaet
  496.         Berlin. I am looking for someone who would like to test and use
  497.         Alpha.    Alpha generates compilers from a compiler
  498.         specification. This specification describes a compiler in
  499.         terminology of attribute grammars. Parser and Scanner are
  500.         generated by means of Bison and Flex.  Alpha generates an
  501.         ASE-evaluator (Jazayeri and Walter).  The documentation is in
  502.         german since it is a thesis at a german university.
  503. updated:    1993/02/16
  504.  
  505. language:    attribute-grammar extension of Yacc and Lex
  506. package:    Ox
  507. version:    G1.01
  508. parts:        Yacc/Lex/C preprocessor, tutorial, reference manual,
  509.         man page, examples, Ox-ready parsers (C, C++, Pascal, Ada,
  510.         Fortran)
  511. author:        Kurt Bischoff <bischoff@cs.iastate.edu>
  512. location:    ftp pub/ox/* from ftp.cs.iastate.edu
  513. description:    Ox generalizes the function of Yacc in the way that attribute
  514.         grammars generalize context-free grammars.  Ordinary Yacc and
  515.         Lex specifications may be augmented with definitions of
  516.         synthesized and inherited attributes written in C syntax.  Ox
  517.         checks these specifications for consistency and completeness,
  518.         and generates from them a program that builds and decorates
  519.         attributed parse trees.     Ox accepts a most general class of
  520.         attribute grammars.  The user may specify postdecoration
  521.         traversals for easy ordering of side effects such as code
  522.         generation.  Ox handles the tedious and error-prone details of
  523.         writing code for parse-tree management, so its use eases
  524.         problems of security and maintainability associated with that
  525.         aspect of translator development.  Ox is a preprocessor,
  526.         and extends the syntax and semantics of Yacc, Lex, and C.
  527. reference:    Most compiler textbooks have descriptions of attribute
  528.         grammars.
  529. features:    LALR(1), semantic-analyzer generation.
  530. bugs:        none known.  Report bugs to ox-project@cs.iastate.edu.
  531. restriction:    Use of Ox is free.  Ox-generated code is the property of
  532.         the Ox user.
  533. ports:        Unix
  534. contact:    ox-request@cs.iastate.edu
  535. updated:    1993/11/14
  536.  
  537. language:    attribute grammar
  538. package:    Rie
  539. version:    1.0.6
  540. parts:        compiler generator, attribute evaluator generator
  541. author:        Masataka Sassa, Kazuhiro Kuroishi, Teruhisa Hirai and
  542.         Yoshiki Ohshima
  543. location:    ftp pub/Rie/* from ftp.is.titech.ac.jp
  544. description:    Rie is a yet another compiler generator which is based on
  545.         a one-pass attribute grammar called ECLR-attributed grammar.
  546.         ECLR-attributed grammar is a superset of LR-attributed
  547.         grammar, and the generated compiler can evaluate both
  548.         inherited and synthesized attributes in parallel with LR
  549.         parsing without creating a parse tree.  The style of the
  550.         Rie description is derived from Yacc, but the semantic
  551.         section of a production may contain attribution rules.
  552.         Because the specification is based on attribute grammar,
  553.         user can integrate syntax and semantics in one description.
  554.         Rie also accepts shorthand notations, context conditions
  555.         and `local' attributes, which are useful to write actual
  556.         compilers.
  557.         The generated compiler is only 1.8 times slower than a
  558.         handwritten compiler.  Rie generates an attribute evaluator
  559.         in C source.
  560.         The package includes sample descriptions of PL/0 compiler
  561.         and of a sample of simple semantic analyzer, and documentation.
  562. reference:    Sassa, M., Ishizuka, H., and Nakata, I.:
  563.         Rie, a Compiler Generator Based on a One-Pass
  564.         Attribute Grammar, Res. Rep. C-107, Dept. of Inf.
  565.         Sci., Tokyo Institute of Technology
  566.         (Now, only a printed version is available.  Contact
  567.         rie-info@is.titech.ac.jp.  Electric version will be
  568.         available from ftp://ftp.is.titech.ac.jp/pub/Rie/Papers/* .)
  569. bugs:        Bug reports are welcome to rie-comments@is.titech.ac.jp.
  570. restriction:    Rie is implemented by modifying Bison, so Rie must be
  571.         also covered by GNU General Public License version 2
  572.         and Bison's restriction. 
  573. requires:    C compiler
  574. ports:        UNIX, DOS, etc. (same as bison) and Sharp X68000
  575. status:        We hope that it is stable
  576. contact:    rie-info@is.titech.ac.jp>
  577. updated:    1995/09/20
  578.  
  579. language:    BNF (Extended, actually a regular right part grammar)
  580. package:    Gray
  581. version:    4
  582. parts:        parser generator, documentation, examples
  583. author:        Martin Anton Ertl <anton@mips.complang.tuwien.ac.at>
  584. how to get:    ftp://server.complang.tuwien.ac.at/pub/forth/gray4.tar.gz
  585.         ftp://server.complang.tuwien.ac.at/pub/forth/gray4.zip
  586. description:    Gray is a parser generator written in Forth.  It takes 
  587.         grammars in an extended BNF and produces executable Forth 
  588.         code for recursive descent parsers.
  589. restrictions:    Copyleft
  590. requires:    ANS Forth
  591. conformance:    ANS Forth with some environmental dependences (see README)
  592. status:        supported
  593. ports:        Several ANS Forth Systems; mail author for old versions
  594.         running on Tile.
  595. updated:    1994/08/08
  596.  
  597. language:    BNF (??)
  598. package:    ZUSE
  599. version:    ?
  600. parts:        parser generator(?)
  601. author:        Arthur Pyster
  602. location:    ? Univ Calif at Santa Barbara ?
  603. description:    ll(1) paser generator
  604. requires:    Pascal
  605. updated:    1986/09/23
  606.  
  607. language:    BNF (??)
  608. package:    FMQ
  609. version:    ?
  610. parts:        paser generator w/error corrector generator
  611. author:        Jon Mauney
  612. location:    ftp from csczar.ncsu.edu
  613. description:    ?
  614. status:        ?
  615. contact:    ?
  616. updated:    1990/03/31
  617.  
  618. language:    BNF (??)
  619. package:    ATS (Attribute Translation System)
  620. version:    ?
  621. parts:        ?
  622. author:        ? University of Saskatchewan ?
  623. location:    ?
  624. description:    generates table-driven LL(1) parsers with full insert-only
  625.         error recovery.     It also handles full left-attribute semantic
  626.         handling, which is a dream compared to using YACC's parser
  627.         actions.
  628. status:        ?
  629. contact:    ? (suggested: Dave Bocking <bocking@cs.usask.ca>)
  630. updated:    1988/11/29
  631.  
  632. language:    BNF (Extended)
  633. package:    PCCTS (Purdue Compiler-Construction Tool Set)
  634. version:    1.33
  635. parts:        scanner generator, parser generator (pred-LL(k)), 
  636.         documentation, tutorial
  637. author:        Terence J. Parr <parrt@parr-research.com>, 
  638.         Will E. Cohen <cohenw@ecn.purdue.edu>, 
  639.         Henry G. Dietz <hankd@ecn.purdue.edu>,
  640.         Russell W. Quong <quong@ecn.purdue.edu>
  641. location:    ftp://ftp.parr-research.com/pub/pccts/
  642.     UK:        ftp://src.doc.ic.ac.uk/computing/programming/languages/tools/pccts/ 
  643. description:    PCCTS is similar to a highly integrated version of 
  644.         YACC and LEX; where ANTLR (ANother Tool for Language 
  645.         Recognition) corresponds to YACC and DLG (DFA-based 
  646.         Lexical analyzer Generator) functions like LEX.
  647.         PCCTS grammars contain specifications for lexical and 
  648.         syntactic analysis with selective backtracking 
  649.         ("infinite lookahead"), semantic predicates,
  650.         intermediate-form construction and sophisticated
  651.         parser exception handling.  Rules may employ Extended BNF 
  652.         (EBNF) grammar constructs and may define parameters, 
  653.         return values and local variables. Languages described in 
  654.         PCCTS are recognized via predicated-LL(k) parsers 
  655.         constructed in pure, human-readable, C/C++ code; the C++ 
  656.         programming interface is very good.  The documentation is 
  657.         complete, but distributed over an original manual plus
  658.         multiple release notes.     A book is in the works and should 
  659.         be available 1Q 1996.
  660.         A recently-developed PCCTS-based C++ parser is available 
  661.         at the ftp site; it is an *initial* release and was 
  662.         derived from the grammar built by NeXT, Inc..
  663. restriction:    The tool is totally public domain--it has no legal 
  664.         restrictions on its use or incorporation into commercial 
  665.         applications.
  666. ports:        Unix, DOS, Windows, OS/2, Macintosh, NeXT
  667. portability:    very high
  668. discussion:    comp.compilers.tools.pccts
  669. contact:    Terence J. Parr <parrt@acm.org>
  670. updated:    1995/10/05
  671.  
  672. language:    BNF (very extended), yacc
  673. package:    PRE-CC Xtended
  674. version:    2.30
  675. parts:        library, parser generator (LL(oo)), translator(yacc->)
  676. author:        Peter Breuer
  677. location:    FTP: ftp.comlab.ox.ac.uk:/pub/Programs/preccx.tar.Z (Unix)
  678.              ftp.comlab.ox.ac.uk:/pub/Programs/preccx.msdos (MS-DOS)
  679.              ftp.comlab.ox.ac.uk:
  680.             /pub/Documents/techpapers/Jonathan.Bowen/preccx-uug.ps.Z
  681.         (more recent versions available by subscription)
  682.         URL: http://www.comlab.ox.ac.uk/archive/redo/precc.html
  683. description:    PRECCX is an infinite-lookahead compiler compiler for context
  684.         dependent grammars.  The generated code is ANSI C.
  685.         Specification scripts are in very EBNF with inherited and
  686.         synthetic attributes allowed. Scripts can be compiled in
  687.         separate modules, and linked together later.  Meta-production
  688.         rules allowed.    The technology is essentially LL(oo) with
  689.         optimizations. A converter for yacc scripts is available.
  690. reference:    "The PRECC Compiler-Compiler" by P.T. Breuer and J.P. Bowen.
  691.          In E. Davies and A. Findlay (eds.),
  692.          Proc. UKUUG/SUKUG Joint New Year 1993 Conference,
  693.          St. Cross Centre, Oxford, UK, 6-8 January 1993,
  694.          ISBN 1 873611 06 4 (UKUUG), 0 9520700 0 6 (SUKUG)
  695.          UKUUG/SUKUG Secretariat, Owles Hall, Buntingford,
  696.          Herts SG9 9PL, UK, pp 167-182, 1993.
  697.         "A PREttier Compiler-Compiler: Generating Higher Order
  698.          Parsers in C"    P.T. Breuer and J.P. Bowen.
  699.          Oxford University Computing Laboratory Technical Report
  700.          PRG-TR-20-92, 25pp, November 1992. Accepted by
  701.          Software - Practice and Experience, 1994.
  702.          ftp pub/Documents/techreports/TR-20-92.ps.Z 
  703.          from ftp.comlab.ox.ac.uk
  704. ports:        unix, MS-DOS
  705. contact:    Peter Breuer <ptb@comlab.ox.ac.uk>,
  706.         Jonathan Bowen <bowen@comlab.ox.ac.uk>
  707. updated:    1994/06/02
  708.  
  709. language:    BNF (??)
  710. package:    LLGen
  711. version:    ?
  712. parts:        parser generator
  713. author:        ? Fischer and LeBlanc ?
  714. location:    ? ftp from csczar.ncsu.edu ?
  715. description:    LL(1) parser generator
  716. conformance:    subset of FMQ
  717. reference:    "Crafting A Compiler", by Fischer and LeBlanc
  718. status:        ?
  719. contact:    ?
  720. updated:    1990/03/31
  721.  
  722. language:    BNF
  723. package:    wacco
  724. version:    1.1, July 91
  725. parts:        parser generator
  726. author:        Parag Patel (parag@netcom.com, parag@sde.hp.com)
  727. location:    comp.sources.misc volume ?
  728. description:    Wacco is a recursive descent LL(1) parser generator that
  729.         generates C++ code.  Its syntax is similar to YACC
  730.         with a lot of sugaring.     It can also do attribute-driven
  731.         parsing.  The source is bootstrapped wacco code.
  732. ports:        HP-UX s300 and s800, Sparc, and 4.3BSD (on HP)
  733. portability:    Host machine must be 32 bits.
  734. contact:    ?
  735. updated:    ?
  736.  
  737. language:    BNF (Extended), BNF (yacc)
  738. package:    GMD Toolbox for Compiler Construction (aka Cocktail)
  739. version:    9209
  740. parts:        lalr: parser generator (LALR(1) -> C, Modula-2),
  741.         ell : parser generator (LL(1) -> C, Modula-2),
  742.         rex : scanner generator (-> C, Modula-2),
  743.         bnf : translator (Extended BNF -> BNF),
  744.         y2l : translator (BNF (yacc) -> Extended BNF),
  745.         ast : abstract syntax tree generator,
  746.         ag  : attribute-evaluator generator,
  747.         puma: transformation of abstract syntax tree using 
  748.               pattern-matching
  749.         documentation, examples
  750. author:        Josef Grosch <grosch@cocolab.sub.com> and others
  751. location:    ftp /gmd/cocktail from ftp.gmd.de           
  752.         ftp /pub/unix/programming/compilerbau 
  753.         from ftp.rus.uni-stuttgart.de
  754.         ftp /pub/programming/languages/compiler-compiler/cocktail 
  755.         from ftp.th-darmstadt.de     
  756.         ftp /languages/tools/gmd from src.doc.ic.ac.uk          
  757.         ftp /.3/plan/gmd from gatekeeper.dec.com      
  758.     OS/2:    ftp.eb.ele.tue.nl/pub/src/cocktail/dos-os2.zoo 
  759. description:    A huge set of compiler building tools. 
  760. requires:    (MS-DOS and MS-Windows only) DJ Delorie's DOS extender (go32)
  761.         (OS/2 only) emx programming environment for OS/2
  762. ports:        Unix, Linux, MS-DOS, MS-Windows, OS/2
  763. portability:    very high
  764. status:        version 9209 is unsupported, Cocktail is actively developed,
  765.         versions 9401 and higher are commercial
  766. discussion:    subscribe to Cocktail using listserv@eb.ele.tue.nl
  767. support:    Josef Grosch <grosch@cocolab.sub.com>
  768. contact:    Josef Grosch <grosch@cocolab.sub.com>
  769.     OS/2:    Willem Jan Withagen <wjw@eb.ele.tue.nl>
  770. updated:    1992/10/01
  771.  
  772. language:    BNF (??)
  773. package:    T-gen
  774. version:    2.1
  775. parts:        parser generator, documentation, ?
  776. author:        Justin Graver <graver@comm.mot.com>
  777. location:    ftp pub/st80_r41/T-gen2.1/* from st.cs.uiuc.edu
  778. description:    T-gen is a general-purpose object-oriented tool for the 
  779.         automatic generation of string-to-object translators. 
  780.         It is written in Smalltalk and lives in the Smalltalk 
  781.         programming environment.  T-gen supports the generation 
  782.         of both top-down (LL) and bottom-up (LR) parsers, which 
  783.         will automatically generate derivation trees, abstract 
  784.         syntax trees, or arbitrary Smalltalk objects.  The simple 
  785.         specification syntax and graphical user interface are 
  786.         intended to enhance the learning, comprehension, and 
  787.         usefulness of T-gen.
  788. requires:    Smalltalk-80
  789. ports:        ParcPlace Objectworks/Smalltalk 4.0 & 4.1
  790. updated:    1992/10/18
  791.  
  792. language:    BNF 
  793. package:    Eli Compiler Construction System
  794. version:    3.8
  795. parts:        scanner generator(regular expressions->C, C++), documentation
  796.         parser generator(LALR->C, C++), documentation
  797.         attribute grammar generator(LIDO->C, C++), documentation
  798.         definition table generator(PDL->C, C++), documentation
  799.         tree pattern-matcher generator(OIL->C, C++), documentation
  800.         unparser generator(PTG->C, C++), documentation
  801. author:        ?
  802. location:    ftp pub/cs/distribs/eli/* from ftp.cs.colorado.edu
  803.     Europe:    ftp unix/eli from ftp.uni-paderborn.de
  804.         or http://www.cs.colorado.edu/~eliuser
  805. description:    Eli integrates off-the-shelf tools and libraries with
  806.         specialized language processors to generate complete compilers
  807.         quickly and reliably.  It simplifies the development of new
  808.         special-purpose languages, implementation of existing languages
  809.         on new hardware and extension of the constructs and features of
  810.         existing languages.
  811. ports:        Sun-4 (SunOS 4 & 5), Ultrix/MIPS, RS/6000, HP-UX, SGI, Linux
  812. discussion:    <eli-request@cs.colorado.edu>
  813. bugs:        <elibugs@cs.colorado.edu>
  814. contact:    <compiler@cs.colorado.edu>, <compiler@uni-paderborn.de>
  815. updated:    1993/11/01
  816.  
  817. language:    BNF
  818. package:    tom (demo for Tomita Parsing algorithm)
  819. version:    1
  820. parts:        parser generator, parser interpreter, examples, documentation
  821. author:        Mark Hopkins <mark@omnifest.uwm.edu>
  822. location:    iecc.com in pub/files/tomita.tar.gz
  823.         alt.sources archive from October 4, 1993.
  824. description:    An implementation of the Tomita parsing algorithm using
  825.         LR(0) tables and dynamic programming.
  826. reference:    Kluwer '91, _Generalized LR Parsing_, Tomita ed., 0-7923-9201-9
  827.         "The Tomita Parsing Algorithm ...", comp.compilers May 20, 1994
  828. features:    Cyclic context free grammars are processed.
  829. portability:    System independent
  830. updated:    1994/10/03
  831.  
  832. language:    BNF (yacc)
  833. package:    NewYacc
  834. version:    1.0
  835. parts:        parser generator, documenation
  836. author:        Jack Callahan <callahan@mimsy.cs.umd.edu> 
  837. location:    ftp src/newyacc.1.0.*.Z from flubber.cs.umd.edu
  838. description:    [someone want to fill it in? --ed]
  839. reference:    see Dec 89 CACM for a brief overview of NewYacc.
  840. updated:    1992/02/10
  841.  
  842. language:    BNF (yacc)
  843. package:    bison
  844. version:    1.22
  845. parts:        parser generator, documentation
  846. author:        Robert Corbett and Richard Stallman 
  847. location:    ftp bison-1.16.tar.Z from a GNU archive site
  848. description:    ?
  849. bugs:        bug-gnu-utils@prep.ai.mit.edu
  850. restriction:    !! will apply the GNU General Public License to *your* code !!
  851. ports:        unix, atari, ?
  852. updated:    1993/09/14
  853.  
  854. language:    BNF (yacc), Lex
  855. package:    Bison++ and Flex++
  856. version:    1.21-8 (bison), 2.3.8-7 (flex), 5 (flex++bison++misc)
  857. parts:        translator, documentation, postscript, examples, DOS binary
  858. author:        Alain Coetmeur <coetmeur@icdc.fr>
  859. location:    cse.unl.edu in ~ftp/pub/nandy/c++/tools/LATEST/*
  860.     Europe:    mirrored on ftp.th-darmstadt.de
  861. description:    A retargeting of bison-1 and flex 2.3 to C++, able to
  862.         generate classes.  As with Bison and Flex, these two tools
  863.         are independent but designed for mutual compatibility.
  864.         The version numbering has been changed for consistency with
  865.         Flex and Bison, so versions of flex3.0.x and bison2.x of this
  866.         package are are actually earlier versions, not later.
  867.         Examples are provided to help in getting started.
  868. conformance:    Mostly compatible with flex2.3 and bison 1 in C, apart
  869.         from the ability to generate classes.
  870. features:    Almost all symbol names can be redefined, parsers can be
  871.         shared in C and C++ in the same headers... very extensible...
  872.         flex++ support IOSTREAM and STDIO in C++.
  873. bugs:        Contact coetmeur@icdc.fr (current author and maintainer).
  874. restriction:    GNU License for bison++. Same as flex for flex++.
  875. ports:        SUNOS4, DOS, and same ports as Flex/Bison, Windows NT (tested)
  876. portability:    Larger memory model required on DOS (DOS binary supplied).
  877. status:        active, supported, might not support flex 2.4
  878. discussion:    coetmeur@icdc.fr, news: comp.compiler, or comp.lang.c++
  879. help:        coetmeur@icdc.fr, news: comp.compiler, or comp.lang.c++
  880.         for substantial problems.
  881. support:    see help, no commercial support. (volunteer ?)
  882. announcements:    mail list locally maintained by coetmeur@icdc.fr,
  883.         news: comp.compiler comp.lang.c++
  884. updated:    1994/02/07
  885. lref:        C
  886. lref:        C++
  887. lref:        Lex
  888. lref:        yacc
  889.  
  890. language:    BNF (yacc)
  891. package:    bison-A2.3
  892. version:    2.3 (corresponds to gnu bison 1.22)
  893. parts:        parser generator, C-parser, C++parser, documentation
  894. author:        Fred Hansen <wjh+@cmu.edu>
  895. location:    ftp://ftp.andrew.cmu.edu/pub/AUIS/bison/bison-A2.2.tar.gz
  896.         also in contrib/andrew on the XV11R6 distribution in 
  897.         directories overhead/bison, overhead/mkparser (but not the 
  898.         C++ version of the parser)
  899. description:    This is the standard gnu bison with a number of improvments:
  900.         license-free parsers for C and C++, only one external symbol
  901.         for each grammar, permits multiple grammars per application,
  902.         better error reports on the grammar.
  903. conformance:    grammars are the same as bison and yacc; but run-time errors
  904.         are handled differently, so semantic rules must be changed
  905. features:    tokens in the grammar can be expressed as ">=" instead of GE
  906. bugs:        send bugs to info-andrew-bugs@andrew.cmu.edu
  907. restriction:    none (unless you use the native gnu-bison parser)
  908. ports:        has been tested on most Unix platforms
  909. portability:    generation of names for temp files is system dependent.
  910. discussion:    info-andrew@andrew.cmu.edu   (mirrored to comp.soft-sys.andrew)
  911. support:    supported by the Andrew Consortium
  912. contributions:    your organization is invited to join the Andrew Consortium
  913.         info-andrew-request@andrew.cmu.edu
  914. updated:    1994/05/09
  915.  
  916. language:    BNF (yacc)
  917. package:    ? jaccl ?
  918. version:    ?
  919. parts:        parser generator
  920. author:        Dave Jones <djones@megatest.uucp>
  921. location:    ?
  922. description:    a LR(1) parser generator
  923. updated:    1989/09/08
  924.  
  925. language:    BNF (yacc)
  926. package:    byacc (Berkeley Yacc)
  927. version:    1.9
  928. parts:        parser generator
  929. author:        Robert Corbett <Robert.Corbett@eng.sun.com>
  930. location:    ftp pub/byacc.tar.1.9.Z from vangogh.CS.Berkeley.EDU
  931. description:    probably the best yacc variant around.    Previously known as
  932.         Zoo, and before that, as Zeus.
  933. updated:    1993/02/22
  934.  
  935. language:    BNF (yacc), Lex
  936. package:    Lex/Yacc for Turbo Pascal uploaded
  937. version:    ?
  938. parts:        parser generator, scanner generator, documentation?
  939. author:        ?
  940. location:    iecc.com (140.186.81.1) at pub/file/lyprg.zip.
  941. description:    Lex and Yacc retargeted to Pascal.
  942. contact:    ? dpoole@hydrogen.oscs.montana.edu (David Poole)
  943. updated:    1993/07/02
  944.  
  945. language:    BNF (yacc), Ada
  946. package:    aflex-ayacc
  947. version:    1.2a
  948. parts:        parser generator (Ada), scanner generator (Ada)
  949. author:        IRUS (Irvine Research Unit in Software)
  950. location:    ftp pub/irus/aflex-ayacc_1.2a.tar.Z from liege.ics.uci.edu
  951. description:    Lex and Yacc equivalents that produce Ada output
  952. announcements:    irus-software-request@ics.uci.edu
  953. contact:    irus-software-request@ics.uci.edu
  954. updated:    1993/01/06
  955.  
  956. language:    BNF (yacc), Perl
  957. package:    perl-byacc
  958. version:    1.8.2
  959. parts:        parser-generator(perl)
  960. author:        Rick Ohnemus <Rick_Ohnemus@Sterling.COM>
  961. location:    ftp local/perl-byacc.tar.Z from ftp.sterling.com
  962. description:    A modified version of byacc that generates perl code.  Has '-p'
  963.         switch so multiple parsers can be used in one program (C or
  964.         perl).
  965. portability:    Should work on most (?) Unix systems.  Also works with 
  966.         SAS/C 6.x on AMIGAs.
  967. updated:    1993/01/24
  968.  
  969. language:    BNF (yacc), Standard ML
  970. package:    New SML-Yacc and SML-Lex
  971. version:    ??
  972. parts:        ??
  973. author:        Andrew Appel <appel@tyrolia.princeton.edu>
  974. location:    princeton.edu in pub/ml, files mlyacc94.tar.Z, lexgen94.tar.Z.
  975. description:    ??
  976. updated:    1994/05/23
  977.  
  978. language:    BNF (variant), Icon
  979. package:    Ibpag2 (Icon-Based Parser Generation System 2)
  980. version:    1.2
  981. parts:        parser generator (Icon, SLR(1))
  982. author:        Richard L. Goerwitz <goer@midway.uchicago.edu>
  983. location:    comp.sources.misc volume 44
  984. description:    Ibpag2 is a parser generator for Icon.    It does most
  985.         of what you would expect.  Latest version can handle both
  986.         SLR(1) and even GLR (Tomita) grammars.
  987. ports:        unix
  988. portability:    ? (Unix dependencies?)
  989. updated:    1994/09/25
  990.  
  991. language:    BNF ?, Gofer
  992. package:    Ratatosk (?)
  993. version:    ?
  994. parts:        parser generatr (Gofer)
  995. author:        Torben AEgidius Mogensen <torbenm@diku.dk>
  996. location:    ftp pub/diku/dists/Ratatosk.tar.Z from ftp.diku.dk
  997. description:    Ratatosk is a SLR parser generator in Gofer (a Haskell variant)
  998.         that generates purely functional parsers (also in Gofer). Even
  999.         though the sematic value of a production is a function of the
  1000.         attributes of its right-hand side (and thus apparently purely
  1001.         synthesized), inherited attributes are easily simulated by
  1002.         using higher order functions.
  1003. ports:        ?
  1004. updated:    ?
  1005.  
  1006. language:    BNF
  1007. package:    lalr.ss - An LALR(1) parser generator
  1008. version:    0.9 
  1009. parts:        parser generator (->Scheme)
  1010. author:        Mark Johnson <mj@cs.brown.edu>
  1011. location:    ftp new/lalr.shar from the Scheme Repository
  1012. description:    A LALR(1) parser generator in and for Scheme.
  1013. requires:    Scheme
  1014. updated:    1993/05/24
  1015.  
  1016. language:    BURS ?
  1017. package:    Iburg
  1018. version:    ?
  1019. parts:        parser generator?
  1020. author:        Christopher W. Fraser <cwf@research.att.com>, David R. Hanson
  1021.         <drh@princeton.edu>, Todd A. Proebsting <todd@cs.arizona.edu>
  1022. location:    ftp pub/iburg.tar.Z from ftp.cs.princeton.edu
  1023. description:    Iburg is a program that generates a fast tree parser.  It is
  1024.         compatible with Burg. Both programs accept a cost-augmented
  1025.         tree grammar and emit a C program that discovers an optimal
  1026.         parse of trees in the language described by the grammar. They
  1027.         have been used to construct fast optimal instruction selectors
  1028.         for use in code generation.  Burg uses BURS; Iburg's matchers
  1029.         do dynamic programming at compile time.
  1030. updated:    1993/02/10
  1031.  
  1032. language:    BNF variant, Python
  1033. package:    kwParsing ?
  1034. version:    ?
  1035. parts:        parser generator
  1036. author:        Aaron Watters <aaron@vienna.njit.edu>
  1037. location:    ftp pub/python/kwParsing.* from ftp.markv.com
  1038. description:    A parser generator written in Python for Python.  This package
  1039.         may be appropriate for experimental translators, code
  1040.         generators, interpreters, or compilers; for instructinal
  1041.         purposes; among other possibility.  The documentation gives a
  1042.         brief introduction to the conventions and basic ideas of
  1043.         parsing.
  1044. updated:    1994/09/24
  1045.  
  1046. language:    Candle, IDL (Interface Description Language)
  1047. package:    Scorpion System
  1048. version:    6.0
  1049. parts:        software development environment for developing
  1050.         software development environments, documentation
  1051. author:        University of Arizona
  1052. location:    ftp scorpion/* from cs.arizona.edu
  1053. description:    20 tools that can be used to construct specialized
  1054.         programming environments.
  1055.         The Scorpion Project was started by Prof. Richard
  1056.         Snodgrass as an outgrowth of the SoftLab Project (which pro-
  1057.         duced the IDL Toolkit) that he started when he was at the
  1058.         University of North Carolina.  The Scorpion Project is
  1059.         directed by him at the University of Arizona and by Karen
  1060.         Shannon at the University of North Carolina at Chapel Hill.
  1061. reference:    "The Interface Description Language: Definition and Use," 
  1062.         by Richard Snodgrass, Computer Science Press, 1989,
  1063.         ISBN 0-7167-8198-0
  1064. ports:        Sun-3, Sun-4, Vax, Decstation, Iris, Sequent, HP9000
  1065. discussion:    info-scorpion-request@cs.arizona.edu
  1066. contact:    scorpion-project@cs.arizona.edu
  1067. updated:    1993/11/04
  1068.  
  1069. language:    COCOL (EBNF variant)
  1070. package:    COCO/R
  1071. version:    1.39 (Modula, Pascal, Oberon)
  1072. parts:        parser generator(LL(1))
  1073. author:        Hanspeter Moessenboeck <moessenboeck@ssw.uni-linz.ac.at>
  1074.         Port to Modula-2 done by Marc Brandis, Christof Brass 
  1075.         and Pat Terry <cspt@cs.ru.ac.za>
  1076.         Port to Turbo Pascal done by Pat Terry and Volker Pohlers
  1077.         <pohlers@escher.hrz.fh-stralsund.de>
  1078. location:    ftp.inf.ethz.ch:/pub/software/Coco
  1079.         ftp.psg.com:/pub/modula-2/coco
  1080.         cs.ru.ac.za:/pub/coco
  1081.         ftp.fit.qut.edu.au:/pub/coco
  1082. description:    Coco/R generates recursive descent parsers and their
  1083.         associated scanners from attributed grammars.  Coco/R can
  1084.         bootstrap itself to generate its own driver, parser, scanner,
  1085.         and semantic evaluator from the attributed grammar CR.ATG.
  1086.         This grammar thus serves as an an example of how to write
  1087.         compiler descriptions for Coco.     There are also other simpler
  1088.         examples showing its use.
  1089. reference:    _A compiler generator for microcomputers_, by Rechenberg 
  1090.         and Moessenboeck (Prentice Hall, 1989, 0-13-155136-1)
  1091. bugs:        MS-DOS related versions: Pat Terry <cspt@cs.ru.ac.za>
  1092.         Other: Hanspeter Moessenboeck 
  1093.                <moessenboeck@ssw.uni-linz.ac.at>
  1094. requires:    Oberon, Modula-2, or Turbo Pascal
  1095. ports:        MS-DOS: TopSpeed Modula-2; FST 2.0; FST 3.1 - 3.5;
  1096.         StonyBrook QuickMod 2.2; Logitech 3.03; Turbo Pascal.
  1097.         Macintosh: Apple MacMeth.
  1098.         Unix/Linux/FreeBSD: Mocka, Gardens Point.
  1099. status:        Oberon version is freely available.  Modula-2 version is
  1100.         free to academic sites; commercial use requires a license
  1101. updated:    1995/11/01
  1102.  
  1103. language:    COCOL (EBNF variant)
  1104. package:    Coco/R for C
  1105. version:    1.05
  1106. author:        Francisco Arzu <farzu@uvg.edu.gt>
  1107. location:    cs.ru.ac.za:/pub/coco/cocorc05.zip
  1108. description:    This is a C version of Professor Moessenboeck's Coco/R. 
  1109.         Coco/R generates recursive descent parsers and their 
  1110.         associated scanners from attributed grammars. Semantic
  1111.         attributes and semantic actions are a dream compared to 
  1112.         YACC's and Lex's ones. There are many examples showing
  1113.         its use, including itself (it can bootstrap itself to 
  1114.         generate its own driver, parser, scanner, and semantic
  1115.         evaluator from the attributed grammar CR.ATG) and a 
  1116.         simple C like language which uses Iburg to generate 
  1117.         intel 80x86 assemble language.
  1118. parts:        parser generator(LL(1)), scanner generator, documentation,
  1119. examples
  1120. bugs:        Francisco Arzu <farzu@uvg.edu.gt>
  1121. requires:    Standard C compiler
  1122. ports:        Many UNIX systems(Linux, UnixWare, SunOS, IBM AIX, HP-UX, etc) 
  1123.         MS-DOS and OS/2
  1124. restrictions:    Next release will be under the GNU General Public License
  1125. updated:    1995/11/01
  1126. lref:        C
  1127.  
  1128. language:    EAG (Extended Affix Grammar)
  1129. package:    EAG
  1130. version:    first public release
  1131. parts:        recognizer generator, transduccer generator, 
  1132.         translator generator, editor generator, documentation
  1133. author:        Marc Seutter <marcs@cs.kun.nl>
  1134. location:    ftp pub/eag/* from hades.cs.kun.nl
  1135. description:    The Extended Affix Grammar formalism, or EAG for short, is a
  1136.         formalism for describing both the context free and the context
  1137.         sensitive syntax of languages.    EAG is a member of the family
  1138.         of two-level grammars. They are very closely related to
  1139.         two-level van Wijngaarden grammars.  The EAG compiler will
  1140.         generate either a recognizer or a transducer or a translator
  1141.         or a syntax directed editor for a language described in the EAG
  1142.         formalism.
  1143. updated:    1993/09/14
  1144.  
  1145. language:    EBNF
  1146. package:    ETO
  1147. version:    test version
  1148. parts:        parser, postscript document, examples
  1149. author:        Lin Li <china@bernina.ethz.ch>
  1150. location:    FTP: fi.ethz.ch under /pub/ETO/eto-09.*
  1151. description:    ETO is an object oriented universal syntax checker.  It takes
  1152.         an EBNF specification for a language and then uses it on an
  1153.         input file to check its syntax.
  1154. updated:    1994/06/03
  1155.  
  1156. language:    lex
  1157. package:    flex
  1158. version:    2.5.2
  1159. parts:        scanner generator
  1160. author:        Vern Paxson <vern@ee.lbl.gov>
  1161. location:    ftp flex-2.5.2.tar.Z from a GNU archive site or ftp.ee.lbl.gov
  1162. description:    A POSIX-compliant "lex" scanner generator.
  1163. bugs:        vern@ee.lbl.gov or bug-gnu-utils@prep.ai.mit.edu
  1164. updated:    1995/04/28
  1165.  
  1166. language:    Regular Expressions
  1167. package:    re2c
  1168. version:    alpha
  1169. parts:        translator (re->c)
  1170. author:        ?? peter@csg.uwaterloo.ca
  1171. location:    csg.uwaterloo.ca in /pub/peter/re2c.0.5.tar.gz
  1172. description:    A regular expression to C converter.
  1173. updated:    ?? 1994/04/29
  1174.  
  1175. language:    Pascal, Lisp, APL, Scheme, SASL, CLU, Smalltalk, Prolog
  1176. package:    Tim Budd's C++ implementation of Kamin's interpreters
  1177. version:    ?
  1178. parts:        interpretors, documentation
  1179. author:        Tim Budd <budd@cs.orst.edu>
  1180. location:    ? ftp pub/budd/kamin/*.shar from cs.orst.edu ?
  1181. description:    a set of interpretors written as subclasses based on
  1182.         "Programming Languages, An Interpreter-Based Approach",
  1183.         by Samuel Kamin.
  1184. requires:    C++
  1185. status:        ? 
  1186. contact:    Tim Budd <budd@fog.cs.orst.edu>
  1187. updated:    1991/09/12
  1188.  
  1189. language:    Relation Grammar
  1190. package:    rl
  1191. version:    ?
  1192. parts:        ?
  1193. author:        Kent Wittenburg <kentw@bellcore.com>
  1194. location:    fto rl/* from flash.bellcore.com
  1195. description:    The RL files contain code for defining Relational Grammars and
  1196.         using them in a bottom-up parser to recognize and/or parse
  1197.         expressions in Relational Languages.  The approach is a
  1198.         simplification of that described in Wittenburg, Weitzman, and
  1199.         Talley (1991), Unification-Based Grammars and Tabular Parsing
  1200.         for Graphical Languages, Journal of Visual Languages and
  1201.         Computing 2:347-370.
  1202.         This code is designed to support the definition and parsing of
  1203.         Relational Languages, which are characterized as sets of
  1204.         objects standing in user-defined relations.  Correctness and
  1205.         completeness is independent of the order in which the input is
  1206.         given to the parser.  Data to be parsed can be in many forms as
  1207.         long as an interface is supported for queries and predicates
  1208.         for the relations used in grammar productions.    To date, this
  1209.         software has been used to parse recursive pen-based input such
  1210.         as math expressions and flowcharts; to check for data
  1211.         integrity and design conformance in databases; to
  1212.         automatically generate constraints in drag-and-drop style
  1213.         graphical interfaces; and to generate graphical displays by
  1214.         parsing relational data and generating output code.
  1215. requires:    Common Lisp
  1216. ports:        Allegro Common Lisp 4.1, Macintosh Common Lisp 2.0
  1217. updated:    1992/10/31
  1218.  
  1219. language:    S/SL (Syntax Semantic Language)
  1220. package:    ssl
  1221. version:    ?
  1222. parts:        parser bytecode compiler, runtime
  1223. author:        Rick Holt, Jim Cordy <cordy@qucis.queensu.ca> (language),
  1224.         Rayan Zachariassen <rayan@cs.toronto.edu> (C implementation)
  1225. location:    ftp pub/ssl.tar.Z from neat.cs.toronto.edu
  1226. description:    A better characterization is that S/SL is a language
  1227.         explicitly designed for making efficient recusive-descent
  1228.         parsers.  Unlike most other languages, practicially the
  1229.         LEAST expensive thing you can do in S/SL is recur.  A
  1230.         small language that defines input/output/error token
  1231.         names (& values), semantic operations (which are really
  1232.         escapes to a programming language but allow good
  1233.         abstration in the pseudo-code), and a pseudo-code
  1234.         program that defines a grammar by the token stream the
  1235.         program accepts.  Alternation, control flow, and
  1236.         1-symbol lookahead constructs are part of the
  1237.         language.  What I call an S/SL "implementation", is a
  1238.         program that compiles this S/SL pseudo-code into a
  1239.         table (think byte-codes) that is interpreted by the
  1240.         S/SL table-walker (interpreter).  I think the pseudo-code
  1241.         language is LR(1), and that the semantic mechanisms turn it
  1242.         into LR(N) relatively easily.
  1243.         + more powerful and cleaner than yac
  1244.         - slower than yacc
  1245. reference:    Cordy, J.R. and Holt, R.C. [1980] Specification of S/SL:
  1246.          Syntax/Semantic Language, Computer Systems Research
  1247.          Institute, University of Toronto.
  1248.         "An Introduction to S/SL: Syntax/Semantic Language" by
  1249.          R.C. Holt, J.R. Cordy, and D.B. Wortman, in ACM Transactions
  1250.          on Programming Languages and Systems (TOPLAS), Vol 4, No.
  1251.         2, April 1982, Pages 149-178.
  1252. updated:    1989/09/25
  1253.  
  1254. language:    TXL
  1255. package:    TXL: Tree Transformation Language
  1256. version:    7.4
  1257. parts:        translator, documentation, tutorial, examples
  1258. author:        Jim Cordy <cordy@qucis.queensu.ca>
  1259. location:    ftp pub/txl/* from ftp.qucis.queensu.ca
  1260. description:    TXL is a language for performing source to source
  1261.         transformations and is well suited for rapidly prototyping
  1262.         new languages and language processors.    It has also been used to
  1263.         prototype specification languages, command languages, and more
  1264.         traditional program transformation tasks such as constant
  1265.         folding, type inference, source optimization and reverse
  1266.         engineering.  TXL takes as input an arbitrary context-free
  1267.         grammar in extended BNF-like notation, and a set of
  1268.         show-by-example transformation rules to be applied to inputs
  1269.         parsed using the grammar.  TXL is a functional/rule-based
  1270.         hybrid programming language, using the paradigm of structural
  1271.         transformation.
  1272. reference:    Several listed in software documentation
  1273. updated:    1993/08/04
  1274.  
  1275. language:    BNF (extended)
  1276. package:    SORCERER: A Simple Tree Parser and Rewrite Generator
  1277. version:    1.00B15
  1278. parts:        translator, documentation, tutorial, examples
  1279. author:        Terence Parr <parrt@parr-research.com>, 
  1280.         Aaron Sawdey <sawdey@lcse.umn.edu>, 
  1281.         Gary Funck <gary@intrepid.com>
  1282. location:    ftp://ftp.parr-research.com/pub/pccts/sorcerer/
  1283.         ftp://ftp.uu.net/languages/tools/pccts/
  1284.     UK:    ftp://src.doc.ic.ac.uk/computing/programming/languages/tools/pccts/
  1285.     Europe: ftp://ftp.th-darmstadt.de/pub/programming/languages/compiler-compiler/pccts/
  1286. description:    SORCERER is more suitable for the class of translation problems
  1287.         lying between those solved by code-generator generators and by
  1288.         full source-to-source translator generators.  SORCERER
  1289.         generates simple, flexible, top-down, tree parsers that, in
  1290.         contrast to code-generators, may execute actions at any point
  1291.         during a tree walk.  SORCERER accepts extended BNF notation,
  1292.         allows predicates to direct the tree walk with semantic and
  1293.         syntactic context information, and does not rely on any
  1294.         particular intermediate form, parser generator, or other
  1295.         pre-existing application. Both C and C++ based tree
  1296.         walkers can be generated. SORCERER is well integrated
  1297.         with PCCTS (soon SORCERER will be distributed with PCCTS). 
  1298. reference:    Several listed in software documentation.
  1299.         A book will available first quarter 1996; a pre-release 
  1300.         version is available at the ftp site.
  1301. discussion:    Usenet newsgroup comp.compilers.tools.pccts
  1302. help:        newsgroup
  1303. support:    actively supported, from newsgroup and Parr Research 
  1304.         Corporation <parrt@parr-research.com>.
  1305. updated:    1995/09/01
  1306.  
  1307. language:    Attribute Grammars
  1308. package:    The FNC-2 Attribute Grammar System
  1309. version:    1.14
  1310. parts:        FNC-2:
  1311.           the Olga compiler and attribute evaluator generator;
  1312.         ATC:
  1313.           a generator of abstract tree constructors driven by 
  1314.           bottom-up parsers, with two flavours, one on top of 
  1315.           SYNTAX, and one on top of Lex and Yacc;
  1316.         PPAT:
  1317.           a generator of unparsers of attributed abstract
  1318.           trees, based on the TeX-like notion of nested boxes 
  1319.           of text.
  1320. author:        Martin Jourdan, Didier Parigot and students
  1321. location:    http://www-rocq.inria.fr/charme/FNC-2/index.html 
  1322.         ftp://ftp.inria.fr/INRIA/Projects/ChLoE/FNC-2/
  1323. description:    The FNC-2 system is a modern AG-processing system that
  1324.         aims at production-quality by providing the following 
  1325.         qualities:
  1326.         Efficiency:
  1327.          The generated evaluators, based on the visit-sequence
  1328.          paradigm, are completely deterministic; furthermore, 
  1329.          this paradigm allows to apply very effective space 
  1330.          optimization techniques. The evaluators are hence 
  1331.          basically as efficient in time and space as hand-written 
  1332.          programs using a tree as internal data structure.
  1333.         Expressive power:
  1334.          This efficiency is not achieved at the expense of 
  1335.          expressive power since FNC-2 accepts AGs in the very 
  1336.          broad class of strongly non-circular AGs.
  1337.         Easiness of use:
  1338.          Olga, the input language of FNC-2, enforces a high degree 
  1339.          of programming safety, reliability and productivity.
  1340.          It provides powerful constructions for modularity and
  1341.          reusability. 
  1342.          It contains the following sub-languages: 
  1343.           attributed abstract syntaxes ASX; 
  1344.           attribute grammars; 
  1345.           declaration and definition modules.
  1346.         Versatility:
  1347.          The generated evaluators can be interfaced with many
  1348.          other tools and produced in many variations: 
  1349.          Several modes of attribute evaluation:
  1350.           exhaustive; incremental; concurrent (on shared-memory 
  1351.           multiprocessor machines).
  1352.          Several implementation languages:
  1353.           C (standalone);  
  1354.           Lisp    (on top of the <A HREF="http://www-rocq.inria.fr/charme/FNC-2/centaurfnc2.html">Centaur </A> system); 
  1355.           C/fSDL (for the <A HREF="http://www-rocq.inria.fr/charme/FNC-2/cosyfnc2.html"> CoSy </A>
  1356. compilation platform); 
  1357.           ML (Caml). 
  1358.         In addition, FNC-2 is the testbed for an active research team.
  1359. ports:        Unix
  1360. status:        active
  1361. contact:    <Didier.Parigot@inria.fr> or <Martin.Jourdan@inria.fr>
  1362. updated:    1995
  1363.  
  1364.  
  1365.  
  1366. mathematical tools and languages
  1367. -------------------------------------------------------------------------------
  1368. category:    mathematical tools and languages
  1369. description:    These are either special-purpose languages and tools, or
  1370.         general purpose languages and tools that have traditionally
  1371.         been used for mathematical and scientific computing task.
  1372. lref:        Fortran
  1373. lref:        PCN
  1374. lref:        CLP
  1375. lref:        SISAL 1.2
  1376.  
  1377. language:    APL
  1378. package:    I-APL
  1379. version:    ?
  1380. parts:        ?
  1381. author:        ?
  1382. location:    ftp languages/apl/* from watserv1.waterloo.edu
  1383. description:    ?
  1384. updated:    1992/07/06
  1385.  
  1386. language:    APL
  1387. package:    APLWEB
  1388. version:    ?
  1389. parts:        translator(web->apl), translator(web->TeX)
  1390. author:        Dr. Christoph von Basum <CvB@erasmus.hrz.uni-bielefeld.de>
  1391. location:    ftp languages/apl/aplweb/* from watserv1.uwaterloo.ca
  1392. description:    [Should this be listed with the Web entries? -- Ed.]
  1393. updated:    1992/12/07
  1394.  
  1395. language:    APL
  1396. iref:        (APL) Tim Budd's C++ implementation of Kamin's interpreters
  1397.  
  1398. language:    J
  1399. package:    J-mode
  1400. version:    ?
  1401. parts:        emacs macros
  1402. author:        ?
  1403. location:    ftp pub/j/gmacs/j-interaction-mode.el from think.com
  1404. description:    add on to J
  1405. updated:    1991/03/04
  1406.  
  1407. language:    RLaB language (math manipulation - MATLAB-like)
  1408. package:    RLaB
  1409. version:    1.18d
  1410. parts:        interpreter, libraries, documentation
  1411. author:        Ian Searle <ians@eskimo.com>
  1412. location:    ftp pub/RLaB/* from evans.ee.adfa.oz.au
  1413.     US:        csi.jpl.nasa.gov in /pub/matlab/RLaB
  1414. description:    RLaB is a "MATLAB-like" matrix-oriented programming
  1415.         language/toolbox.  RLaB focuses on creating a good experimental
  1416.         environment (or laboratory) in which to do matrix math
  1417.         Currently RLaB has numeric scalars and matrices (real and
  1418.         complex), and string scalars, and matrices. RLaB also contains
  1419.         a list variable type, which is a heterogeneous associative
  1420.         array.
  1421. bugs:        Ian Searle <ians@eskimo.com>
  1422. restriction:    GNU General Public License
  1423. requires:    GNUPLOT, lib[IF]77.a (from f2c)
  1424. ports:        many unix, OS/2, Amiga
  1425. updated:    1995/03/16
  1426.  
  1427. language:    octave language (math manipulation - MATLAB-like)
  1428. package:    octave
  1429. version:    1.1.1
  1430. parts:        interpreter, libraries, documentation
  1431. author:        John W. Eaton
  1432. location:    ftp /pub/octave/* from ftp.che.utexas.edu
  1433.         also, any GNU archive site (see archive listing below)
  1434. description:    Octave is a high-level language, primarily intended for
  1435.         numerical computations.     It provides a convenient command line
  1436.         interface for solving linear and nonlinear problems
  1437.         numerically.
  1438.         Octave can do arithmetic for real and complex scalars and
  1439.         matrices, solve sets of nonlinear algebraic equations,
  1440.         integrate functions over finite and infinite intervals, and
  1441.         integrate systems of ordinary differential and
  1442.         differential-algebraic equations.
  1443. bugs:        bug-octave@che.utexas.edu
  1444. restriction:    GNU General Public License
  1445. requires:    gnuplot, C++ compiler and FORTRAN compiler or f2c translator.
  1446. ports:        several
  1447. updated:    1994/2/23
  1448.  
  1449. language:    FUDGIT language (math manipulation)
  1450. package:    FUDGIT
  1451. version:    2.27
  1452. parts:        interpreter
  1453. author:        Thomas Koenig <ig25@rz.uni-karlsruhe.de> ??
  1454. location:    ftp /pub/linux/sources/usr.bin/fudgit-* from tsx-11.mit.edu ??
  1455. description:    FUDGIT is a double-precision multi-purpose fitting program.  It
  1456.         can manipulate complete columns of numbers in the form of
  1457.         vector arithmetic. FUDGIT is also an expression language
  1458.         interpreter understanding most of C grammar except pointers.
  1459.         Morever, FUDGIT is a front end for any plotting program
  1460.         supporting commands from stdin. It is a nice mathematical
  1461.         complement to GNUPLOT, for example.
  1462. requires:    GNUPLOT
  1463. ports:        AIX, HPUX, Linux, IRIX, NeXT, SunOS, Ultrix
  1464. updated:    1993/02/22
  1465.  
  1466. language:    Unix BC (arbitrary-precision arithmetic language)
  1467. package:    C-BC
  1468. version:    1.1
  1469. parts:        bytecode compiler, interpreter, documentation, examples
  1470. author:        Mark Hopkins <mark@omnifest.uwm.edu>
  1471. location:    alt.sources (10/04/93), or contact author by E-mail.
  1472. description:    A strongly typed version of BC with expanded C-like syntax,
  1473.         more base types, with ability to form array and pointer types
  1474.         of any dimension and to allocate/free arrays at run-time.
  1475. conformance:    Most POSIX-BC features supported, except functions must be
  1476.         declared consistently and declared before first use.  String
  1477.         handling slightly different.
  1478. reference:    C-BC implementation notes contained with software documentation
  1479. requires:    ANSI-C compiler
  1480. ports:        DOS, Unix
  1481. portability:    No system dependent features present.
  1482. updated:    1993/08/23
  1483.  
  1484. language:    Unix BC (arbitrary-precision arithmetic language)
  1485. package:    GNU BC
  1486. version:    1.02
  1487. parts:        parser (yacc), interpreter, BC math library
  1488. author:        Philip A. Nelson <phil@cs.wwu.edu>
  1489. location:    ftp bc-1.02.tar.Z from a GNU archive site
  1490. description:    BC is an arbitrary precision numeric processing language with a
  1491.         C-like syntax that traditionally provided a front-end to DC.
  1492.         This version, however, is self-contained and internally
  1493.         executes its own compiled code (unrelated to DC code).
  1494. conformance:    Superset of POSIX BC (P10003.2/D11), with a POSIX-only mode.
  1495. restriction:    Source code falls under the GNU CopyLeft.
  1496. requires:    vsprintf and vfprintf routines
  1497. ports:        Unix (BSD, System V, MINIX, POSIX)
  1498. updated:    ?
  1499.  
  1500. language:    Calc?  (symbolic math calculator)
  1501. package:    Calc
  1502. version:    2.02
  1503. parts:        interpreter, emacs mode, documentation
  1504. author:        Dave Gillespie <daveg@cs.caltech.edu>
  1505. location:    ftp calc-2.02.tar.z from a GNU archive site
  1506. description:    Calc is an extensible, advanced desk calculator and
  1507.         mathematical tool written in Emacs Lisp that runs as part of
  1508.         GNU Emacs.  It is accompanied by the "Calc Manual", which
  1509.         serves as both a tutorial and a reference.  If you wish, you
  1510.         can use Calc as only a simple four-function calculator, but it
  1511.         also provides additional features including choice of algebraic
  1512.         or RPN (stack-based) entry, logarithms, trigonometric and
  1513.         financial functions, arbitrary precision, complex numbers,
  1514.         vectors, matrices, dates, times, infinities, sets, algebraic
  1515.         simplification, differentiation, and integration.
  1516. bugs:        ?
  1517. updated:    ?
  1518.  
  1519. language:    C-like caluculator
  1520. package:    Arbitrary precision calculator
  1521. version:    1.26.4
  1522. parts:        interpreter
  1523. author:        David I. Bell <dbell@canb.auug.org.au>
  1524. location:    ftp pub/calc from ftp.uu.net
  1525. description:    Arbitrary precision C-like calculator [similar to BC? --ed]
  1526. ports:        Linux
  1527. updated:    1993/06/15
  1528.  
  1529. language:    Unix DC (arbitrary-precision arithmetic language)
  1530. package:    GNU DC
  1531. version:    0.2
  1532. parts:        interpreter
  1533. author:        ?
  1534. location:    ftp dc-0.2.tar.Z from a GNU archive site
  1535. description:    DC is the language for an arbitrary precision postfix
  1536.         calculator.  This version is a subset of DC that handles all
  1537.         the Unix DC operations, except the (undocumented) array
  1538.         operations.
  1539. status:        Attempting integration with GNU BC.
  1540. updated:    1993/05/21
  1541.  
  1542. language:    Fortran
  1543. package:    f2c
  1544. version:    1993.04.28
  1545. parts:        translator (to C), postscript documentation, man pages,
  1546.         support libraries.
  1547. author:        S. I. Feldman, D. M. Gay, M. W. Maimone and N. L. Schryer
  1548. location:    ftp from netlib@netlib.att.com:netlib/f2c/src/*
  1549. description:    translator (Fortran 77 to ANSI C or C++)
  1550. bugs:        D. M. Gay <dmg@research.att.com>
  1551. updated:    1993 April 27
  1552.  
  1553. language:    GNU Fortran
  1554. package:    g77
  1555. version:    0.5.17
  1556. parts:        compiler, documentation, libraries.
  1557. author:        Craig Burley <burley@gnu.ai.mit.edu>
  1558. location:    ftp g77-0.5.17.tar.gz from any GNU site
  1559. description:    GNU Fortran is a free replacement for the UNIX f77
  1560.         Fortran compiler, and is currently in beta testing.  
  1561. requires:    To build it requires the GNU CC source distribution, 
  1562.         Version 2.6.3 through 2.7.
  1563. bugs:        <fortran@gnu.ai.mit.edu>
  1564. updated:    1995/11/22
  1565.  
  1566. language:    Fortran
  1567. package:    Floppy
  1568. version:    ?
  1569. parts:        ?
  1570. author:        ?
  1571. location:    ffccc in comp.sources.misc archive volume 12
  1572. description:    ?
  1573. contact:    ?
  1574. updated:    1992/08/04
  1575.  
  1576. language:    Fortran
  1577. package:    Flow
  1578. version:    ?
  1579. parts:        ?
  1580. author:        Julian James Bunn <julian@vxcrna.cxern.ch>
  1581. location:    comp.sources.misc archive volume 31
  1582. description:    The Flow program is a companion to Floppy, it allows the user
  1583.         to produce various reports on the structure of Fortran
  1584.         77 code, such as flow diagrams and common block tables.
  1585. requires:    Floppy
  1586. ports:        VMS, Unix, CMS
  1587. updated:    ?
  1588.  
  1589. language:    Fortran (HPF)
  1590. package:    Adaptor (Automatic DAta Parallelism TranslatOR)
  1591. version:    3.0
  1592. parts:        preprocessor, library, documentation
  1593. author:        ?
  1594. location:    ftp://ftp.gmd.de/GMD/adaptor/adp_3.0.tar.gz
  1595. description:    Adaptor is a tool that transforms data parallel
  1596.         programs written in Fortran with array extensions,
  1597.         parallel loops, and  layout directives    to parallel
  1598.         programs with explicit message passing.
  1599.         ADAPTOR is not a compiler but a source to source
  1600.         transformation that generates Fortran 77 host and
  1601.         node programs with message passing.  The new
  1602.         generated source codes have to be compiled by the
  1603.         compiler of the parallel machine.
  1604. reference:    http://www.gmd.de/SCAI/lab/adaptor/adaptor_home.html
  1605. ports:        CM-5, iPCS/860, Meiko CS1/CS2, KSR 1, SGI, Alliant,
  1606.         network of Suns, or RS/6000s
  1607. contact:    Thomas Brandes <brandes@gmd.de>
  1608. updated:    1995/06
  1609.  
  1610. language:    Fortran, C
  1611. package:    cfortran.h
  1612. version:    2.6
  1613. parts:        macros, documentation, examples
  1614. author:        Burkhard Burow
  1615. location:    ftp cfortran/* from zebra.desy.de
  1616. description:    cfortran.h is an easy-to-use powerful bridge between
  1617.         C and FORTRAN. It provides a completely transparent, machine
  1618.         independent interface between C and FORTRAN routines and
  1619.         global data.
  1620.         cfortran.h provides macros which allow the C preprocessor to
  1621.         translate a simple description of a C (Fortran) routine or
  1622.         global data into a Fortran (C) interface.
  1623. reference:    reviewed in RS/Magazine November 1992 and
  1624.         a user's experiences with cfortran.h are to be described
  1625.         in the 1/93 issue of Computers in Physics.
  1626. ports:        VAX VMS or Ultrix, DECstation, Silicon Graphics, IBM RS/6000,
  1627.         Sun, CRAY, Apollo, HP9000, LynxOS, f2c, NAG f90.
  1628. portability:    high
  1629. contact:    burow@vxdesy.cern.ch
  1630. updated:    1992/04/12
  1631.  
  1632. language:    Fortran
  1633. package:    fsplit
  1634. version:    ?
  1635. parts:        ?
  1636. author:        ?
  1637. location:    ?
  1638. description:    a tool to split up monolithic fortran programs
  1639. updated:    ?
  1640.  
  1641. language:    Fortran
  1642. package:    ?
  1643. version:    ?
  1644. parts:        ?
  1645. author:        Steve Mccrea <mccrea@gdwest.gd.com>
  1646. location:    ?
  1647. description:    a tool to split up monolithic fortran programs
  1648. requires:    new awk
  1649. updated:    ?
  1650.  
  1651. language:    Fortran
  1652. package:    Fortran77 -> Fortran90 converter
  1653. version:    ? 1
  1654. parts:        translator(Fortran 77 -> Fortran 90), documentation?
  1655. author:        metcalf@cernvm.cern.ch <Michael Metcalf>
  1656. location:    ftp pub/MandR/convert.f90 from jkr.cc.rl.ac.uk
  1657. description:    A Fortran77 to Fortran90 translator.  There's a number of
  1658.         significant differences between the two Fortrans that makes
  1659.         a package like this useful.
  1660. updated:    1993/07/17
  1661.  
  1662. language:    Fortran
  1663. package:    F-curses
  1664. version:    ?
  1665. parts:        library
  1666. author:        Wade Schauer <sal!wade@sactoh0.sac.ca.us>
  1667. location:    comp.sources.misc volume 44
  1668. description:    F-curses (C) is a library of Fortran and C routines that gives
  1669.         Fortran programmers tranparent access to the curses library (a
  1670.         C library).
  1671. restriction:    shareware
  1672. ports:        UNIX, MS-DOS
  1673. updated:    1994/10/10
  1674.  
  1675. language:    Fortran
  1676. iref:        (Fortran) Stanford SUIF Compiler
  1677.  
  1678. language:    Fortran
  1679. package:    ?
  1680. version:    ?
  1681. parts:        semantic analyser
  1682. author:        ?
  1683. location:    http://www.nag.co.uk:70/
  1684. description:    Fortran 90 semantic analyser
  1685. updated:    ?
  1686.  
  1687. language:    J
  1688. package:    J from ISI
  1689. version:    6
  1690. parts:        interpreter, tutorial
  1691. author:        Kenneth E. Iverson and Roger Hui <hui@yrloc.ipsa.reuter.com>
  1692. location:    ftp languages/apl/j/* from watserv1.waterloo.edu
  1693. description:    J was designed and developed by Ken Iverson and Roger Hui.  It
  1694.         is similar to the language APL, departing from APL in using
  1695.         using the ASCII alphabet exclusively, but employing a spelling
  1696.         scheme that retains the advantages of the special alphabet
  1697.         required by APL. It has added features and control structures
  1698.         that extend its power beyond standard APL.  Although it can be
  1699.         used as a conventional procedural programming language, it can
  1700.         also be used as a pure functional programming language.
  1701. ports:        Dec, NeXT, SGI, Sun-3, Sun-4, VAX, RS/6000, MIPS, Mac, Acorn
  1702.         IBM-PC, Atari, 3b1, Amiga
  1703. updated:    1992/10/31
  1704.  
  1705. language:    Ratfor
  1706. package:    ? ratfor ?
  1707. version:    ?
  1708. parts:        translator(Ratfor->Fortran IV)
  1709. author:        Brian Kernighan and P.J. Plauger (wrote the book anyway)
  1710. location:    comp.sources.unix archives volume 13
  1711. description:    Ratfor is a front end language for Fortran.  It was designed
  1712.         to give structured control structures to Fortran.  It is
  1713.         mainly of historical significance.
  1714. updated:    ?
  1715.  
  1716. language:    Y (cross between C and Ratfor)
  1717. package:    y+po
  1718. version:    ?
  1719. parts:        compiler
  1720. author:        Jack W. Davidson and Christopher W. Fraser
  1721. location:    ftp pub/y+po.tar.Z from ftp.cs.princeton.edu
  1722. description:    Davidson/Fraser peephole optimizer PO [1-3] [where the GCC RTL
  1723.         idea and other optimization ideas came from] along with the Y
  1724.         compiler [cross between C+ratfor] is ftpable from
  1725.         ftp.cs.princeton.edu: /pub/y+po.tar.Z.    It is a copy of the
  1726.         original distribution from the University of Arizona during the
  1727.         early 80's, totally unsupported, almost forgotten [do not bug
  1728.         the authors] old code, possibly of interest to
  1729.         compiler/language hackers.
  1730. reference:    Jack W. Davidson and Christopher W. Fraser, "The Design and
  1731.          Application of a Retargetable Peephole Optimizer", TOPLAS, 
  1732.          Apr.  1980.
  1733.         Jack W. Davidson, "Simplifying Code Through Peephole
  1734.          Optimization" Technical Report TR81-19, The University of
  1735.          Arizona, Tucson, AZ, 1981.
  1736.         Jack W. Davidson and Christopher W. Fraser, "Register
  1737.          Allocation and Exhaustive Peephole Optimization"
  1738.          Software-Practice and Experience, Sep. 1984.
  1739. status:        history
  1740. updated:    ?
  1741.  
  1742. electrical engineering languages
  1743. -------------------------------------------------------------------------------
  1744. category:    electrical engineering languages
  1745. description:    These are languages used for simulating, designing, and
  1746.         specifying circuits.
  1747.  
  1748. language:    CASE-DSP (Computer Aided Software Eng. for Digital Signal Proc)
  1749. package:    Ptolemy
  1750. version:    0.5.2
  1751. parts:        grahpical algorithm layout, code generator, simulator
  1752. author:        ?
  1753. location:    ftp://ptolemy.eecs.berkeley.edu/pub/ptolemy/ptolemy0.5.2/
  1754. description:    Ptolemy provides a highly flexible foundation for the
  1755.         specification, simulation, and rapid prototyping of systems.
  1756.         It is an object oriented framework within which diverse models
  1757.         of computation can co-exist and interact.  For example, using
  1758.         Ptolemy a data-flow system can be easily connected to a
  1759.         hardware simulator which in turn may be connected to a
  1760.         discrete-event system, etc.  Because of this, Ptolemy can be
  1761.         used to model entire systems.
  1762.         In addition, Ptolemy now has code generation capabilities.
  1763.         from a flow graph description, Ptolemy can generate both C code
  1764.         and DSP assembly code for rapid prototyping.  Note that code
  1765.         generation is not yet complete, and is included in the current
  1766.         release for demonstration purposes only.
  1767. requires:    C++, C
  1768. ports:        Sun-4, MIPS/Ultrix; DSP56001, DSP96002.
  1769. status:        active research project
  1770. discussion:    ptolemy-hackers-request@ohm.berkeley.edu
  1771. contact:    ptolemy@ohm.berkeley.edu
  1772. updated:    1995/05/28
  1773.  
  1774. language:    EDIF (Electronic Design Interchange Format)
  1775. package:    Berkeley EDIF200
  1776. version:    7.6
  1777. parts:        translator-building toolkit
  1778. author:        Wendell C. Baker and Prof A. Richard Newton of the Electronics
  1779.         Research Laboratory, Department of Electrical Engineering and
  1780.         Computer Sciences at the University of California, Berkeley, CA
  1781. location:    ftp from pub/edif in ic.berkeley.edu
  1782. description:    ?
  1783. restriction:    no-profit w/o permission
  1784. ports:        ?
  1785. updated:    1990/07
  1786.  
  1787. language:    Verilog, XNF
  1788. package:    XNF to Verilog Translator
  1789. version:    ?
  1790. parts:        translator(XNF->Verilog)
  1791. author:        M J Colley <martin@essex.ac.uk>
  1792. location:    ftp pub/dank/xnf2ver.tar.Z from punisher.caltech.edu
  1793. description:    This program was written by a postgraduate student as part
  1794.         of his M.Sc course, it was designed to form part a larger
  1795.         system operating with the Cadence Edge 2.1 framework. This
  1796.         should be born in mind when considering the construction
  1797.         and/or operation of the program.
  1798. updated:    ?
  1799.  
  1800. language:    VHDL
  1801. package:    ALLIANCE
  1802. version:    1.1
  1803. parts:        compiler, simulator, tools and environment, documentation
  1804. author:        ?
  1805. location:    ftp://ftp.ibp.fr/ibp/softs/masi/alliance/
  1806. description:    ALLIANCE 1.1 is a complete set of CAD tools for teaching
  1807.         Digital CMOS VLSI Design in Universities. It includes VHDL
  1808.         compiler and simulator, logic synthesis tools, automatic place
  1809.         and route, etc...  ALLIANCE is the result of a ten years effort
  1810.         at University Pierre et Marie Curie (PARIS VI, France).
  1811. ports:        Sun4, also not well supported: Mips/Ultrix, 386/SystemV
  1812. discussion:    alliance-request@masi.ibp.fr
  1813. contact:    cao-vlsi@masi.ibp.fr
  1814. updated:    1993/02/16
  1815.  
  1816. language:    VHDL
  1817. package:    VHDL Object Model (VOM)
  1818. version:    1.0
  1819. parts:        parser
  1820. author:        David Benz <dbenz@thor.ece.uc.edu> and 
  1821.         Phillip Baraona <pbaraona@thor.ece.uc.edu>
  1822. location:    ftp pub/vhdl/tools/vhdl-object-model.tar.g from thor.ece.uc.edu
  1823. description:    VOM 1.0 is an object-oriented syntactic specification for VHDL
  1824.         written using the REFINE software design and synthesis
  1825.         environment.  In simpler terms, it is a VHDL parser which builds 
  1826.         an object tree from VHDL source code.
  1827.         If you are interested in transforming VHDL into some other form
  1828.         (source code, whatever) you might be interested in this. The
  1829.         parse tree (in the form of an object tree) is provided, you would 
  1830.         just need to add your own transformations.
  1831.         VOM isn't complete. The semantic information is not included
  1832.         (type checking, certain syntactic-rules, etc.). VOM 1.0 should
  1833.         parse most VHDL programs.  However, it will not detect errors
  1834.         such as a wait statement in a process statement with an
  1835.         explicit sensitivity list.
  1836. updated:    1994/11/01
  1837.  
  1838. --
  1839. Send compilers articles to compilers@iecc.com,
  1840. meta-mail to compilers-request@iecc.com.
  1841.