Abstract
After a short review of some data structures proposed by traditional functional languages, some requirements that a data structuring primitives should meet for suitable implementation on parallel architectures are introduced; the drawbacks of the classic list data structure are evidenced and consequently two alternative structures are proposed; the first is based on unordered collection of objects (and hereafter called bag): its formal definition is given and the non-determinism of the related primitive operators are discussed; the second, limited function, is a way for defining functions over finite and countable domains: its significant implications, mainly related with parallel architectures, are described.
Examples of programs based on these concepts and integrated within the framework of an existing functional language are proposed and properties about the primitives for manipulating unordered collections of objects are stated and proved in Appendix.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
J. Backus, Can Programming be liberated from the Von Newmann Style? A Functional Style and Its Algebra of Programs, Comm. ACM 21, 8 (Aug. 1978), 613–641.
D. P. Friedman and D. S. Wise, CONS Should not evaluate its arguments, in Automata, Languages and Programming, S. Michaelson and R. Milner (ed.), Edinburgh University Press, Edinburgh, 1976, 257–284.
D. P. Friedman and D. S. Wise, Aspects of Applicative Programming for Parallel Processing, IEEE Trans. on Computers C-27, 4 (Apr. 1978), 289–296.
A. Goldberg and D. Robson, Smalltalk-80: The Language and its Implementation, Addison Wesley, Reading, MA, 1983.
D. Gries and N. Gehani, Some Ideas on Data Types in High-Level Languages, Comm. ACM 20, 6 (1977), 414–420.
J. Guttag, Abstract Data Types and the Development of Data Structures, Comm. ACM 20, 6 (1977), 396–404.
D. W. Hillis, The Connection Machine, MIT Press, 1985.
W. D. Hillis and G. L. Steele, Data Parallel Algorithms, Comm. ACM 29, 12 (Dec. 1986), 1170–1183.
R. H. Kuhn and D. A. P. eds., Tutorial on Parallel Processing, IEEE, August 1981.
G. Marino and R. Zaccaria, A Non Deterministic Parallel Interpreter for Functional Programming, DIST-TR-ZZ-9-84, DIST, Sep. 1984.
G. D. Plotkin, A Power Domain Construction, SIAM J. Comput. 5, 3 (Sep. 1976), 452–487.
C. Stanfill and D. Waltz, Toward Memory-based Reasoning, Comm. ACM 29, 12 (Dec. 1986), 1213–1228.
D. A. Turner, SASL Language Manual, University of Kent at Canterboury, Aug. 1979.
D. A. Turner, A New Implementation Technique for Applicative Languages, Software-Practice & Experience 9, (Sep. 1979), 31–49.
D. A. Turner, Miranda: A non-strict functional language with polymorphi types, Proc. IFIP Internat. Conference of Functional Programming and Computer Architecture, Nancy, France, Sep. 1985.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1989 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Marino, G., Succi, G. (1989). Data structures for parallel execution of functional languages. In: Odijk, E., Rem, M., Syre, JC. (eds) PARLE '89 Parallel Architectures and Languages Europe. PARLE 1989. Lecture Notes in Computer Science, vol 366. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-51285-3_51
Download citation
DOI: https://doi.org/10.1007/3-540-51285-3_51
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-51285-1
Online ISBN: 978-3-540-46184-5
eBook Packages: Springer Book Archive