![]() |
| Home > Programming > compilers > free > |
Catalog of compilers, interpreters, and other language tools [p4of5] |
Section 3 of 3 - Prev - Next
All sections - 1 - 2 - 3
The Ml4 translator can bootstrap itself, thus serving as an example. Although translators are generated in a certain host language, their description is totally independent from this. Depot4 is intended for domain specific language implementation. reference: "An Extensible Translator-Generator for Use in Branch Software Construction", J. Comp. and Inform. 2, 1 (1996), pp. 1057-1067 "A Generator for Dynamically Extensible Translators" in Proc. of JMLC'97 Joint Modular Languages Conference (Linz, 1997), pp. 75-87. "A tool for syntax directed software design" J. of Systems Architecture 43 (1997), pp. 199-202. features: + easy to capture recursive translator description + rule based modularization (simplifies test) + monitor/trace tools + unbounded lookahead possible + interface to other software + extensible + convenient standard user interface bugs: lampe@math.tu-dresden.de requires: Java Virtual Machine supporting JDK 1.0.2 portability: no futher restrictions status: active help: online manual at http://www.math.tu-dresden.de/wir/staff/lampe/Dp4Doc/UM.html support: lampe@math.tu-dresden.de updated: 1997/06 language: Ml4 (extended EBNF) package: Depot4/Oberon version: 1.6 parts: translator generator (->Oberon), documentation, examples author: Juergen Lampelocation: ftp ftp.math.tu-dresden.de/Depot4/ description: A Oberon version of Depot4 Accepts exactly the same language as Depot4/Java, cross translation, i.e. generation of translators in Java (and vice versa) possible reference: "An Oberon-Based Implementation Tool" in "Advances in Modular Languages" P. Schulthess (ed), Universit=8Atsverl., Ulm, 1994, ISBN 3-89559-220-X, pp. 303-312. requires: ETHZ Oberon V4 ports: Oberon/F resp. Component Pascal ETHZ Oberon System3 possible help: online manual at http://www.math.tu-dresden.de/wir/staff/lampe/Dp4Doc/UM.html support: lampe@math.tu-dresden.de updated: 1997/06 language: ANSI C, K&R C package: CDG - C Documentation Generator version: 1.1 parts: documentation, document generator (all in one file) author: Peter Knoppers location: http://cardit.et.tudelft.nl/~knop/cdg11.tar.gz (Anonymous ftp not supported; use your WWW-browser and save it in a file.) description: Cdg reads a set of C-source files and generates a two-column listing of those sources where all lines are numbered. After the listing part comes a three-column cross-reference table which gives for each identifier a list of line-numbers where this identifier occurs in the source listing part. This format resembles the format that John Lions used in "Source Code and Commentary on UNIX level 6". conformance: Should operate on all K&R and ANSI C programs. There are some restrictions on the placement of matching #ifdef, #else and #endif directives, or else the way an identifier is used may be incorrectly determined. features: + Non-C sources can be included in the output - Non-C sources will not be cross-referenced + Long lines are folded in the output and marked as such + Customizable footer for copyright or other messages + Cross reference list distinguishes definition versus use of an identifier + Possibility to exclude certain identifiers + Can save a list of all identifiers with linenumbers + Identifiers can be included or excluded from the cross- reference listing depending on their use + PostScript output can be generated for A4 or US Letter size paper, on the non-PostScript printers only A4 is supported. bugs: None known (except the restriction mentioned under "conformance"). restriction: GNU conditions requires: Unix, ANSI-C compiler (preferably gcc) (to build it), sort(1), PostScript printer, or HP DeskJet 500 or LaserJet printer, or GhostScript plus almost any popular printer. ports: Linux portability: Little experience at this time, should be quite portable. status: Works fine for the author... discussion: Email the author. help: Email the author. support: Email the author. announcements: http://cardit.et.tudelft.nl/~knop cref: C variants cref: unix tool building cref: programming in the large updated: 1996/08/06 mathematical tools and languages ------------------------------------------------------------------------------- category: mathematical tools and languages description: These are either special-purpose languages and tools, or general purpose languages and tools that have traditionally been used for mathematical and scientific computing task. lref: Fortran lref: PCN lref: CLP lref: SISAL 1.2 language: Algea language (math manipulation - MATLAB-like) package: Algea version: 3.4.0 parts: ? author: Scott Hunziker and Mike Brennan location: http://www.eskimo.com/~ksh/algae/index.html http://axams1.bo.infn.it:9999/algae ftp://ftp.eskimo.com/u/k/ksh/algae restriction: GPL requires: gcc ports: UNIX (Linux Only?) status: Active discussion: To join the Algea list email algae-list-request@eskimo.com description: Algae is an interpreted language for numerical analysis. Algae borrows ideas from languages like MATLAB, APL, and C, but it was developed in response to a need for a free, efficient, and versatile high-level language with large problem capability. updated: 1998/05 language: APL package: I-APL version: ? parts: ? author: ? location: ftp://watserv1.waterloo.edu/languages/apl/* description: ? updated: 1992/07/06 language: APL package: APLWEB version: ? parts: translator(web->apl), translator(web->TeX) author: Dr. Christoph von Basum location: ftp://watserv1.uwaterloo.ca/languages/apl/aplweb/* description: [Should this be listed with the Web entries? -- Ed.] updated: 1992/12/07 language: APL iref: (APL) Tim Budd's C++ implementation of Kamin's interpreters language: J package: J-mode version: ? parts: emacs macros author: ? location: ftp://think.com/pub/j/gmacs/j-interaction-mode.el description: add on to J updated: 1991/03/04 language: RLaB language (math manipulation - MATLAB-like) package: RLaB version: 1.18d parts: interpreter, libraries, documentation author: Ian Searle location: ftp://evans.ee.adfa.oz.au/pub/RLaB/* US: ftp://csi.jpl.nasa.gov/pub/matlab/RLaB description: RLaB is a "MATLAB-like" matrix-oriented programming language/toolbox. RLaB focuses on creating a good experimental environment (or laboratory) in which to do matrix math Currently RLaB has numeric scalars and matrices (real and complex), and string scalars, and matrices. RLaB also contains a list variable type, which is a heterogeneous associative array. bugs: Ian Searle restriction: GNU General Public License requires: GNUPLOT, lib[IF]77.a (from f2c) ports: many unix, OS/2, Amiga updated: 1995/03/16 language: Octave language (math manipulation - MATLAB-like) package: Octave version: 2.0.13 parts: interpreter, libraries, documentation author: John W. Eaton location: ftp://ftp.che.utexas.edu/pub/octave also, any GNU archive site (see archive listing below) description: Octave is a high-level language, primarily intended for numerical computations. It provides a convenient command line interface for solving linear and nonlinear problems numerically. Octave can do arithmetic for real and complex scalars and matrices, solve sets of nonlinear algebraic equations, integrate functions over finite and infinite intervals, and integrate systems of ordinary differential and differential-algebraic equations. bugs: bug-octave@che.utexas.edu restriction: GNU General Public License requires: g++ 2.7.2 or later, a recent version of GNU Make, GNU libstdc++ ports: Linux, Digital Unix, HP-UX, SunOS, OS/2, and Windows NT/95 updated: 1998/5/21 language: FUDGIT language (math manipulation) package: FUDGIT version: 2.27 parts: interpreter author: Martin-D. Lacasse location: ftp://tsx-11.mit.edu/pub/linux/sources/usr.bin/fudgit-*?? description: FUDGIT is a double-precision multi-purpose fitting program. It can manipulate complete columns of numbers in the form of vector arithmetic. FUDGIT is also an expression language interpreter understanding most of C grammar except pointers. Morever, FUDGIT is a front end for any plotting program supporting commands from stdin. It is a nice mathematical complement to GNUPLOT, for example. Ported to Linux by Thomas Koenig requires: GNUPLOT ports: AIX, HPUX, Linux, IRIX, NeXT, SunOS, Ultrix updated: 1993/02/22 language: Unix BC (arbitrary-precision arithmetic language) package: C-BC version: 1.1 parts: bytecode compiler, interpreter, documentation, examples author: Mark Hopkins location: alt.sources (10/04/93), or contact author by E-mail. description: A strongly typed version of BC with expanded C-like syntax, more base types, with ability to form array and pointer types of any dimension and to allocate/free arrays at run-time. conformance: Most POSIX-BC features supported, except functions must be declared consistently and declared before first use. String handling slightly different. reference: C-BC implementation notes contained with software documentation requires: ANSI-C compiler ports: DOS, Unix portability: No system dependent features present. updated: 1993/08/23 language: Unix BC (arbitrary-precision arithmetic language) package: GNU BC version: 1.02 parts: parser (yacc), interpreter, BC math library author: Philip A. Nelson location: ftp bc-1.02.tar.Z from a GNU archive site description: BC is an arbitrary precision numeric processing language with a C-like syntax that traditionally provided a front-end to DC. This version, however, is self-contained and internally executes its own compiled code (unrelated to DC code). conformance: Superset of POSIX BC (P10003.2/D11), with a POSIX-only mode. restriction: Source code falls under the GNU CopyLeft. requires: vsprintf and vfprintf routines ports: Unix (BSD, System V, MINIX, POSIX) updated: ? language: Calc? (symbolic math calculator) package: Calc version: 2.02 parts: interpreter, emacs mode, documentation author: Dave Gillespie location: ftp calc-2.02.tar.z from a GNU archive site description: Calc is an extensible, advanced desk calculator and mathematical tool written in Emacs Lisp that runs as part of GNU Emacs. It is accompanied by the "Calc Manual", which serves as both a tutorial and a reference. If you wish, you can use Calc as only a simple four-function calculator, but it also provides additional features including choice of algebraic or RPN (stack-based) entry, logarithms, trigonometric and financial functions, arbitrary precision, complex numbers, vectors, matrices, dates, times, infinities, sets, algebraic simplification, differentiation, and integration. bugs: ? updated: ? language: C-like caluculator package: Arbitrary precision calculator version: 1.26.4 parts: interpreter author: David I. Bell location: ftp://ftp.uu.net/pub/calc description: Arbitrary precision C-like calculator [similar to BC? --ed] ports: Linux updated: 1993/06/15 language: Unix DC (arbitrary-precision arithmetic language) package: GNU DC version: 0.2 parts: interpreter author: ? location: ftp dc-0.2.tar.Z from a GNU archive site description: DC is the language for an arbitrary precision postfix calculator. This version is a subset of DC that handles all the Unix DC operations, except the (undocumented) array operations. status: Attempting integration with GNU BC. updated: 1993/05/21 language: Fortran package: f2c version: 1993.04.28 parts: translator (to C), postscript documentation, man pages, support libraries. author: S. I. Feldman, D. M. Gay, M. W. Maimone and N. L. Schryer location: ftp from netlib@netlib.bell-labs.com:netlib/f2c/src/* description: translator (Fortran 77 to ANSI C or C++) bugs: D. M. Gay updated: 1993 April 27 language: GNU Fortran package: g77 version: 0.5.17 parts: compiler, documentation, libraries. author: Craig Burley location: ftp g77-0.5.17.tar.gz from any GNU site description: GNU Fortran is a free replacement for the UNIX f77 Fortran compiler, and is currently in beta testing. requires: To build it requires the GNU CC source distribution, Version 2.6.3 through 2.7. bugs: updated: 1995/11/22 language: Fortran package: Floppy version: ? parts: ? author: ? location: ffccc in comp.sources.misc archive volume 12 description: ? contact: ? updated: 1992/08/04 language: Fortran package: Flow version: ? parts: ? author: Julian James Bunn location: comp.sources.misc archive volume 31 description: The Flow program is a companion to Floppy, it allows the user to produce various reports on the structure of Fortran 77 code, such as flow diagrams and common block tables. requires: Floppy ports: VMS, Unix, CMS updated: ? language: Fortran (HPF) package: Adaptor (Automatic DAta Parallelism TranslatOR) version: 3.0 parts: preprocessor, library, documentation author: ? location: ftp://ftp.gmd.de/GMD/adaptor/adp_3.0.tar.gz description: Adaptor is a tool that transforms data parallel programs written in Fortran with array extensions, parallel loops, and layout directives to parallel programs with explicit message passing. ADAPTOR is not a compiler but a source to source transformation that generates Fortran 77 host and node programs with message passing. The new generated source codes have to be compiled by the compiler of the parallel machine. reference: http://www.gmd.de/SCAI/lab/adaptor/adaptor_home.html ports: CM-5, iPCS/860, Meiko CS1/CS2, KSR 1, SGI, Alliant, network of Suns, or RS/6000s contact: Thomas Brandes updated: 1995/06 language: Fortran, C package: cfortran.h version: 2.6 parts: macros, documentation, examples author: Burkhard Burow location: ftp://zebra.desy.de/cfortran/* description: cfortran.h is an easy-to-use powerful bridge between C and FORTRAN. It provides a completely transparent, machine independent interface between C and FORTRAN routines and global data. cfortran.h provides macros which allow the C preprocessor to translate a simple description of a C (Fortran) routine or global data into a Fortran (C) interface. reference: reviewed in RS/Magazine November 1992 and a user's experiences with cfortran.h are to be described in the 1/93 issue of Computers in Physics. ports: VAX VMS or Ultrix, DECstation, Silicon Graphics, IBM RS/6000, Sun, CRAY, Apollo, HP9000, LynxOS, f2c, NAG f90. portability: high contact: burow@vxdesy.cern.ch updated: 1992/04/12 language: Fortran package: fsplit version: ? parts: ? author: ? location: ? description: a tool to split up monolithic fortran programs updated: ? language: Fortran package: ? version: ? parts: ? author: Steve Mccrea location: ? description: a tool to split up monolithic fortran programs requires: new awk updated: ? language: Fortran package: Fortran77 -> Fortran90 converter version: ? 1 parts: translator(Fortran 77 -> Fortran 90), documentation? author: metcalf@cernvm.cern.ch location: ftp://jkr.cc.rl.ac.uk/pub/MandR/convert.f90 description: A Fortran77 to Fortran90 translator. There's a number of significant differences between the two Fortrans that makes a package like this useful. updated: 1993/07/17 language: Fortran package: F-curses version: ? parts: library author: Wade Schauer location: comp.sources.misc volume 44 description: F-curses (C) is a library of Fortran and C routines that gives Fortran programmers tranparent access to the curses library (a C library). restriction: shareware ports: UNIX, MS-DOS updated: 1994/10/10 language: Fortran iref: (Fortran) Stanford Base SUIF Compiler Package (``basesuif'') language: Fortran package: ? version: ? parts: semantic analyser author: ? location: http://www.nag.co.uk:70/ description: Fortran 90 semantic analyser updated: ? language: J package: J from ISI version: 6 parts: interpreter, tutorial author: Kenneth E. Iverson and Roger Hui location: ftp://watserv1.waterloo.edu/languages/apl/j/* description: J was designed and developed by Ken Iverson and Roger Hui. It is similar to the language APL, departing from APL in using using the ASCII alphabet exclusively, but employing a spelling scheme that retains the advantages of the special alphabet required by APL. It has added features and control structures that extend its power beyond standard APL. Although it can be used as a conventional procedural programming language, it can also be used as a pure functional programming language. ports: Dec, NeXT, SGI, Sun-3, Sun-4, VAX, RS/6000, MIPS, Mac, Acorn IBM-PC, Atari, 3b1, Amiga updated: 1992/10/31 language: Ratfor package: ? ratfor ? version: ? parts: translator(Ratfor->Fortran IV) author: Brian Kernighan and P.J. Plauger (wrote the book anyway) location: comp.sources.unix archives volume 13 description: Ratfor is a front end language for Fortran. It was designed to give structured control structures to Fortran. It is mainly of historical significance. updated: ? language: Y (cross between C and Ratfor) package: y+po version: ? parts: compiler author: Jack W. Davidson and Christopher W. Fraser location: ftp://ftp.cs.princeton.edu/pub/y+po.tar.Z description: Davidson/Fraser peephole optimizer PO [1-3] [where the GCC RTL idea and other optimization ideas came from] along with the Y compiler [cross between C+ratfor] is ftpable from ftp.cs.princeton.edu: /pub/y+po.tar.Z. It is a copy of the original distribution from the University of Arizona during the early 80's, totally unsupported, almost forgotten [do not bug the authors] old code, possibly of interest to compiler/language hackers. reference: Jack W. Davidson and Christopher W. Fraser, "The Design and Application of a Retargetable Peephole Optimizer", TOPLAS, Apr. 1980. Jack W. Davidson, "Simplifying Code Through Peephole Optimization" Technical Report TR81-19, The University of Arizona, Tucson, AZ, 1981. Jack W. Davidson and Christopher W. Fraser, "Register Allocation and Exhaustive Peephole Optimization" Software-Practice and Experience, Sep. 1984. status: history updated: ? language: ZPL package: ZPL version: ? parts: compiler,language documents, sample code author: L. Snyder, C. Lin, B. Chamberlain, S-E. Choi, E. Lewis, J. Secosky, D. Weathersby location: http://www.cs.washington.edu/research/zpl/ description: ZPL is a new array programming language designed from first principles for fast execution on both sequential and parallel computers. ZPL benefits from recent parallel compiler research, though code from existing sequential Fortran and C programs can often be reused. Programmers with scientific computing experience can learn ZPL in a few hours. discussion: zpl-info@cs.washington.edu updated: 1997/07/01 electrical engineering languages ------------------------------------------------------------------------------- category: electrical engineering languages description: These are languages used for simulating, designing, and specifying circuits. language: CASE-DSP (Computer Aided Software Eng. for Digital Signal Proc) package: Ptolemy version: 0.6 parts: grahpical algorithm layout, code generator, simulator author: ? location: ftp://ptolemy.eecs.berkeley.edu/pub/ptolemy/ptolemy0.6/ description: Ptolemy provides a highly flexible foundation for the specification, simulation, and rapid prototyping of systems. It is an object oriented framework within which diverse models of computation can co-exist and interact. For example, using Ptolemy a data-flow system can be easily connected to a hardware simulator which in turn may be connected to a discrete-event system, etc. Because of this, Ptolemy can be used to model entire systems. In addition, Ptolemy now has code generation capabilities. from a flow graph description, Ptolemy can generate both C code and DSP assembly code for rapid prototyping. Note that code generation is not yet complete, and is included in the current release for demonstration purposes only. requires: C++, C ports: Sun-4, MIPS/Ultrix; DSP56001, DSP96002. FreeBSD status: active research project discussion: ptolemy-hackers-request@ohm.berkeley.edu contact: ptolemy@ohm.berkeley.edu updated: 1996/05/28 language: EDIF (Electronic Design Interchange Format) package: Berkeley EDIF200 version: 7.6 parts: translator-building toolkit author: Wendell C. Baker and Prof A. Richard Newton of the Electronics Research Laboratory, Department of Electrical Engineering and Computer Sciences at the University of California, Berkeley, CA location: ?? ftp://ic.berkeley.edu/pub/edif ?? description: ? restriction: no-profit w/o permission ports: ? updated: 1990/07 language: SAOL, SASL (the MPEG-4 Structured Audio Orchestra Language and Structured Audio Score Language) package: saolc version: 0.5 parts: parser, interpreter, grammar, core opcode implementation author: Eric Scheirer, MIT Media Laboratory location: http://sound.media.mit.edu/~eds/mpeg4 description: SAOL is an audio processing and digital synthesis and effects language. It is part of the MPEG-4 standard, and allows the flexible description of synthesizers and effects-processing algorithms within than toolset. SAOL is historically related to Csound and other "Music N" languages, but is more flexible and easy to use than these. While maintaining features such as the instrument/score distinction and dual-rate processing, it adds user-defined opcodes, more well-defined rate semantics, more lexical flexibility, and an improved syntax. references: forthcoming conformance: This implementation is being developed as the official Reference Software for the Structured Audio component of ISO 14496 (MPEG-4). features: - non-real time performance (unless your machine is much faster than my SGI Octane) + implements user-defined opcodes as macro expansion + standalone mode as well as bitstream processing bugs: many known and being worked on. restrictions: source code is released to the public domain requires: C compiler only; lex/yacc to rebuild parser not much fun without audio capability ports: At least SGI, Alpha, NT, Win95, Linux, and SunOS systems portability: Word length and byte-order independent status: Under active development Discussion: saol-dev-request@media.mit.edu to be added to the SAOL developers' mailing list Help: Eric Scheirer Support: Eric Scheirer Announcements: http://sound.media.mit.edu/~eds/mpeg4 and the mailing list Contact: Eric Scheirer Updated: 07/1997 language: SPAM Compiler package: SPAM version: ? parts: ? author: ? location: http://www.ee.princeton.edu/spam description: The SPAM Compiler is a retargetable optimizing compiler for embedded fixed- point DSP processors. SPAM is built on top of the SUIF Compiler, which serves as the "front and middle"-end. The back-end of the SPAM Compiler consists of two components. The first component is a set of data structures that store the various representations of the source program (e.g. calling graph, control-flow graphs, expression DAGs). The second component is a suite of retargetable algorithms that perform code generation and machine-dependent code optimization. updated: ? language: Verilog, XNF package: XNF to Verilog Translator version: ? parts: translator(XNF->Verilog) author: M J Colley location: ftp://ftp.caltech.edu/pub/dank/xnf2ver.tar.Z ? description: This program was written by a postgraduate student as part of his M.Sc course, it was designed to form part a larger system operating with the Cadence Edge 2.1 framework. This should be born in mind when considering the construction and/or operation of the program. [If anyone knows the current location of this program please let me know - ed (6/98)]. updated: ? language: VHDL package: ALLIANCE version: 1.1 parts: compiler, simulator, tools and environment, documentation author: ? location: ftp://ftp.ibp.fr/ibp/softs/masi/alliance/ description: ALLIANCE 1.1 is a complete set of CAD tools for teaching Digital CMOS VLSI Design in Universities. It includes VHDL compiler and simulator, logic synthesis tools, automatic place and route, etc... ALLIANCE is the result of a ten years effort at University Pierre et Marie Curie (PARIS VI, France). ports: Sun4, also not well supported: Mips/Ultrix, 386/SystemV discussion: alliance-request@masi.ibp.fr contact: cao-vlsi@masi.ibp.fr updated: 1993/02/16 language: VHDL package: VHDL Object Model (VOM) version: 1.0 parts: parser author: David Benz and Phillip Baraona location: ftp://thor.ece.uc.edu/pub/vhdl/tools/vhdl-object-model.tar.gz description: VOM 1.0 is an object-oriented syntactic specification for VHDL written using the REFINE software design and synthesis environment. In simpler terms, it is a VHDL parser which builds an object tree from VHDL source code. If you are interested in transforming VHDL into some other form (source code, whatever) you might be interested in this. The parse tree (in the form of an object tree) is provided, you would just need to add your own transformations. VOM isn't complete. The semantic information is not included (type checking, certain syntactic-rules, etc.). VOM 1.0 should parse most VHDL programs. However, it will not detect errors such as a wait statement in a process statement with an explicit sensitivity list. updated: 1994/11/01 -- Send compilers articles to compilers@iecc.com, meta-mail to compilers-request@iecc.com. Archives at http://www.iecc.com/compilers
Section 3 of 3 - Prev - Next
All sections - 1 - 2 - 3
| Back to category free - Use Smart Search |
| Home - Smart Search - About the project - Feedback |
© allanswers.org | Terms of use