Results 1 - 10
of
17
Efficient Parallel Programming with Algorithmic Skeletons
- in Proceedings of EuroPar '96
, 1996
"... . Algorithmic skeletons are polymorphic higher-order functions representing common parallelization patterns and implemented in parallel. They can be used as the building blocks of parallel and distributed applications by integrating them into a sequential language. In this paper, we present a new ap ..."
Abstract
-
Cited by 22 (3 self)
- Add to MetaCart
. Algorithmic skeletons are polymorphic higher-order functions representing common parallelization patterns and implemented in parallel. They can be used as the building blocks of parallel and distributed applications by integrating them into a sequential language. In this paper, we present a new approach to programming with skeletons. We integrate the skeletons into an imperative host language enhanced with higher-order functions and currying, as well as with a polymorphic type system. We thus obtain a high-level programming language which can be implemented very efficiently. After describing a series of skeletons which work with distributed arrays, we give two examples of parallel algorithms implemented in our language, namely matrix multiplication and a statistical numerical algorithm for solving partial differential equations. Run-time measurements show that we approach the efficiency of message-passing C up to a factor between 1 and 1.75. 1 Introduction Algorithmic skeletons repr...
Compilation of Functional Languages Using Flow Graph Analysis
, 1994
"... syntax, and syntactic and semantic domains of a flow graph Figure 9. Semantic equations Def and Exp of a flow graph The first argument to the functions Def and Exp specifies a set of nodes that represent a flow graph, from which the element(s) of current interest are selected by pattern matching. ..."
Abstract
-
Cited by 16 (12 self)
- Add to MetaCart
syntax, and syntactic and semantic domains of a flow graph Figure 9. Semantic equations Def and Exp of a flow graph The first argument to the functions Def and Exp specifies a set of nodes that represent a flow graph, from which the element(s) of current interest are selected by pattern matching.
Parametricity as a Notion of Uniformity in Reflexive Graphs
, 2002
"... data types embody uniformity in the form of information hiding. Information hiding enforces the uniform treatment of those entities that dier only on hidden information. ..."
Abstract
-
Cited by 11 (3 self)
- Add to MetaCart
data types embody uniformity in the form of information hiding. Information hiding enforces the uniform treatment of those entities that dier only on hidden information.
A Pragmatic Approach to the Analysis and Compilation of Lazy Functional Languages
- Department of Electronics and Computer Science, University of Southampton
, 1990
"... The aim of the FAST Project is to provide an implementation of a functional language, Haskell, on a transputer array. An important component of the system is a highly optimising compiler for Haskell to a single transputer. This paper presents a methodology for describing the optimisations and code g ..."
Abstract
-
Cited by 8 (2 self)
- Add to MetaCart
The aim of the FAST Project is to provide an implementation of a functional language, Haskell, on a transputer array. An important component of the system is a highly optimising compiler for Haskell to a single transputer. This paper presents a methodology for describing the optimisations and code generation for such a compiler, which allows the exploitation of many standard and some new techniques in a clear and concise notation. Results are included showing that the optimisations give significant improvement over the standard combinator and (Johnsson's 1984) G-machine implementations. 1 Introduction The FAST (Functional programming for ArrayS of Transputers) Project, funded by the UK government, is a collaboration between the University of Southampton, Imperial College, London and Meiko Ltd. of Bristol. The aim is to provide an implementation of a pure, lazy, functional language such as Haskell [12] on transputer arrays. The methodology for distribution is a variant of the process ...
Compilation of non-linear, second order patterns on S-expressions
- In 2nd Int. Symp. on Programming Language Implementation and Logic Programming, LNCS 456
, 1990
"... Pattern matching is a key concept for rule-based expert systems. Simple pattern interpreters appear in nearly every book on Lisp. Pattern matching is also a useful tool for case analyses as provided by functional languages such as ML or Miranda TM . These two uses are somewhat different since func ..."
Abstract
-
Cited by 8 (1 self)
- Add to MetaCart
Pattern matching is a key concept for rule-based expert systems. Simple pattern interpreters appear in nearly every book on Lisp. Pattern matching is also a useful tool for case analyses as provided by functional languages such as ML or Miranda TM . These two uses are somewhat different since functional languages emphasize a discrimination based on types while Lisp, or Plasma, make use of S-expressions or segments of S-expressions within patterns. The paper presents an intermediate language for patterns and its denotational semantics. This reduced language is powerful enough to express boolean composition of patterns as well as segment handling and unbounded pattern repetition. A compiler is then defined which translates patterns into functional code. We discuss some compilation variant as well as the integration of the pattern sub-language into Lisp. These capabilities make pattern matching an useful and efficient tool for a wide class of applicative languages and allow to incorpora...
Sassy: A Language and Optimizing Compiler for Image Processing on Reconfigurable Computing Systems
- in International Conference on Vision Systems. 1999. Las Palmas de Gran Canaria
, 1999
"... This paper presents Sassy, a single-assignment variant of the C programming language developed in concert with Khoral Inc. and designed to exploit both coarse-grain and ne-grain parallelism in image processing applications. Sassy programs are written in the Khoros software development environment, ..."
Abstract
-
Cited by 6 (4 self)
- Add to MetaCart
This paper presents Sassy, a single-assignment variant of the C programming language developed in concert with Khoral Inc. and designed to exploit both coarse-grain and ne-grain parallelism in image processing applications. Sassy programs are written in the Khoros software development environment, and can be manipulated inside Cantata (the Khoros GUI). The Sassy language supports image processing with true multidimensional arrays, sophisticated array access and windowing mechanisms, and built-in reduction operators (e.g. histogram). At the same time, Sassy restricts C so as to enable compiler optimizations for parallel execution environments, with the goal of reducing data traffic, code size and execution time. In particular, the Sassy language and its optimizing compiler target reconfigurable systems, which are fine-grain parallel processors. Recongurable systems consist of field-programmable gate arrays (FPGAs), memories and interconnection hardware, and can be used as inexpensive co-processors with conventional workstations or PCs. The compiler optimizations needed to generate highly optimal host, FPGA, and communication code, are discussed. The massive parallelism and high throughput of reconfigurable systems makes them well-suited to image processing tasks, but they have not previously been used in this context because they are typically programmed in hardware description languages such as VHDL. Sassy was developed as part of the Cameron project, with the goal of elevating the programming level for reconfigurable systems from hardware circuits to programming language.
Introducing CLOVER: an Object-Oriented Functional Language
- In Proc. Eighth International Workshop on Implementation of Functional Programming Languages
, 1996
"... . The search for a language which combines both functional and object-oriented features has a long and distinguished history [15, 16, 10, 8, 9, 34, 6, 17, 33, 39, 19]. The aim is to integrate the formal methods benefits of functional programming with the software engineering benefits of both paradig ..."
Abstract
-
Cited by 5 (4 self)
- Add to MetaCart
. The search for a language which combines both functional and object-oriented features has a long and distinguished history [15, 16, 10, 8, 9, 34, 6, 17, 33, 39, 19]. The aim is to integrate the formal methods benefits of functional programming with the software engineering benefits of both paradigms. However, to date we know of no language which can claim to be both purely functional and purely object-oriented (and retains complete type safety). We present CLOVER, a new language which is 100% functional and 99% object-oriented. It is also completely type safe. We explain the design issues and how CLOVER achieves its aim. We also explain the "missing" 1%, discuss its relevance, and illustrate how its loss can be extenuated through the use of a new visual programming notation. 1 Introduction The object-oriented (OO) paradigm, together with an appropriate methodology, has successfully delivered many large projects. OO design (OOD) is used extensively in industry since it provides good ...
Programming in concurrent logic languages
- IEEE Software
, 1995
"... Coordination using a Single-Writer Multiple-Reader ..."
An Object-Oriented Functional Approach to Information Systems Engineering
- In CaiSE’97 - Fourth Doctoral Consortium on Advanced Information Systems Engineering
, 1997
"... . This paper concentrates on the search for a programming language and supporting theory which combines features from the objectoriented and functional paradigms. The aim is to integrate the formal methods benefits of functional programming with the software engineering benefits of both paradigms. I ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
. This paper concentrates on the search for a programming language and supporting theory which combines features from the objectoriented and functional paradigms. The aim is to integrate the formal methods benefits of functional programming with the software engineering benefits of both paradigms. In this paper, which derives from the author's recently-published paper [CB96], we first discuss related work and identify the research problems. We then present our solutions and contribution to this field, CLOVER, a completely type-safe language which is 100% functional and 99% object-oriented. Finally, we explain how the "missing 1%" represents the core incompatibility which can be extenuated by supplying new interpretations and a new visual programming notation. 1 Introduction The object-oriented (OO) paradigm, together with an appropriate methodology, has successfully delivered many large information systems. OO design (OOD) is used extensively in industry since it provides good control...

