Abstract
List homomorphisms are functions that are parallelizable using the divide-and-conquer paradigm. We study the problem of finding a homomorphic representation of a given function, based on the Bird-Meertens theory of lists. A previous work proved that to each pair of leftward and rightward sequential representations of a function, based on cons- and snoc-lists, respectively, there is also a representation as a homomorphism. Our contribution is a mechanizable method to extract the homomorphism representation from a pair of sequential representations. The method is decomposed to a generalization problem and an inductive claim, both solvable by term rewriting techniques. To solve the former we present a sound generalization procedure which yields the required representation, and terminates under reasonable assumptions. We illustrate the method and the procedure by the parallelization of the scan-function (parallel prefix). The inductive claim is provable automatically.
Partially supported by grant Ku 996/3-l of the DFG within the Schwerpunkt Deduktion at the University of Tübingen.
Partially supported by the DFG project RecuR2 and by the DAAD exchange programs ARC and PROCOPE.
Preview
Unable to display preview. Download preview PDF.
References
Leo Bachmair. Canonical Equational Proofs. Research Notes in Theoretical Computer Science. Wiley and Sons, 1989.
D. Barnard, J. Schmeiser, and D. Skillicorn. Deriving associative operators for language recognition. Bulletin of EATCS, 43:131–139, 1991.
R. S. Bird. Lectures on constructive functional programming. In M. Broy, editor, Constructive Methods in Computing Science, NATO ASI Series F: Computer and Systems Sciences. Vol. 55, pages 151–216. Springer Verlag, 1988.
G. Blelloch. Scans as primitive parallel operations. IEEE Trans. on Computers, 38(11):1526–1538, November 1989.
Hubert Comon, Marianne Haberstrau, and Jean-Pierre Jouannaud. Syntacticness, cycle-syntacticness, and shallow theories. Inform. and Computation, 111:154–191, 1994.
Ulrich Frans and Heinrich Hu\mann. Term induction proofs by a generalization of narrowing. In C. Rattray and R. G. Clark, editors, The Unified Computation Laboratory — Unifying Frameworks, Theories and Tools, Oxford, UK, 1992. Clarendon Press.
A. Geser and S. Gorlatch. Parallelizing functional programs by term rewriting. Technical Report MIP-9709, Universität Passau, April 1997. Available from http://brahms.fmi.uni-passau.de/cl/papers/GesGor97a.html.
Alfons Geser. Mechanized inductive proof of properties of a simple code optimizer. In Peter D. Mosses, Mogens Nielsen, and Michael I. Schwartzbach, editors, Proc. 6th Theory and Practice in Software Development (TAPSOFT), LNCS 915, pages 605–619. Springer, 1995.
J. Gibbons. The third homomorphism theorem. J. Fun. Programming, 6(4):657–665, 1996.
S. Gorlatch. Constructing list homomorphisms. Technical Report MIP-9512, Universität Passau, August 1995.
S. Gorlatch. Systematic efficient parallelization of scan and other list homomorphisms. In L. Bouge, P. Fraigniaud, A. Mignotte, and Y. Robert, editors, EuroPar'96. Parallel Processing, Lecture Notes in Computer Science 1124, pages 401–408. Springer-Verlag, 1996.
S. Gorlatch. Systematic extraction and implementation of divide-and-conquer parallelism. In H. Kuchen and D. Swierstra, editors, Programming languages: Implementation, Logics and Programs, Lecture Notes in Computer Science 1140, pages 274–288. Springer-Verlag, 1996.
S. Gorlatch and H. Bischof. Formal derivation of divide-and-conquer programs: A case study in the multidimensional FFT's. In D. Mery, editor, Formal Methods for Parallel Programming: Theory and Applications. Workshop at IPPS'97, pages 80–94, 1997.
B. Heinz. Lemma discovery by anti-unification of regular sorts. Technical Report 94-21, TU Berlin, May 1994.
Jean-Pierre Jouannaud. Syntactic theories. In B. Rovan, editor, Mathematical Foundations of Computer Science, pages 15–25, Banská Bystrica, 1990. LNCS 452.
Steffen Lange. Towards a set of inference rules for solving divergence in Knuth-Bendix completion. In Klaus P. Jantke, editor, Proc. Analogical and Inductive Inference, pages 305–316. LNCS 397, 1989.
J. O'Donnell. A correctness proof of parallel scan. Parallel Processing Letters, 4(3):329–338, 1994.
Gordon D. Plotkin. Lattice-theoretic properties of subsumption. Technical Report Memo MIP-R-77, Univ. Edinburgh, UK, 1970.
D. Skillicorn. Foundations of Parallel Programming. Cambridge Univ. Press, 1994.
Muffy Thomas and Phil Watson. Solving divergence in Knuth-Bendix completion by enriching signatures. Theoretical Computer Science, 112(1):145–185, 1993.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1997 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Geser, A., Gorlatch, S. (1997). Parallelizing functional programs by generalization. In: Hanus, M., Heering, J., Meinke, K. (eds) Algebraic and Logic Programming. ALP HOA 1997 1997. Lecture Notes in Computer Science, vol 1298. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0027002
Download citation
DOI: https://doi.org/10.1007/BFb0027002
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-63459-1
Online ISBN: 978-3-540-69555-4
eBook Packages: Springer Book Archive