ACM Home Page
Please provide us with feedback. Feedback
Efficient interpretation of synchronizable series expressions
Full text PdfPdf (1.13 MB)
Source Conference on Programming Language Design and Implementation archive
Papers of the Symposium on Interpreters and interpretive techniques table of contents
St. Paul, Minnesota, United States
Pages: 74 - 85  
Year of Publication: 1987
ISBN:0-89791-235-7
Also published in ...
Author
R. C. Waters  MIT Artificial Intelligence Laboratory, 545 Technology Sq., Cambridge MA
Sponsor
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 2,   Downloads (12 Months): 19,   Citation Count: 2
Additional Information:

abstract   references   cited by   index terms   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/29650.29658
What is a DOI?

ABSTRACT

The benefits of programming in a functional style are well known. For example, algorithms which are expressed as compositions of functions operating on series/vectors/streams of data elements are much easier to understand and modify than equivalent algorithms expressed as loops. Unfortunately, many programmers hesitate to use series expressions because they are typically implemented very inefficiently-the prime source of inefficiency being the creation of intermediate series objects.A restricted class of series expressions, obviously synchronizable series expressions, is defined which can be evaluated very efficiently because they do not require the creation of any intermediate series objects. A Common Lisp macro package has been implemented which supports obviously synchronizable series expressions. Using this macro package, programmers can obtain the advantages of expressing computations as series expressions without incurring any runtime overhead. Obviously synchronizable series expressions could be straightforwardly supported in any programming language.


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
[2] F. Allen and J. Cocke, "A Catalogue of Optimizing Transformations", in Design and Optimization of Compilers, R. Rustin (ed.), Prentice-Hall, 1971.
3
4
 
5
 
6
[6] T. Budd, An APL Compiler, Univ. of Arizona, TR 81-17, Oct. 1981.
7
 
8
[8] D. Barstow, "Automatic Programming for Streams", Proc. of the 9th Int. Joint Conf on Artificial Intelligence, Aug. 1985.
 
9
[9] G. Burke and D. Moon, Loop Iteration Macro, MIT/LCS/TM-169, July 1980.
 
10
[10] D. Friedman and D. Wise, CONS Should Not Evaluate Its Arguments, Indiana Tech. Rep. 44, Nov. 1975.
 
11
[11] A. Goldberg and R. Paige, Stream Processing, Rutgers report LCSR-TR-46, Aug. 1983.
12
 
13
[13] G. Kahn and D. MacQueen, "Coroutines and Networks of Parallel Processes", Proc. 1977 IFIP congress, North-Holland, 1977.
 
14
 
15
16
 
17
[17] G. Ruth, S. Alter, and W. Martin, A Very High Level Language for Business Data Processing, MIT/LCS/TR-254, 1981.
 
18
19
20
 
21
 
22
[22] R. Waters, "A Method for Analyzing Loop Programs", IEEE Trans. on Software Engineering, 5(3), May 1979.
 
23
[23] R. Waters, LetS: an Expressional Loop Notation, MIT/AIM-680, Oct. 1982.
24
 
25
 
26
[26] R. Waters, OSS: Efficient Compilation of Synchronizable Series Expressions, MIT/AI/TR-959, June 1987.
 
27
[27] D. Wile, Generator Expressions, USC Information Sciences Institute Technical Report ISI/RR-83-116, 1983.
 
28
 
29
[29] Military Standard Ada Programming Language, ANSI/MIL-STD-1815A-1983, U.S. Government Printing Office, February 1983.
 
30
[30] Lisp Machine Documentation, Symbolics, Cambridge MA, 1986.