Open AccessDissertation
Prototyping parallel functional intermediate languages
Andrew David Ben-Dyke
- 01 Jan 1999
9
TL;DR: This thesis outlines a framework for rapidly prototyping non-strict higher-order functional programming languages based on the traditional three-phase compiler model, where the design process is driven by the development of various semantic descriptions of the language.
read more
Abstract: Non-strict higher-order functional programming languages are elegant, concise, mathematically sound and contain few environment-specific features, making them obvious candidates for harnessing high-performance architectures. The validity of this approach has been established by a number of experimental compilers. However, while there have been a number of important theoretical developments in the field of parallel functional programming, implementations have been slow to materialise. The myriad design choices and demands of specific architectures lead to protracted development times. Furthermore, the resulting systems tend to be monolithic entities, and are difficult to extend and test, ultimatly discouraging experimentation. The traditional solution to this problem is the use of a rapid prototyping framework.
However, as each existing systems tends to prefer one specific platform and a particular way of expressing parallelism (including implicit specification) it is difficult to envisage a general purpose framework. Fortunately, most of these systems have at least one point of commonality: the use of an intermediate form. Typically, these abstract representations explicitly identify all parallel components but without the background noise of syntactic and (potentially arbitrary) implementation details. To this end, this thesis outlines a framework for rapidly prototyping such intermediate languages. Based on the traditional three-phase compiler model, the design process is driven by the development of various semantic descriptions of the language. Executable versions of the specifications help to both debug and informally validate these models. A number of case studies, covering the spectrum of modern implementations, demonstrate the utility of the framework.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
The C programming language
Brian W. Kernighan,Dennis M. Ritchie +1 more
- 01 Jan 1978
TL;DR: This ebook is the first authorized digital version of Kernighan and Ritchie's 1988 classic, The C Programming Language (2nd Ed.), and is a "must-have" reference for every serious programmer's digital library.
2.2K
A loosely-coupled applicative multi-processing system
Robert M. Keller,Gary Lindstrom,Suhas Patil +2 more
- 30 Dec 1899
TL;DR: The architecture of highly-parallel machines has received increased attention from researchers over the past decade as mentioned in this paper, with many researchers content with proposing elaborate machine architectures without giving due consideration to how such machines would ultimately be programmed to exploit their available computational power.
36
References
Simple register spilling in a retargetable compiler
TL;DR: This paper describes the management of register spills in a retargetable C compiler so that the common case (no spills) generates respectable code quickly and the uncommon case (spills) is less efficient but as simple as possible.
26
Arrays, non-determinism, side-effects, and parallelism: A functional perspective
Paul Hudak
- 01 Sep 1987
TL;DR: In this article, a special functional syntax is introduced that captures typical array-assignment patterns, and the syntax falls somewhere in between the purely functional and (im)purely imperative, and makes the inferencing problem fairly easy.
24
•Book
"Functional Programming, Glasgow 1992"
John Launchbury,Patrick Sansom +1 more
- 24 Jun 1993
TL;DR: A new solution for the I/O problem which is incorporated in the language Concurrent Clean and can in principle be applied for any other functional language as well provided that it actually uses graph rewriting semantics in the implementation.
24
•Book
Parallel SML: A functional language and its implementation in Dactl
Kevin Hammond
- 01 Jan 1991
24