| Sacrificing simplicity for convenience: Where do you draw the line? |
| Full text |
Pdf
(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 |
|
| Publisher |
|
| Bibliometrics |
Downloads (6 Weeks): 3, Downloads (12 Months): 16, Citation Count: 4
|
|
|
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
|
Joseph Y. Halpern , John H. Williams , Edward L. Wimmers , Timothy C. Winkler, Denotational semantics and rewrite rules for FP, Proceedings of the 12th ACM SIGACT-SIGPLAN symposium on Principles of programming languages, p.108-120, January 14-16, 1985, New Orleans, Louisiana, United States
[doi> 10.1145/318593.318623]
|
| |
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).
|
|