ACM Home Page
Please provide us with feedback. Feedback
Sacrificing simplicity for convenience: Where do you draw the line?
Full text PdfPdf (1.04 MB)
Source Annual Symposium on Principles of Programming Languages archive
Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages table of contents
San Diego, California, United States
Pages: 169 - 179  
Year of Publication: 1988
ISBN:0-89791-252-7
Authors
J. H. Williams  IBM Almaden Research Center, 650 Harry Rd., San Jose, CA
E. L. Wimmers  IBM Almaden Research Center, 650 Harry Rd., San Jose, CA
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
SIGACT: ACM Special Interest Group on Algorithms and Computation Theory
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 3,   Downloads (12 Months): 16,   Citation Count: 4
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/73560.73575
What is a DOI?

ABSTRACT

The designers of (functional) programming languages are faced with two occasionally conflicting goals: programmer convenience and semantic simplicity. For example, it is convenient to treat I/O operations as primitive “functions” with side effects, but doing so destroys referential transparency. FL is a functional language that is designed to trade some of the semantic simplicity of a pure language for some of the convenience of a procedural language, by treating I/O operations as primitives with “side effects”, but by using a structuring technique that localizes the scope of those effects. In this way, surprisingly little of the semantic simplicity is lost, as can be seen by comparing the underlying algebraic laws of FL with those of its pure counterpart. FP. This paper describes that comparison and shows that, in fact, for programs involving I/O, the structures of the algebraic laws of the two languages are identical! It concludes by showing that this technique cannot be extended to allow assignment statements without incurring a massive loss in the expressiveness and simplicity of the underlying algebra.


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.

Backus 78
 
BWW 86
J. Baokus, J.H. Williams, and E.L. Wimmers, FL Language Manual (Preliminary version), RJ 5339, IBM Almaden Research Center (November, 1986).
Cartwright 82
HW1 85
 
HW2 86
J.Y. Halpern, J.H. Williams, and E.L. Wimmers, Good rewrite strategies for FP, Proceedings of the S3m~posium on Logic in Computer Science (1986), pp. 149-162.
 
HW3 87
J.Y. Halpern, and E.L. Wimmers, Full Abstraction and Expressive Completeness for FP, Proceedings of the Symposium on Logic in Computer Science (198"/), pp. 25"/-271.
 
Henderson 83
P. Henderson, G. A. Jones, and S. B. Jones, The LispKit Manual, Technical Monograph PRG-32, Oxford University Computing Laboratory, Oxford, England (1983).
Milner 84
 
Steele 78
G. L. Steele, Jr. and G. J. Sussman, The revised report on SCHEME: A dialect of Lisp, A.I. Memo 452, MIT Artificial Intelligence Laboratory (1978).
 
Stoy 77
 
Stoye 85
W. Stoye, A new scheme for writing functional operating systems, Technical Report No. 56, University of Cambridge Computer Laboratory (1985).
 
Turner 82
D.A. Turner, Recursive equations as a programming language, Functional Programming and its Applications, Darlington et al. (editors), Cambridge University Press (1982).


Collaborative Colleagues:
J. H. Williams: colleagues
E. L. Wimmers: colleagues