Results 11 -
15 of
15
Massively Parallel Programming Languages -- A Classification of Design Approaches
"... This paper presents the results of a study in which we examined about 50 parallel programming languages in order to detect typical approaches towards supporting massive parallelism. Based on a classification into nine classes, semantic properties affecting the development of parallel programs are co ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
This paper presents the results of a study in which we examined about 50 parallel programming languages in order to detect typical approaches towards supporting massive parallelism. Based on a classification into nine classes, semantic properties affecting the development of parallel programs are compared. From a consideration of the general function of programming languages in software engineering, we derive basic requirements on parallel languages.
Introduction to Functional Programming using Gofer
, 1990
"... ing out and studying those patterns of computation as useful objects in their own right leads to further insights into the nature of computation. The list operators studied later in these notes follow this approach. ffl Functional programs are usually an order of magnitude more concise than their i ..."
Abstract
- Add to MetaCart
ing out and studying those patterns of computation as useful objects in their own right leads to further insights into the nature of computation. The list operators studied later in these notes follow this approach. ffl Functional programs are usually an order of magnitude more concise than their imperative counterparts. Besides being shorter, they can be much more readable. The functional community like to cite studies that show the number of bugs per line is more or less constant, independent of the level of the language in use. Higher-level languages encode more concept per line, and therefore have relatively fewer bugs. ffl Functional programs are often more akin to formal specifications than their conventional counterparts. A good notation goes a long way towards solving the problem[47]. ffl Lazy evaluation permits a new approach to some algorithms. It is a simple but powerful idea that can remove the need for explicit backtracking, and can allow the programmer to manipulate in...
Survey of the Equational Logic Programming Project
- In Colloquium on Resolution of Equations in Algebraic Structures
, 1987
"... In 1975 I started a small project to explore the consequences of implementing equational programs with no semantic compromises. Latest results include a compiler that executes exactly the logical consequences of an equational program, with run-time speed comparable to compiled Franz LISP. This paper ..."
Abstract
- Add to MetaCart
In 1975 I started a small project to explore the consequences of implementing equational programs with no semantic compromises. Latest results include a compiler that executes exactly the logical consequences of an equational program, with run-time speed comparable to compiled Franz LISP. This paper surveys the development of the project, through theoretical foundations, algorithm development, design and implementation, application, and directions for the future. 1 Introduction This paper surveys a small project aimed at providing a style of logic programming based on equational logic. The project was always intended as an exploration of radical possibilities in programming languages, rather than as an attempt to support any particular application. Christoph Hoffmann was an equal collaborator from 1977 to 1983. Paul Chew and Robert Strandh made significant contributions in their doctoral dissertations, and Paul Golick This work was supported by NSF grant DCR-8601843. This paper was...
EM code Semantics, Analysis, and Optimization
"... This paper is a complete presentation of EM code, an intermediate code for representing the pattern-matching automata produced by the Equational Logic Programming system. We present the abstract syntax and operational and denotational semantics of EM code. We then describe in detail methods for ..."
Abstract
- Add to MetaCart
This paper is a complete presentation of EM code, an intermediate code for representing the pattern-matching automata produced by the Equational Logic Programming system. We present the abstract syntax and operational and denotational semantics of EM code. We then describe in detail methods for analysis, optimization, and partial evaluation of EM code programs. This paper is intended as a general reference, and does not assume any prior knowledge of EM code or equational logic programming (except as motivation for reading this paper). Familiarity with term-rewriting systems and lazy evaluation is helpful. Contents 1 Introduction 3 2 Abstract Syntax and Operational Semantics 5 2.1 Abstract Machine : : : : : : : : : : : : : : : : : : : : : : : : : : : 5 2.2 Abstract Syntax : : : : : : : : : : : : : : : : : : : : : : : : : : : 7 2.3 Operational Semantics : : : : : : : : : : : : : : : : : : : : : : : : 8 2.3.1 Heap Memory : : : : : : : : : : : : : : : : : : : : : : : : : 8 2.3.2...
Optimization of Equational Programs Using Partial Evaluation
- Proceedings of the ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation, SIGPLAN Notices
, 1991
"... We describe an application of partial evaluation to the optimization of Equational Logic programs. Our method treats the right-hand sides of reduction rules as partial input to subsequent reduction steps, allowing us to produce specialized forms of the rewriting system that are more efficient in spa ..."
Abstract
- Add to MetaCart
We describe an application of partial evaluation to the optimization of Equational Logic programs. Our method treats the right-hand sides of reduction rules as partial input to subsequent reduction steps, allowing us to produce specialized forms of the rewriting system that are more efficient in space and time. Our implementation of Equational Logic Programming compiles source equations into a term-rewriting system that is subsequently compiled into assembly code. The term-rewriting system is implemented by an intermediate code called EM code, and we perform our program optimizations on this intermediate form. Use of EM code allows us to perform the optimizing transformations with a succinct set of rewrite rules. One interesting feature of our method is that the partial evaluation can be carried out by straightforward general-purpose program optimizations, and does not require complicated interpreters or semantic analysis. 1 Introduction The traditional rewrite engine of an equatio...

