AESOP home


A Functional Programming Environment Supporting Execution, Partial Execution and Transformation

John Darlington, Peter G. Harrison, Hessam Khoshnevisan, Lee McLoughlin, Nigel Perry, Helen Pull, Mike Reeve, Keith Sephton, R. Lyndon While, Sue Wright

Conference or Workshop Paper
PARLE'89 Parallel Architectures and Languages Europe. Volume I. Eindhoven, The Netherlands, June 12-16
May, 1989
Lecture Notes in Computer Science
Volume 365
DOI 10.1007/3540512845_46

The Functional Programming Section in the Department of Computing at Imperial College has been conducting research aimed at making practical the theoretical benefits inherent in pure functional programming, i.e. more expressive programming languages, software development based on formal program derivation and parallel execution. This work has led to, amongst other things, language design and implementation, the development of some of the earliest program transformation systems and the construction of ALICE, a parallel graph reduction machine.

Recently some of this work has been carried forward within the Flagship project. Flagship is a collaborative project, funded under the United Kingdom's Alvey Programme and running from 1986 until early 1989. The partners involved are ICL (International Computers Limited), Imperial College and Manchester University. Flagship's overall goal is to develop an integrated application development and execution technology based on declarative programming languages (both functional and logic).

Imperial College's contribution involves language design and implementation and the construction of a program development technology and associated tools based on the idea of correctness-preserving program transformations. This has led to the development of a range of transformation technologies for functional programming languages and the implementation of a programming environment that supports these technologies. Details of the transformation technologies themselves have been published elsewhere and so they are only summarised here. In this paper we will concentrate on the integration of these technologies into the programming environment.

First we describe our functional language, Hope+, and introduce an extension to the language that allows the use of logical variables. We then briefly describe each of the transformation technologies that have been developed. Next we show how these are integrated into an environment that supports transformational programming. We give some examples of transformational developments conducted in the environment and show the preliminary results of experiments conducted in developing program forms suitable for efficient execution on ALICE and the Flagship parallel machine. We conclude with a review of the current state of our activities, a discussion of the implications of our work and an outline of our plans for the future.

Information from