ftp://ftp.cs.unc.edu/pub/projects/proteus/ Proteus interpreter <contact>prins@cs.unc.edu <abstract> By expressing programs using Proteus, an executable high-level architecture-independent parallel programming notation, users can develop and evaluate sophisticated parallel algorithms without concern for low-level architecture-specific details. Refinement of a Proteus program consists of modification of a program to reflect restrictions in the use of the concurrency constructs. This restriction expresses the adaptation of a high-level design to constructs efficiently supported on a specific architecture. Programs that are suitably refined in their use of the Proteus notation can be automatically translated to efficient parallel programs in low-level architecture-specific notations. These programs can then be run directly on the targeted parallel machines. The Proteus execution system consists of the Proteus interpreter, including run-time monitoring and analysis functions, and an interface to external modules in the form of existing applications or those generated by translation of Proteus programs. The current version of Proteus is a variation of Isetl that supports thread and data parallelism. Isetl is an interactive implementation of SETL (SETL was developed at the Courant Institute; See Schwartz, J.T., et al, Programming with sets: An introduction to SETL, Springer-Verlag, 1986. ) a programming language built around mathematical notation and objects, primarily sets and functions. It contains the usual collection of statements common to procedural languages, but a richer set of expressions. <environment> To gain portability we rely on low-level parallel virtual machines that are efficiently implemented on classes of parallel architectures. Currently we only use CVL, but in the future we will also be using PVM and Mach threads. Executable versions of the interpreter are available for several machines: Sparc architectures running SunOS Macintosh, System 7.1 DecStations running Ultrix HP 700 series running HPUX IBM RS/6000 running AIX v3.2 The interpreter sources are also available and can be used to build the interpreter for machines not listed above. <description><url>http://www.cs.unc.edu/proteus.html</url> <reference> <url>http://www.cs.unc.edu/proteus-publications.html#plrm</url> <keywords>data parallelism; task parallelism; parallel progamming language; architecture independence <category>ppt-pplang </urc>