Open Access. Powered by Scholars. Published by Universities.®

Articles 1 - 7 of 7

Full-Text Articles in Programming Languages and Compilers

Definitional Interpreters For Higher-Order Programming Languages, John C. Reynolds Jan 1998

Definitional Interpreters For Higher-Order Programming Languages, John C. Reynolds

College of Engineering and Computer Science - Former Departments, Centers, Institutes and Projects

Abstract. Higher-order programming languages (i.e., languages in which procedures or labels can occur as values) are usually defined by interpreters that are themselves written in a programming language based on the lambda calculus (i.e., an applicative language such as pure LISP). Examples include McCarthy’s definition of LISP, Landin’s SECD machine, the Vienna definition of PL/I, Reynolds ’ definitions of GEDANKEN, and recent unpublished work by L. Morris and C. Wadsworth. Such definitions can be classified according to whether the interpreter contains higher-order functions, and whether the order of application (i.e., call by value versus call by name) in the defined …


Towards A Java Environment For Spmd Programming, Bryan Carpenter, Guansong Zhang, Geoffrey C. Fox, Xiaoming Li Jan 1998

Towards A Java Environment For Spmd Programming, Bryan Carpenter, Guansong Zhang, Geoffrey C. Fox, Xiaoming Li

Northeast Parallel Architecture Center

As a relatively straightforward object-oriented language, Java is a plausible basis for a scientific parallel programming language. We outline a conservative set of language extensions to support this kind of programming. The programming style advocated is Single Program Multiple Data (SPMD), with parallel arrays added as language primitives. Communications involving distributed arrays are handled through a standard library of collective operations. Because the underlying programming model is SPMD programming, direct calls to other communication packages are also possible from this language.


A High Level Spmd Programming Model: Hpspmd And Its Java Language Binding, Guansong Zhang, Bryan Carpenter, Geoffrey C. Fox, Xinying Li Jan 1998

A High Level Spmd Programming Model: Hpspmd And Its Java Language Binding, Guansong Zhang, Bryan Carpenter, Geoffrey C. Fox, Xinying Li

Northeast Parallel Architecture Center

This report introduces a new language, HPJava, for parallel programming on message passing systems. The language provides a high level SPMD programming model. Through examples and performance results, the features of the new programming style, and its implementation, are illustrated.


Language Bindings For A Data-Parallel Runtime, Bryan Carpenter, Geoffrey C. Fox, Donald Leskiw, Xinying Li, Yuhong Wen Jan 1998

Language Bindings For A Data-Parallel Runtime, Bryan Carpenter, Geoffrey C. Fox, Donald Leskiw, Xinying Li, Yuhong Wen

Northeast Parallel Architecture Center

The NPAC kernel runtime, developed in the PCRC (Parallel Compiler Runtime Consortium) project, is a runtime library with special support for the High Performance Fortran data model. It provides array descriptors for a generalized class of HPF-like distributed arrays, support for parallel access to their elements, and a rich library of collective communication and arithmetic operations for manipulating these arrays. The library has been successfully used as a component in experimental HPF translation systems. With prospects for early appearance of fully-featured, efficient HPF compilers looking questionable, we discuss a class of more easily implementable data-parallel language extensions that preserve many …


Considerations In Hpjava Language Design And Implementation, Guansong Zhang, Bryan Carpenter, Geoffrey C. Fox, Xinying Li, Yuhong Wen Jan 1998

Considerations In Hpjava Language Design And Implementation, Guansong Zhang, Bryan Carpenter, Geoffrey C. Fox, Xinying Li, Yuhong Wen

Northeast Parallel Architecture Center

This paper discusses some design and implementation issues in the HPJava language. The language is briefly reviewed, then the class library that forms the foundation of the translation scheme is described. Through example codes, we illustrate how HPJava source codes can be translated straightforwardly to ordinary SPMD Java programs calling this library. This is followed by a discussion of the rationale for introducing the language in the first place, and of how various language features have been designed to facilitate efficient implementation.


Java/Corba Based Real-Time Infrastructure To Integrate Event-Driven Simulations, Collaboration And Distributed Object/Componentware Computing, Geoffrey C. Fox, Wojtek Furmanski, Hasan T. Ozdemir Jan 1998

Java/Corba Based Real-Time Infrastructure To Integrate Event-Driven Simulations, Collaboration And Distributed Object/Componentware Computing, Geoffrey C. Fox, Wojtek Furmanski, Hasan T. Ozdemir

Northeast Parallel Architecture Center

We are discussing the four major standard candidates for distributed object/componentware computing: Java, CORBA, COM and WOM within our proposed coordination framework we call Pragmatic Object Web (POW). We describe our integration approach based on multi-protocol middleware server JWORB (Java Web Object Request Broker) that currently integrates HTTP and IIOP and which we now further develop to also support COM and WOM core functionalities. We are also experimenting with visual data ow authoring front-ends using NPAC WebFlow system on top of JWORB based software bus. Finally, we illustrate our technologies in one major application domain- DoD Modeling and Simulation- where …


Common Runtime Support For High Performance Languages, Geoffrey C. Fox Jan 1998

Common Runtime Support For High Performance Languages, Geoffrey C. Fox

Northeast Parallel Architecture Center

Widespread adoption of parallel computing depends on the availability of improved software environments. An essential component of these environments will be high-level languages. Several languages for exploiting data-parallelism (or task-parallelism) have been developed, or are under development. The stated goal of this project has been to provide a public domain infrastructure for runtime support of these high-level languages. The targeted languages include parallel versions of Fortran and C++, but our intention has been to provide uniform runtime support for many source languages.