home *** CD-ROM | disk | FTP | other *** search
/ ftp.pasteur.org/FAQ/ / ftp-pasteur-org-FAQ.zip / FAQ / compilers / free / part4 < prev    next >
Encoding:
Internet Message Format  |  2000-02-10  |  88.1 KB

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