category: Wirth family languages


Description:
These are the languages that were either designed by Niklaus Wirth or are descended from them.


Language:
Pascal
Package:
? iso_pascal ?
Version:
?
Parts:
scanner(lex), parser(yacc)
Author:
?
Location:
comp.sources.unix archive volume 13
Description:
?
Updated:
?

Language:
Oberon
Package:
Ceres workstation Oberon System
Version:
?
Parts:
compiler
Author:
?
Location:
ftp://neptune.ethz.ch/Oberon/?
Description:
file format is Oberon, binary header
Status:
The sources to the various _full_ implementations are indeed not available but the source to most of the complete Ceres workstation Oberon System, including NS32032 code generator but less low level system specific is available. This includes the complete Oberon compiler written in Oberon.
Updated:
?

Language:
IFP (Illinois Functional Programming)
Package:
ifp
Version:
0.5
Parts:
interpreter
Author:
Arch D. Robison <robison@shell.com>
Location:
comp.sources.unix archive volume 10
Description:
A variant of Backus' "Functional Programming" language with a syntax reminiscent of Modula-2. The interpreter is written in portable C.
Reference:
Arch D. Robison, "Illinois Functional Programming: A Tutorial," BYTE, (February 1987), pp. 115--125.

Arch D. Robison, "The Illinois Functional Programming Interpreter," Proceedings of 1987 SIGPLAN Conference on Interpreters and Interpretive Techniques, (June 1987), pp. 64-73

Ports:
Unix, MS-DOS, CTSS (Cray)
Updated:
?

Language:
Modula-2* (parallel extension)
Package:
IPD Modula-2* Programming Environment
Version:
9401
Parts:
translator (->C), debugger (SUN4 only), X Windows user panel, automatic cross-architecture make, sequential and parallel libraries, examples, documentation
Author:
IPD Modula-2* team <msc@ira.uka.de> consisting of the following kernel contributors: Thomas Gauweiler, Stefan U. Haenssgen, Ernst A. Heinz, Paul Lukowicz, Hendrik Mager, Michael Philippsen.
Location:
ftp://ftp.ira.uka.de/pub/programming/modula2star/
Description:
Modula-2* is an extension of Modula-2 for highly parallel, portable programs. IPD Modula-2* is provided freely for research, educational and classroom use. A complete sequential Modula-2 environment in provided complemented with a set of parallel libraries, which even include routines for implementing low-level parallel operations. The employment of of C translator allows increased accessibility to actual parallel machines (many have nothing lower-level than C), at the expense of Modula-2 features of arrays bounds checking and symbolic debugging at the Modula-2* level.

[An interpreter could be written with functionality subsuming that of a symbolic debugger. -- Mark]

Conformance:
PIM but not ISO compliant
Reference:
J.R. Smith. "The design and analysis of parallel algorithms. Chapter 3: Modula-2*." Oxford University Press, December 1992.

M. Philippsen, E.A. Heinz, and P. Lukowicz. "Compiling machine-independent parallel programs." ACM SIGPLAN Notices, v. 28, no. 8, pp. 99-108, August 1993.

M. Philippsen, T.M. Warschko, W.F. Tichy, C.G. Herter, E.A. Heinz, and P. Lukowicz. "Project Triton: Towards improved programmability of parallel computers." In D.J. Lija and P.L. Bird (eds), The Interaction of Compilation Technology and Computer Architecture, Kluwer Academic Publishers, 1994.

Others available from ftp://i41s10.ira.uka.de/pub/m2s/*.ps

Ports:
386 and above with BSDI/386 or Linux (sequential), KSR-1/KSR-2 with KSR-OS (sequential and parallel), DECStation (R3000/R4000) with Ultrix (sequential), MP-1/MP-2 (DECStation frontend) with MP-Ultrix (parallel)

SUN (Sun-3, Sun-4 SPARCStation) with SunOS (sequential),

Portability:
sources are for GMD Mocka Modula-2 compiler
Status:
supported
Updated:
???

Language:
Oberon-2
Package:
Jacob
Version:
0
Parts:
compiler, library, documentation, examples
Author:
Max Spring <sepp@cs.tu-berlin.de>, Ralf Bauer <nathan@cs.tu-berlin.de>
Location:
ftp://sunsite.unc.edu/pub/Linux/devel/lang/oberon/jacob-v0* ftp://ftp.cs.tu-berlin.de/pub/linux/Local/compilers/oberon/jacob-v0*
Description:
Jacob compiles Oberon-2 to 386 GNU Assembler code.
Conformance:
Oberon-2 as defined in "The Programming Language Oberon-2" from H.Moessenboeck, N. Wirth, March 1995
Reference:
"Read Me" http://www.cs.tu-berlin.de/~sepp/jacob/jacob.html "The Programming Language Oberon-2" ftp://ftp.inf.ethz.ch/pub/Oberon/Docu/Oberon2.Report.ps.gz
Features:
  • automatic storage reclamation (garbage collection)
  • FOREIGN modules for accessing third party libraries
  • verbose run-time error messages
Bugs:
report bugs to sepp@cs.tu-berlin.de
Restriction:
none
Requires:
GNU assembler
Ports:
Linux (386)
Status:
First public release
Discussion:
comp.lang.oberon
Help:
contact the authors
Contact:
Max Spring <sepp@cs.tu-berlin.de>
Updated:
September 12th, 1995

Language:
Cantata - Extensible Visual Programming Language
Package:
Khoros
Version:
2.2
Parts:
Composer, Ghostwriter, Source Configuration & Management, Animate, Editimage, Xprism, Viewimage. See features for more details.
Description:
Khoros is an integrated software development environment for information processing and visualization, based on the X Windows System.
Author:
Khoral Research Inc
Location:
usa:
ftp://ftp.khoral.com/pub/khoros2.0
germany:
ftp://ftp.e20.physik.tu-muenchen.de
brazil:
ftp://ftp.unicamp.br/pub/khoros2.0
Reference:
Rasure and Kubica, "The Khoros Application Development Environment", Experimental Environments for Computer Vision and Image Processing, editor H.I Christensen and J.L Crowley, World Scientific 1994.

Konstantinides and Rasure, "The Khoros Software Development Environment For Image And Signal Processing", IEEE Transactions on Image Processing, VOL. 3, No. 3 May 1994, pp. 243-252.

Rasure, Williams, Argiro, and Sauer, "A Visual Language and Software Development Environment for Image Processing", International Journal of Imaging Systems and Technology, Vol. 2, pp 183-199 (1990) Man pages included with software distribution.

Features:
  • Composer - Interactive Graphical User Interface Editor
  • Ghostwriter - Code Generation Tool for a Command Line User Interface
  • Source Configuration & Management - Tools to install and maintain a distributed source tree
  • Animate - Interactive Image Sequence Display Tool
  • Editimage - Interactive Image Display & Manipulation Program
  • Xprism - 2D and 3D Plotting Packages
  • Viewimage - A basic interactive program for surface rendering documentation
Bugs:
k2-xvapp-bugs-FAQ, k2-xvlib-bugs-FAQ
Restriction:
Free access to Khoros, but not in the public domain. The software is owned by Khoral Research, Inc., and does carry a License and Copyright. While Khoros may be used by any organization free of charge, it can not be distributed without a license. All users of the system should register with Khoral Research and agree to abide by the Free Access License terms and conditions.
Requires:
gzip, C Compiler, X (R11), lex/yacc
Discussion:
comp.soft-sys.khoros
Ports:
Many Un*x ports
Help:
Khoros Consortium, ftp://ftp.khoral.com/pub/khoros/FAQ ftp://ftp.khoral.com/pub/khoros2.0/manual
Support:
http://ftp.khoros.unm.edu/
Updated:
?

Language:
Modula-2, Pascal
Package:
m2
Version:
? 7/2/92 ?
Parts:
? compiler ?
Author:
Michael L. Powell. See description below.
Location:
ftp://gatekeeper.dec.com/pub/DEC/Modula-2/m2.tar.Z
Description:
A modula-2 compiler for VAX and MIPS. A Pascal compiler for VAX is also included. The Pascal compiler accepts a language that is almost identical to Berkeley Pascal. It was originally designed and built by Michael L. Powell, in 1984. Joel McCormack made it faster, fixed lots of bugs, and swiped/wrote a User's Manual. Len Lattanzi ported it to the MIPS.
Conformance:
extensions:
  • foreign function and data interface
  • dynamic array variables
  • subarray parameters
  • multi-dimensional open array parameters
  • inline proceedures
  • longfloat type
  • type-checked interface to C library I/O routines
Restriction:
must pass changes back to Digital
Ports:
vax (ultrix, bsd), mips (ultrix)
Contact:
modula-2@decwrl.pa.dec.com
Updated:
July 6th, 1992

Language:
Modula-2
Package:
m2c
Version:
0.6
Parts:
Modula-2 to C translator
Author:
Vladimir N. Makarov <vmakarov@usa.net>
Location:
http://www.geocities.com/SiliconValley/Lab/4557
Description:
A modula-2 translator to C.
Conformance:
The translator is based on language report in the 4th edition of Wirth's book Programming in Modula-2. The translator also supports of the third edition of Wirth's book.
Ports:
Unix
Portability:
very high (GNU configure)
Support:
Vladimir N. Makarov <vmakarov@usa.net>
Contact:
Vladimir N. Makarov <vmakarov@usa.net>
Updated:
January 5th, 1998

Language:
Modula-2, Modula-3
Package:
m2tom3
Version:
2.00
Parts:
Translator (Modula-2->Modula-3), Modula-2 standard library emulation
Author:
Peter Klein <pk@i3.informatik.rwth-aachen.de>
Location:
ftp://ftp-i3.informatik.rwth-aachen.de/pub/Modula-3-Contrib/m2tom3/m2tom3-2.00.tar.gz
Description:
m2tom3 is a system to port Modula-2 programs to Modula-3. It consists of two parts: 1) A conversion program which tries to create a Modula-3 source text with the same semantics as the Modula-2 input while retaining the original look and feel as good as possible. 2) A base library which tries to emulate the Modula-2 standard library using the Modula-3 standard library.

This version performs a wide range of conversions including WITH-statements, variant RECORDS, qualification of enumeration type literals etc.

For a detailed description, see the enclosed README file.

Requires:
DEC SRC Modula-3 release 3.3
Help:
<pk@i3.informatik.rwth-aachen.de>
Announcements:
comp.lang.modula2, comp.lang.modula3
Contact:
<pk@i3.informatik.rwth-aachen.de>
Updated:
November 30th, 1994

Language:
Modula-2
Package:
mocka
Version:
9404
Parts:
compiler, library, examples, docs
Author:
? Holger Hopp <hopp@ira.uka.de>
Location:
ftp://i44.s10.ira.uka.de/pub/mocka/linux/mocka9404* ftp://sunsite.unc.edu/pub/Linux/devel/modula-2/mocka9404*
Description:
A free version of a Modula-2 compiler for the Intel X86 under Linux or 386BSD (and derivatives?). Source code in Modula-2 is available.
Ports:
Linux and 386BSD (also commercial versions)
Updated:
April 29th, 1994

Language:
Modula-2
Package:
mtc
Version:
9209
Parts:
translator(->C)
Author:
Matthias Martin, Josef Grosch <grosch@cocolab.sub.com>
Location:
ftp://ftp.gmd.de/gmd/cocktail/{mtc,reuse}.tar.Z ftp://ftp.rus.uni-stuttgart.de/pub/unix/programming/compilerbau/{mtc,reuse}.tar.Z ftp://ftp.th-darmstadt.de/pub/programming/languages/compiler-compiler/cocktail/{mtc,reuse}.tar.Z ftp://src.doc.ic.ac.uk/languages/tools/gmd/{mtc,reuse}.tar.Z ftp://gatekeeper.dec.com/.3/plan/gmd/{mtc,reuse}.tar.Z
Description:
A Modula-2 to C translator
Ports:
Unix, Linux, MS-DOS, MS-Windows, OS/2
Contact:
Josef Grosch <grosch@cocolab.sub.com>
Updated:
October 1st, 1992

Language:
Oberon-2
Package:
o2c
Version:
1.4
Author:
Michael van Acken <oberon1@informatik.uni-kl.de> Juergen Zimmermann <jnzimmer@informatik.uni-kl.de>
Location:
ftp://ftp.uni-kl.de/pub/informatik/software/o2c-1.4.tar.gz ftp://cognac.informatik.uni-kl.de/pub/ooc
Description:
o2c is an Oberon-2 compiler that translates into the C dialect accepted by the GNU C compiler (version 2.5.8 or above). The compiler provides it's own make facility. The package includes a symbol file browser and a GNU Emacs mode that allows to use Emacs as a comfortable programming environment for the compiler.

o2c is known to run on several 32bit UNIX-plattforms. It comes with full source-code.

Conformance:
The programming language Oberon-2, Oct. 93, ETH Zuerich
Restriction:
GNU General Public License
Ports:
UNIX, tested on [GNU-cannonical name/GCC version] hppa1.1-hp-hpux/2.5.8 sparc-sun-sunos4.1.3/2.5.8 sparc-sun-sunos4.1.3_U1/2.6.2 iX86-unknown-linux/2.5.8 iX86-unknown-linux/2.6.3
Contact:
oberon1@informatik.uni-kl.de
Updated:
April 1st, 1996

Language:
Oberon2
Package:
Oberon-2 LEX/YACC definition
Version:
1.4
Parts:
parser(yacc), scanner(lex)
Author:
Stephen J Bevan <bevan@cs.man.ac.uk>
Location:
ftp://ftp.psg.com/pub/oberon/tools/o2lexyac.tar.Z http://panther.cs.man.ac.uk/~bevan/oberon
Description:
A LEX and YACC grammar for Oberon 2 based on the one given in the listed reference.
Reference:
The Programming Language Oberon-2 H. M\"{o}ssenb\"{o}ck, N. Wirth Institut f\"{u}r Computersysteme, ETH Z\"{u}rich January 1992 ftp://neptune.inf.ethz.ch/Oberon/Docu/Oberon2.Report.ps.Z
Restriction:
Portions of the source under copyright by U. Manchester.
Status:
un-officially supported
Updated:
July 6th, 1992

Language:
Pascal
Package:
p2c
Version:
1.20
Parts:
translator(Pascal->C)
Author:
Dave Gillespie <daveg@synaptics.com>
Location:
ftp://csvax.cs.caltech.edu
Description:
?
Conformance:
supports ANSI/ISO standard Pascal as well as substantial subsets of HP, Turbo, VAX, and many other Pascal dialects.
Ports:
?
Updated:
April 13th, 1990

Language:
Parallaxis
Package:
parallaxis
Version:
Parallaxis-III
Parts:
?,debugger, viz tools, simulator, x-based profiler
Author:
Thomas Braunl <braunl@informatik.uni-stuttgart.de>
Location:
ftp://ftp.informatik.uni-stuttgart.de/pub/p3 http://www.informatik.uni-stuttgart.de/ipvr/bv/p3
Description:
Parallaxis is a procedural programming language based on Modula-2, but extended for data parallel (SIMD) programming. The main approach for machine independent parallel programming is to include a description of the virtual parallel machine with each parallel algorithm.
Ports:
MP-1, CM-2, Sun-3, Sun-4, DECstation, HP 700, RS/6000
Contact:
? Thomas Braunl <braunl@informatik.uni-stuttgart.de> ?
Updated:
October 23rd, 1992

Language:
Pascal
Package:
Pascal P4 compiler and interpreter
Version:
? 1
Parts:
compiler, assembler/interpreter, documentation
Author:
Urs Ammann, Kesav Nori, Christian Jacobi
Location:
ftp://ftp.cwi.nl/pub/pascal/* or http://www.cwi.nl/~steven/pascal.html
Description:
A compiler for Pascal written in Pascal, producing an intermediate code, with an assembler and interpreter for the code.
Reference:
Pascal Implementation, by Steven Pemberton and Martin Daniels, published by Ellis Horwood, Chichester, UK (an imprint of Prentice Hall), ISBN: 0-13-653-0311. Also available in Japanese.
Contact:
<Steven.Pemberton@cwi.nl>
Updated:
July 5th, 1993

Language:
Pascal
Package:
pasos2
Version:
Alpha
Parts:
Compiler, run-time library
Author:
Willem Jan Withagen <wjw@eb.ele.tue.nl>
Location:
ftp://ftp.eb.ele.tue.nl/pub/src/pascal/pasos2*
Description:
a PASCAL/i386 compiler which generates code for OS/2 and DOS. It uses EMX as DOS extender and GNU/GAS, MASM or TASM as assembler.
Updated:
December 17th, 1993

Language:
pm2
Package:
PRAM emulator and parallel modula-2 compiler ??
Version:
?
Parts:
compiler, emulator
Author:
?
Location:
ftp://cs.joensuu.fi/pub/pram/*
Description:
A software emulator for parallel random access machine (PRAM) and a parallel modula-2 compiler for the emulator. A PRAM consists of P processors, an unbounded shared memory, and a common clock. Each processor is a random access machine (RAM) consisting of R registers, a program counter, and a read-only signature register. Each RAM has an identical program, but the RAMs can branch to different parts of the program. The RAMs execute the program synchronously one instruction in one clock cycle.

pm2 programming language is Modula-2/Pascal mixture having extensions for parallel execution in a PRAM. Parallelism is expressed by pardo-loop- structure. Additional features include privat/shared variables, two synchronization strategies, load balancing and parallel dynamic memory allocation.

Contact:
Simo Juvaste <sjuva@cs.joensuu.fi>
Updated:
Febuary 17th, 1993

Language:
Pascal
Package:
ptc
Version:
?
Parts:
translator(Pascal->C)
Author:
?
Location:
ftp://uxc.sco.uiuc.edu/languages/ptc ? (use archie?)
Description:
?
Contact:
?
Updated:
?

Language:
Pascal
Package:
QCK
Version:
2.0
Parts:
compiler(written in ANSI-C), library, assembler, linker etc.
Author:
Henrik Quintel <quintel@nibelung.Worms.Fh-Rpl.DE>
Location:
top.cs.vu.nl/pub/minix/pascal/
Description:
Supports standard pascal with a few exceptions (set of.. , packed arrays, packed records, procedures/functions as parameters)
Features:
Read the README file
Bugs:
Cos, tan, sin.... does not work right !
Requires:
PC-Minix 1.6.25 1.6.30 1.7.0
Help:
<quintel@nibelung.Worms.Fh-Rpl.DE>
Support:
<quintel@nibelung.Worms.Fh-Rpl.DE>
Announcements:
comp.os.minix, comp.compilers
Contact:
<quintel@nibelung.Worms.Fh-Rpl.DE>
Updated:
January 9th, 1995

Language:
Pascal-Debugger
Package:
QCK
Version:
1.0
Parts:
Debugger/Interpreter(written in ANSI-C)
Author:
Henrik Quintel <quintel@nibelung.Worms.Fh-Rpl.DE>
Location:
Server : top.cs.vu.nl Directory :/pub/minix/pascal/
Description:
Supports standard pascal with a few exceptions (set of.. , packed arrays, packed records, procedures/functions as parameters)
Features:
Read the README file
Bugs:
Cos, tan, sin.... does not work right !
Requires:
PC-Minix 1.6.25 1.6.30 1.7.0
Help:
<quintel@nibelung.Worms.Fh-Rpl.DE>
Support:
<quintel@nibelung.Worms.Fh-Rpl.DE>
Announcements:
comp.os.minix, comp.compilers
Contact:
<quintel@nibelung.Worms.Fh-Rpl.DE>
Updated:
January 9th, 1995

Language:
Modula-3
Package:
SRC Modula-3
Version:
3.5
Parts:
compiler(->C), runtime library, documentation
Author:
DEC Systems Research Center <m3-request@src.dec.com> LINUX version compiled by Michel Dagenais
Location:
ftp://gatekeeper.dec.com/pub/DEC/Modula-3/release-3.5/*.tar.gz
msdos:
ftp://gatekeeper.dec.com/pub/DEC/Modula-3/contrib/m3pc*
os2:
ftp.vlsi.polymtl.ca in pub/m3/os2 (binaries only)
Description:
The goal of Modula-3 is to be as simple and safe as it can be while meeting the needs of modern systems programmers. Instead of exploring new features, we studied the features of the Modula family of languages that have proven themselves in practice and tried to simplify them into a harmonious language. We found that most of the successful features were aimed at one of two main goals: greater robustness, and a simpler, more systematic type system. Modula-3 retains one of Modula-2's most successful features, the provision for explicit interfaces between modules. It adds objects and classes, exception handling, garbage collection, lightweight processes (or threads), and the isolation of unsafe features.
Conformance:
implements the language defined in SPwM3.
Requires:
gcc, preferrably X11
Ports:
i386/AIX 68020/DomainOS Acorn/RISCiX MIPS/Ultrix 68020/HP-UX RS6000/AIX IBMRT/4.3 68000/NextStep i860/SVR4 SPARC/SunOS 68020/SunOS sun386/SunOS Multimax/4.3 VAX/Ultrix FreeBSD Linux
Discussion:
comp.lang.modula3
Contact:
Bill Kalsow <kalsow@src.dec.com>
Updated:
July 9th, 1995

Language:
Pascal, Lisp, APL, Scheme, SASL, CLU, Smalltalk, Prolog
Package:
Tim Budd's C++ implementation of Kamin's interpreters
Version:
?
Parts:
interpretors, documentation
Author:
Tim Budd <budd@cs.orst.edu>
Location:
? ftp://cs.orst.edu/pub/budd/kamin/*.shar
Description:
a set of interpretors written as subclasses based on "Programming Languages, An Interpreter-Based Approach", by Samuel Kamin.
Requires:
C++
Status:
?
Contact:
Tim Budd <budd@fog.cs.orst.edu>
Updated:
September 12th, 1991

Language:
Turbo Pascal, Turbo C
Package:
tptc
Version:
?
Parts:
translator(Turbo Pascal->Turbo C)
Author:
?
Location:
ftp://wuarchive.wustl.edu/mirrors/msdos/turbopas/tptc17*.zip
Description:
(It does come with full source and a student recently used it as a start for a language that included stacks and queues as a built-in data type.
Contact:
?
Updated:
?

Language:
Modula-2
Package:
Ulm's Modula-2 System
Version:
3.0
Parts:
compiler, library, tools, documentation
Author:
Andreas Borchert <borchert@mathematik.uni-ulm.de>
Location:
ftp://ftp.mathematik.uni-ulm.de/pub/soft/modula/ulm/sun4/
Description:
This system may be used like other traditional systems (e.g. cc) from the command line. Documentation is available in the form of manual pages and a HTML tree. The compiler has been derived from the ETHZ compiler for the Lilith system (4 passes, written in Modula-2).

More informations may be found under http://www.mathematik.uni-ulm.de/modula/

Conformance:
PIM3
Restriction:
may be freely distributed unter the terms of the GNU General Public License or in case of the library under the terms of the GNU Library General Public License.
Requires:
SPARCv8 / Solaris 2.x (Note that SunOS 4.x is not supported!)
Ports:
SPARCv8, Sun3, Nixdorf Targon/31, Concurrent 3200 Series
Contact:
Andreas Borchert <borchert@mathematik.uni-ulm.de>
Announcements:
New releases will be announced in comp.lang.modula2.
Updated:
March 6th, 1997

Language:
Oberon
Package:
Ulm's Oberon System
Version:
0.4
Parts:
compiler, tools, library, documentation
Author:
Andreas Borchert <borchert@mathematik.uni-ulm.de>
Location:
ftp://ftp.mathematik.uni-ulm.de/pub/soft/oberon/ulm/sun3/
Description:
In comparison to the Oberon Systems of ETH Zurich this system may be used like other traditional language systems (e.g. cc). It consists of a compiler, a makefile generator, a debugger, and a large library which has a system-independent kernel that supports exception handling, concurrency, synchronization, persistence, and distributed systems. The package contains a copying garbage collector. The compiler is written in Modula-2, the debugger in C, all other parts are written in Oberon. More informations may be found at http://www.mathematik.uni-ulm.de/oberon/
Conformance:
N. Wirth, ``The Programming Language Oberon'', SP&E July 1988 with some selective adaptions of later revisions. The compiler still requires the separation of definitions & modules like Modula-2.
Restriction:
The compiler and associated tools fall under the GNU CopyLeft, and the library under the GNU library general public license.
Ports:
Sun3/SunOS 4.1.1, Nixdorf Targon/31
Status:
Active -- will be ported to SPARC/Solaris 2.x
Announcements:
New releases will be announced in comp.lang.oberon.
Updated:
March 6th, 1997

This site is supported by David Sharnoff and Bryan Miller with some help from Google Adwords.

Please send updates to free-compilers@sharnoff.org

The HTML is maintained by David Muir Sharnoff and the entries themselves are currently maintained by Bryan Miller.

Copyright (c) 1992-1998 David Muir Sharnoff, All Rights Reserved
Copyright (c) 1994-1996, Steven Allen Robenalt, All Rights Reserved