Denotational semantics and rewrite rules for FP
POPL '85 Proceedings of the 12th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Communications of the ACM
Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory
Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
The semantics of lazy (and industrious) evaluation
LFP '82 Proceedings of the 1982 ACM symposium on LISP and functional programming
How to make destructive updates less destructive
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
An operational semantics for I/O in a lazy functional language
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
An approach to support automatic generation of user interfaces
ACM Transactions on Programming Languages and Systems (TOPLAS)
Relating operational and denotational semantics for input/output effects
Mathematical Structures in Computer Science
Hi-index | 0.00 |
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.