ACM Home Page
Please provide us with feedback. Feedback
Multi-return function call
Full text PdfPdf (126 KB)
Source International Conference on Functional Programming archive
Proceedings of the ninth ACM SIGPLAN international conference on Functional programming table of contents
Snow Bird, UT, USA
SESSION: Session III table of contents
Pages: 79 - 89  
Year of Publication: 2004
ISBN:1-58113-905-5
Also published in ...
Authors
Olin Shivers  Georgia Tech College of Computing
David Fisher  Georgia Tech College of Computing
Sponsors
ACM: Association for Computing Machinery
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 5,   Downloads (12 Months): 64,   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/1016850.1016864
What is a DOI?

ABSTRACT

It is possible to extend the basic notion of "function call" to allow functions to have multiple return points. This turns out to be a surprisingly useful mechanism. This paper conducts a fairly wide-ranging tour of such a feature: a formal semantics for a minimal λ -calculus capturing the mechanism; a motivating example; a static type system; useful transformations; implementation concerns and experience with an implementation; and comparison to related mechanisms, such as exceptions, sum-types and explicit continuations. We conclude that multiple-return function call is not only a useful and expressive mechanism, both at the source-code and intermediate-representation level, but is also quite inexpensive to implement.


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
Henk Barendregt. The Lambda Calculus. North Holland, revised edition, 1984.
3
 
4
 
5
Andrzej Filinksi. Declarative Continuations and Categorical Duality. Master's thesis, Computer Science Department, University of Copenhagen (August 1989). DIKU Report 89/11.
6
 
7
American National Standard Programming Language FOR-TRAN. X3.9-1978, American National Standards Institute, Inc., April, 1978. Available at http://www.fortran.com/F77_std/rjcnf.html
 
8
S. C. Johnson. Yacc-yet another compiler compiler. Tech report CSTR-32, AT&T Bell Laboratories, Murray Hill, NJ.
9
 
10
R. Milner. A theory of type polymorphism in programming. Journal of Computer and System Sciences, 17:348--375, August 1978.
 
11
12
13
14
15
 
16
Olin Shivers. SRFI-32: Sort libraries. Scheme Request for Implementation 32, available at URL http://srfi.schemers.org/. Forthcoming.
 
17
 
18
Mitchell Wand. Complete type inference for simple objects, In Proceedings of the Second Symposium on Logic in Computer Science, Ithaca, New York, pages 37--44, June 1987.


Collaborative Colleagues:
Olin Shivers: colleagues
David Fisher: colleagues