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 Lampe
location: ftp ftp.math.tu-dresden.de/Depot4/
description: A Oberon version of Depot4
Accepts exactly the same language as Depot4/Java, cross
translation, i.e. generation of translators in Java (and vice
versa) possible
reference: "An Oberon-Based Implementation Tool" in "Advances in
Modular Languages" P. Schulthess
(ed), Universit=8Atsverl., Ulm, 1994, ISBN 3-89559-220-X,
pp. 303-312.
requires: ETHZ Oberon V4
ports: Oberon/F resp. Component Pascal
ETHZ Oberon System3 possible
help: online manual at
http://www.math.tu-dresden.de/wir/staff/lampe/Dp4Doc/UM.html
support: 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
© allanswers.org | Terms of use