| This is a fairly broad category of languages. Most of the implementations in this set are not good enough to be used in production systems. Some are. In addition to those listed below, see: |
| ABCL/1 (An object-Based Concurrent Language) | |
| ABCL/1 | |
| ? | |
| ? | |
| Akinori Yonezawa, ABCL Group now at Department of Information Science, the University of Tokyo | |
| ftp://camille.is.s.u-tokyo.ac.jp/pub/abcl1/* | |
| Asynchronous message passing to objects. | |
| "ABCL: An Object-Oriented Concurrent System", Edited by Akinori Yonezawa, The MIT Press, 1990, (ISBN 0-262-24029-7) | |
| no commercial use, must return license agreement | |
| Common Lisp | |
| abcl@is.s.u-tokyo.ac.jp | |
| May 23rd, 1990 |
| ABCL ??? | |
| ABCL/R2 | |
| ? | |
| ? | |
| masuhara@is.s.u-tokyo.ac.jp, matsu@is.s.u-tokyo.ac.jp, takuo@is.s.u-tokyo.ac.jp, yonezawa@is.s.u-tokyo.ac.jp | |
| ftp://camille.is.s.u-tokyo.ac.jp/pub/abclr2/* | |
| ABCL/R2 is an object-oriented concurrent reflective language based on Hybrid Group Architecture. As a reflective language, an ABCL/R2 program can dynamically control its own behavior, such as scheduling policy, from within user-program. An an object-oriented concurrent language, this system has almost all functions of ABCL/1. | |
| Common Lisp | |
| January 28th, 1993 |
| ALLOY | |
| ALLOY | |
| 2.0? | |
| interpreter, documentation, examples | |
| Thanasis Mitsolides <mitsolid@cs.nyu.edu> | |
| ftp://cs.nyu.edu/pub/local/alloy/* | |
| ALLOY is a higher level parallel programming language appropriate for programming massively parallel computing systems. It is based on a combination of ideas from functional, object oriented and logic programming languages. The result is a language that can directly support functional, object oriented and logic programming styles in a unified and controlled framework. Evaluating modes support serial or parallel execution, eager or lazy evaluation, non-determinism or multiple solutions etc. ALLOY is simple as it only requires 29 primitives in all (half of which for Object Oriented Programming support). | |
| sparc, ? | |
| June 11th, 1991 |
| Cellang (Cellular Automata) | |
| Cellular | |
| 2.0 | |
| byte-code compiler, runtime, viewer | |
| J Dana Eckart <dana@rucs.faculty.cs.runet.edu> | |
| comp.sources.unix, volume 26 | |
| A system for cellular automata programming. | |
| April 3rd, 1993 |
| Simula 67 | |
| cim | |
| 1.62 | |
| compiler(->C) | |
| Sverre Hvammen Johansen <sj@ifi.uio.no> Stein Krogdahl <steink@ifi.uio.no> Terje Mjoes. | |
| A compiler that translates Simula to C, for further compilation. | |
| Does not include unspecified virtual procedures. | |
|
"Viderefoering og testing av et portabelt Simula-system."
Hovedoppgave til cand.scient.-graden av Terje Mjoes.
Institutt for informatikk, Universitetet i Oslo, April
1989.
"Et portabelt Simula-system bygget paa C." Hovedoppgave til cand.scient-graden av Sverre Johansen. Institutt for informatikk, Universitetet i Oslo, Mai 1987. | |
| Constant must be declared before reference/use. | |
| See bugs and conformance. | |
| A C compiler. | |
| Numerous. | |
| Any UNIX system. (Uses GNU AutoConf.) | |
| Maintained by Sverre Johansen. | |
| E-mail: cim@ifi.uio.no | |
| E-mail: cim@ifi.uio.no | |
| March 20th, 1995. |
| Concurrent ML | |
| Concurrent ML | |
| 0.9.8 | |
| extension | |
| ? | |
| ftp://ftp.cs.cornell.edu/pub/CML* or get SML/NJ | |
| Concurrent ML is a concurrent extension of SML/NJ, supporting dynamic thread creation, synchronous message passing on synchronous channels, and first-class synchronous operations. First-class synchronous operations allow users to tailor their synchronization abstractions for their application. CML also supports both stream I/O and low-level I/O in an integrated fashion. | |
| sml-bugs@research.att.com | |
| SML/NJ 0.75 (or later) | |
| Febuary 18th, 1993 |
| OCCAM 2 (A parallel, concurrent, distributed language) | |
| D7202-oc / TDS | |
| ? | |
| compiler & full toolset system | |
| INMOS Ltd. | |
| ftp://unix.hensa.ac.uk/pub/parallel/occam/compilers/inmos http://www.hensa.ac.uk/parallel/occam/compilers/inmos/index.html | |
| An old version of the INMOS OCCAM compiler & toolset, made freely avaiable by INMOS Ltd. OCCAM is a language for designed to express concurrent algorithms and their implementation on a network of processing components. | |
| The original implementation of OCCAM 2 | |
| "OCCAM 2 reference manual", INMOS ltd, Prentice-Hall International, ISBN 0-13-629312-3 | |
| produces object code for the INMOS transputer (but see KROC entry) | |
| Research purposes only. NO support will be provided by INMOS Ltd. | |
| C & occam compiler (Sun4, PC, & Transputer binaries available) | |
| Sun3, Sun4, PC, INMOS transputer. (Most UNIXes?) | |
| produces object code for the INMOS transputer (but see KROC entry) | |
| Not developed, UNSUPPORTED. | |
| comp.sys.transputer | |
| Dave Beckett <djb1@ukc.ac.uk> | |
| 1-Mar-94 |
| EuLisp | |
| Feel (Free and Eventually Eulisp) | |
| 0.75 | |
| interpreter, documentation | |
| Pete Broadbery <pab@maths.bath.ac.uk> | |
| ftp://ftp.bath.ac.uk/pub/eulisp | |
| |
| most unix | |
| high, but can use shared memory and threads if available | |
| September 14th, 1992 |
| UNITY | |
| HOL-UNITY | |
| 2.1 | |
| verification tool | |
| ? | |
| ? | |
| ? | |
| Flemming Andersen <fa@tfl.dk> ? | |
| ? |
| Hermes | |
| IBM Watson prototype Hermes system | |
| 0.8alpha patchlevel 01 | |
| bytecode compiler, compiler(bytecode->C), runtime | |
| Andy Lowry <lowry@watson.ibm.com> | |
| ftp://software.watson.ibm.com/pub/hermes/README | |
| Hermes is a very-high-level integrated language and system for implementation of large systems and distributed applications, as well as for general-purpose programming. It is an imperative, strongly typed, process-oriented language. Hermes hides distribution and heterogeneity from the programmer. The programmer sees a single abstract machine containing processes that communicate using calls or sends. The compiler, not the programmer, deals with the complexity of data structure layout, local and remote communication, and interaction with the operating system. As a result, Hermes programs are portable and easy to write. Because the programming paradigm is simple and high level, there are many opportunities for optimization which are not present in languages which give the programmer more direct control over the machine. | |
| Strom, Bacon, Goldberg, Lowry, Yellin, Yemini. Hermes: A Language for Distributed Computing. Prentice-Hall, Englewood Cliffs, NJ. 1991. ISBN: O-13-389537-8. | |
| RS6000 Sun-4 NeXT IBM-RT/bsd4.3 (Sun-3 and Convex soon) | |
| comp.lang.hermes | |
| March 22nd, 1992 |
| ICC++ (Illinois Concert C++) and CA (Concurrent Aggregates) | |
| Illinois Concert System | |
| 3.0 | |
| compiler(->C++), interpreter, symbolic debugger, parallel runtime simulator, parallel implementation on TMC CM5, Cray T3D | |
| Various, concert@red-herring.cs.uiuc.edu | |
| http://www-csag.cs.uiuc.edu/projects/concert.html | |
| The Concert System incorporates global analysis for parallel object-oriented languages, including aggressive concrete type inference. In addition, it include an extremely lightweight communication and threading library (compiler-supported). The implementation supports both a parallel C++ and a simple parallel object-oriented language called Concurrent aggregates. | |
| ICC++ and CA documentation available from the web site. | |
|
Andrew Chien, et. al. The Concert System -- Compiler and
Runtime Support for Efficient Fine-Grained Concurrent
Object-Oriented Programs, Department of Computer Science,
University of Illinois, Urbana, Illinois, Technical
Report UIUCDCS-R-93-1815, June 1993.
(Others are available also) | |
| concert@red-herring.cs.uiuc.edu | |
| redistribution is restricted | |
| where new releases are announced | |
| Andrew Chien achien@cs.uiuc.edu | |
| May 7th, 1995 Version 3.0 |
| OCCAM 2 (A parallel, concurrent, distributed language) | |
| KROC (Kent Retargetable Occam Compiler) | |
| 0.1 Beta | |
| compiler, run-time kernel, documentation | |
| David Wood, Professor Peter Welch | |
| ftp://unix.hensa.ac.uk/pub/parallel/occam/projects/occam-for-all/kroc http://www.hensa.ac.uk/parallel/occam/projects/occam-for-all/kroc/ | |
| KROC is a portable OCCAM compiler system that enables OCCAM to run on non-transputer platforms (initially SunOS/SPARC(TM) workstations). KROC works by translating code produced by an INMOS OCCAM Toolset compiler into the native assembler for the target architecture and linking in a small (< 2K bytes) kernel that provides the process scheduling and message-passing functionality of the transputer micro-code. Therefore, you will need an OCCAM Toolset compiler (see requires:). | |
| |
|
"OCCAM 2 reference manual", INMOS ltd, Prentice-Hall
International, ISBN 0-13-629312-3
"Transputer Instruction Set - A Compiler Writers Guide", INMOS Ltd, Prentice-Hall, ISBN 0-13-929100-8 | |
| ? | |
| INMOS OCCAM compiler D7202 from: ftp://unix.hensa.ac.uk/pub/parallel/occam/compilers/inmos/oc | |
| Sun4 (DEC Alpha and Motorola PowerPC to follow) | |
| Sparc processor only at present | |
| actively developed, supported | |
| comp.sys.transputer, <ofa-com-request@ukc.ac.uk> | |
| Occam For All Team <ofa-bugs@ukc.ac.uk> | |
| 4-May-1995 |
| LOOPN | |
| LOOPN | |
| ? | |
| compiler?, simulator | |
| ? | |
| ftp://ftp.utas.edu.au/departments/computer_sci*/loopn.tar.Z | |
| I wish to announce the availability of a compiler, simulator and associated source control for an object-oriented petri net language called LOOPN. In LOOPN, a petri net is an extension of coloured timed petri nets. The extension means firstly that token types are classes. In other words, they consist of both data fields and functions, they can be declared by inheriting from other token types, and they can be used polymorphically. The object-oriented extensions also mean that module or subnet types are classes. LOOPN has been developed over a period of about 5 years at the University of Tasmania, where it has been used in teaching computer simulation and the modelling of network protocols. A petri net is a directed, bipartite graph; nodes are either places (represented by circles) or transitions (represented by rectangles). A net is marked by placing tokens on places. When all the places pointing to a transition (the input places) have a token, the net may be fired by removing a token from each input place and adding a token to each place pointed to by the transition (the output places). Petri nets are used to model concurrent systems, particularly in the network protocol area. | |
| Charles Lakos <charles@probitas.cs.utas.edu.au> | |
| December 20th, 1992 |
| Simula | |
| Lund Simula | |
| 4.07 | |
| ? | |
| ? | |
| ftp://rascal.ics.utexas.edu/misc/mac/programming/+_Simula/* | |
| ? | |
| Lund Software House AB / Box 7056 / S-22007 Lund, Sweden | |
| May 22nd, 1992 |
| Maisie | |
| Maisie | |
| 2.1 | |
| ?, user manual, examples | |
| Wen-Toh Liao <wentoh@may.CS.UCLA.EDU> | |
| ftp://cs.ucla.edu/pub/maisie.2.1.1.3.tar.Z | |
| C-based parallel programming language that uses asynchronous typed-message passing and supports light-weight processes. The language is C with enhancements to allow processes to be defined, created, and destroyed, to send and receive messages, and manipulate the system clock. | |
| PVM/3.1, Cosmic Environment, and SUN Sockets. | |
| June 14th, 1993 |
| UNITY | |
| MasPar Unity | |
| 1.0 | |
| translator(UNITY->MPL), documentation | |
| Martin Huber, University of Karlsruhe, Germany | |
| ftp://SanFrancisco.ira.uka.de/pub/maspar/maspar_unity* | |
| ? | |
| Lutz Prechelt <prechelt@ira.uka.de> | |
| ? |
| MeldC (MELD, C) | |
| MeldC | |
| 2.0 | |
| microkernel, compiler, debugger, manual, examples | |
| MELD Project, Programming Systems Laboratory at Columbia University | |
| obtain license from <MeldC@cs.columbia.edu> | |
| MeldC 2.0: A Reflective Object-Oriented Coordination Programming Language MELDC is a C-based, concurrent, object-oriented language built on a reflective architecture. The core of the architecture is a micro-kernel (the MELDC kernel), which encapsulates a minimum set of entities that cannot be modeled as objects. All components outside of the kernel are implemented as objects in MELDC itself and are modularized in the MELDC libraries. MELDC is reflective in three dimensions: structural, computational and architectural. The structural reflection indicates that classes and meta-classes are objects, which are written in MELDC. The computational reflection means that object behaviors can be computed and extended at runtime. The architectural reflection indicates that new features/properties (e.g., persistency and remoteness) can be constructed in MELDC. | |
| must sign license, cannot use for commercial purposes | |
| Sun4/SunOS4.1 Mips/Ultrix4.2 | |
| <MeldC@cs.columbia.edu> | |
| December 15th, 1992 |
| Tcl | |
| MTtcl - Multi-threaded Tcl | |
| 0.9 | |
| interpreter, library | |
| ftp://ftp.csua.berkeley.edu/pub/mttcl/MTtcl0.9.tar.gz | |
|
The MTtcl package gives Tcl/Tk programmers access to the
multi-threading features of Solaris 2. The package comes in
two parts; a modified version of Tcl 7.4, and a Tcl threads
extension.
Modifications were necessary to enable Tcl to work "safely" in the presence of multiple threads. The Tcl interpretter uses a number of static and global variables to execute scripts. If two threads are using the same global, the behavior of the script may be unpredictable. This "safe" Tcl is called MT-Sturdy Tcl. The threads extension brings multi-thread programming into the Tcl environment. Multiple scripts can be interpretted simultaneously with communication and synchronization between scripts. There is special support for using threads in Tk scripts. Documentation for the threads commands are in the form of man pages. | |
| Sparc, Solaris 2.3, Sparcworks 3.0 C compiler, Tcl 7.4, Tk 4.0 | |
| Sparc Solaris 2.3 | |
| November 2nd, 1994 |
| Parallaxis | |
| parallaxis | |
| Parallaxis-III | |
| ?,debugger, viz tools, simulator, x-based profiler | |
| Thomas Braunl <braunl@informatik.uni-stuttgart.de> | |
| ftp://ftp.informatik.uni-stuttgart.de/pub/p3 http://www.informatik.uni-stuttgart.de/ipvr/bv/p3 | |
| 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. | |
| MP-1, CM-2, Sun-3, Sun-4, DECstation, HP 700, RS/6000 | |
| ? Thomas Braunl <braunl@informatik.uni-stuttgart.de> ? | |
| October 23rd, 1992 |
| PCN | |
| PCN | |
| 2.0 | |
| compiler?, runtime, linker, libraries, tools, debugger, profiler, tracer | |
| Ian Foster <foster@mcs.anl.gov>, Steve Tuecke <tuecke@mcs.anl.gov>, and others | |
| ftp://info.mcs.anl.gov/pub/pcn/pcn_v2.0.tar.Z | |
| PCN is a parallel programming system designed to improve the productivity of scientists and engineers using parallel computers. It provides a simple language for specifying concurrent algorithms, interfaces to Fortran and C, a portable toolkit that allows applications to be developed on a workstation or small parallel computer and run unchanged on supercomputers, and integrated debugging and performance analysis tools. PCN was developed at Argonne National Laboratory and the California Institute of Technology. It has been used to develop a wide variety of applications, in areas such as climate modeling, fluid dynamics, computational biology, chemistry, and circuit simulation. | |
| (workstation nets): Sun4, NeXT, RS/6000, SGI (multicomputers): iPSC/860, Touchstone DELTA (shared memory multiprocessors): Symmetry/Dynix | |
| <pcn@mcs.anl.gov> | |
| Febuary 12th, 1993 |
| pm2 | |
| PRAM emulator and parallel modula-2 compiler ?? | |
| ? | |
| compiler, emulator | |
| ? | |
| ftp://cs.joensuu.fi/pub/pram/* | |
|
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. | |
| Simo Juvaste <sjuva@cs.joensuu.fi> | |
| Febuary 17th, 1993 |
| OCCAM 2 (A parallel, concurrent, distributed language) | |
| SPOC (Southampton Portable Occam Compiler) | |
| 1.1 | |
| compiler(->C), run-time system, documentation, tools, examples | |
| Denis Nicole <dan@ecs.soton.ac.uk>, Sean Wykes <smw@ecs.soton.ac.uk>, Mark Debbage <md@pact.srf.ac.uk>, Mark Hill <mbh@pact.srf.ac.uk> | |
| ftp://ftp.ecs.soton.ac.uk/pub/occam/spoc1.1 ftp://unix.hensa.ac.uk/pub/parallel/occam/compilers/spoc http://www.hensa.ac.uk/parallel/occam/compilers/spoc/index.html | |
| supports the OCCAM 2 programming language. | |
| Full implementation of OCCAM 2 | |
| "OCCAM 2 reference manual", INMOS ltd, Prentice-Hall International, ISBN 0-13-629312-3 | |
| The system generates ANSI-C code, implementing efficient portable concurrency running on a single target processor. Supports cross-linking with NAG Fortran-90 compiler. | |
| GPL'ed | |
| C compiler, gmd compiler tools (available with compiler sources) (Sun4 binaries available) | |
| Sun3, Sun4 | |
| ? Should work on most UNIXes | |
| actively developed, supported | |
| comp.sys.transputer | |
| Dr Denis A Nicole <dan@ecs.soton.ac.uk> | |
| 1-March-1994 |
| SR (Synchronizing Resources) | |
| sr | |
| 2.0 | |
| ?, documentation, tests | |
| ? | |
| ftp://cs.arizona.edu/sr/sr.tar.Z | |
|
SR is a language for writing concurrent programs.
The main language constructs are resources and operations. Resources encapsulate processes and variables they share; operations provide the primary mechanism for process interaction. SR provides a novel integration of the mechanisms for invoking and servicing operations. Consequently, all of local and remote procedure call, rendezvous, message passing, dynamic process creation, multicast, and semaphores are supported. | |
| "The SR Programming Language: Concurrency in Practice", by Gregory R. Andrews and Ronald A. Olsson, Benjamin/Cummings Publishing Company, 1993, ISBN 0-8053-0088-0 | |
| Sun-4, Sun-3, Decstation, SGI Iris, HP PA, HP 9000/300, NeXT, Sequent Symmetry, DG AViiON, RS/6000, Multimax, Apollo, and others. | |
| info-sr-request@cs.arizona.edu | |
| sr-project@cs.arizona.edu | |
| September 1st, 1992 |
| Concurrent Clean | |
| The Concurrent Clean System | |
| 1.3.1 | |
| development environment, documentation, compiler(byte-code), compiler(native), interpreter(byte-code), examples | |
| Research Group on Functional Languages, Research Institute for Declarative Systems, University of Nijmegen | |
| http://www.cs.kun.nl/~clean/ http://www.stw.nl/projecten/N/nif3059.html | |
The Concurrent Clean system is a programming environment for
the lazy functional language Concurrent Clean, developed at the
University of Nijmegen, The Netherlands. The system is one of
the fastest implementations of functional languages available
at the moment. Its I/O libraries make it possible to do modern,
yet purely functional I/O (including windows, menus, dialogs
etc.). Concurrent Clean is now a commercial product but it is
still free for non-commercial use.
| |
| Macintosh, PowerMac (native), Sun-4, Linux, OS2 | |
| clean@cs.kun.nl | |
| January 3rd, 1999 |
| uC++ | |
| uC++ | |
| 4.6 | |
| translator (uC++ to C++), concurrency library, documentation, examples | |
| Peter A. Buhr <pabuhr@uwaterloo.ca> | |
| ftp://plg.uwaterloo.ca/pub/uSystem/u++-4.4.tar.gz | |
| An extended C++ with light-weight concurrency for Unix-like systems. uC++ is pronounced "micro-C++". | |
| Software--Practice and Experience, 22(2):137-172, February 1992. | |
| |
| LINUX non-blocking sockets fail | |
| dmake 4.0+ (ftp://plg.uwaterloo.ca/pub/dmake/dmake40.tar.gz ) GNU C++ 2.6.3+ | |
| Sequent (BSD), SUN Solaris (SPARC) & SunOS (SPARC, M68K), DEC OSF 3.2+ (Alpha), SGI IRIX 5.3+ (MIPS), IBM AIX 3.2+ (RS/6000), HP HP-UX 9.03+ (PA), LINUX 1.2.13+/1.3.20+ (i386+) | |
| Needs "setitimer" and "sigcontext" from Unix-like systems. | |
| September 14th, 1995 |
Please send updates to free-compilers@idiom.com
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