Abstract
The problem of partitioning grid-based applications for parallel computing can be solved easily and intuitively in a logic programming language such as Prolog, using only the single assignment property of the logic variable, and not the backtracking. We show that such a logic program can be transformed in a systematic way into a circular functional program, which runs 10 times faster than the original logic program, The transformation proceeds in a number of steps. The first step is novel, and we give a correctness proof. Our reasoning also uses a novel combination of concepts from both the logical and functional paradigms. Copyright (C) 1999 John Wiley & Sons, Ltd.
Original language | English |
---|---|
Pages (from-to) | 1173-1200 |
Number of pages | 28 |
Journal | Software-Practice & Experience |
Volume | 29 |
Issue number | 13 |
DOIs | |
Publication status | Published - Nov 1999 |
Keywords
- declarative programming
- grid-based problems
- parallel computing
- circular programs
- modes and types
- FUNCTIONAL LANGUAGE
- PROVING TERMINATION
- PARALLEL
- PROGRAMS
- LOGIC