ACM Home Page
Please provide us with feedback. Feedback
Para-functional programming: a paradigm for programming multiprocessor systems
Full text PdfPdf (1.59 MB)
Source Annual Symposium on Principles of Programming Languages archive
Proceedings of the 13th ACM SIGACT-SIGPLAN symposium on Principles of programming languages table of contents
St. Petersburg Beach, Florida
Pages: 243 - 254  
Year of Publication: 1986
Authors
Sponsor
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 4,   Downloads (12 Months): 18,   Citation Count: 12
Additional Information:

abstract   references   cited by   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/512644.512667
What is a DOI?

ABSTRACT

One of the most important pragmatic advantages of functional languages is that concurrency in a program is <i>implicit</i> -- there is no need for special constructs to express parallelism as is required in most conventional languages. Furthermore, it is fairly easy for compilers to automatically determine the concurrency as a step toward decomposing a program for execution on a suitable parallel architecture. Yet it is often the case that one knows precisely the <i>optimal decomposition</i> for execution on a particular machine, and one can never expect a compiler to determine such optimal mappings in all cases. This paper is concerned with ways to allow the programmer to <i>explicitly</i> express this mapping of program to machine, by using annotations that, given a few minor constraints, cannot alter the functional semantics of the program. We show through several detailed examples the expressiveness and conciseness of the resulting "para-functional" programming methodology, using an experimental language called <i>ParAlfl</i> based on our ideas. We also give a formal denotational description of the mapping semantics using a notion of <i>execution trees.</i>This research was supported in part by NSF Grants DCR-8403304 and DCR-8451415, and a Faculty Development Award from IBM.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
 
2
Arvind and Gostelow, K. P. "The U-interpreter". <i>Computer 15,</i> 2 (Feb. 1982), 42--50.
 
3
4
 
5
Burn, G. L., Hankin, C. L., and Abramsky, S. The theory and practice of strictness analysis for higher order functions. DoC 85/6, Imperial College of Science and Technology, Department of Computing, April, 1985.
6
7
 
8
Davis, A. L. Data driven nets: A maximally concurrent, procedural, parallel pocess representation for distributed control systems. UUCS-78--108, Univ. of Utah, July, 1978.
 
9
Deminet, J. "Experience with multiprocessor algorithms". <i>IEEE Trans. on Computers C-41,</i> 4 (April 1982), 278--287.
10
11
 
12
13
14
15
16
 
17
Hudak, P. ALFL Reference Manual and Programmers Guide. Research Report YALEU/DCS/RR-322, Second Edition, Yale University, Oct., 1984.
 
18
 
19
 
20
Hudak, P. and Young, J. A set-theoretic characterization of function strictness in the Lambda Calculus. Research Report YALEU/DCS/RR-391, Yale University, June, 1985.
21
22
 
23
Intel Corporation. IPSC User's Guide -- Preliminary. 176455--001. Intel Corporation, July, 1985.
 
24
Johnsson. T. The G-machine: an abstract machine for graph reduction. PMG. Dept. of Computer Science, Chalmers Univ. of Tech., Feb., 1985.
 
25
Keller, R. M., Lindstrom, G., and Patil, S. A loosely-coupled applicative multi-processing system. AFIPS, AFIPS, June, 1979, pp. 613--622.
 
26
Keller, R. M., Jayaraman. B., Rose, D., Lindstrom, G. FGL programmer's guide. AMPS Technical Memo 1, Department of Computer Science, University of Utah, July, 1980.
 
27
Keller, R. M. FEL programmer's guide. AMPS TR 7. University of Utah. March, 1982.
 
28
Keller, R. M. and Lin, F.C.H. "Simulated performance of a reduction-based multiprocessor". <i>IEEE Computer 17,</i> 7 (July 1984), 70--82.
 
29
Keller, R. M. and Lindstrom, G. Approaching distributed database implementations through functional programming concepts. Int'l Conf. on Distributed Systems, May, 1985.
30
31
 
32
Mycroft. A. <i>Abstract Interpretation and Optimizing Transformations for Applicative Programs.</i> Ph.D. Th., Univ. of Edinburgh, 1981.
 
33
34
 
35
Shapiro, E. Systolic programming: a paradigm of parallel processing. Dept. of Applied Mathematics CS84-21. The Weizmann Institute of Science. Aug., 1984.
36
 
37
 
38
Turner, D. A. SASL language manual. University of St. Andrews, 1976.
 
39

CITED BY  12
Collaborative Colleagues:
Paul Hudak: colleagues
Lauren Smith: colleagues