A syntactic theory of sequential control
Theoretical Computer Science
Bounded linear logic: a modular approach to polynomial-time computability
Theoretical Computer Science
Observable sequentiality and full abstraction
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Fully abstract semantics for observably sequential languages
Information and Computation
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Syntactic control of interference
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
On the Symmetry of Sequentiality
Proceedings of the 9th International Conference on Mathematical Foundations of Programming Semantics
What is a Universal Higher-Order Programming Language?
ICALP '93 Proceedings of the 20th International Colloquium on Automata, Languages and Programming
LICS '98 Proceedings of the 13th Annual IEEE Symposium on Logic in Computer Science
On Program Equivalence in Languages with Ground-Type References
LICS '03 Proceedings of the 18th Annual IEEE Symposium on Logic in Computer Science
Soft linear logic and polynomial time
Theoretical Computer Science - Implicit computational complexity
Syntactic control of concurrency
Theoretical Computer Science - Automata, languages and programming: Logic and semantics (ICALP-B 2004)
Theoretical Computer Science - Applied semantics: Selected topics
Decidability in syntactic control of interference
ICALP'05 Proceedings of the 32nd international conference on Automata, Languages and Programming
The elimination of nesting in SPCF
TLCA'05 Proceedings of the 7th international conference on Typed Lambda Calculi and Applications
Sequentiality in Bounded Biorders
Fundamenta Informaticae - Typed Lambda Calculi and Applications 2003, Selected Papers
Hi-index | 0.00 |
We use a denotational semantics to show that every term in SPCF (a typed functional language with simple non-local control operators) is contextually equivalent to one which is typable in an affine typing system. Nested function calls and recursive definitions are not affinely typable, and so our result entails that they can be eliminated from SPCF without losing expressiveness. Our proof is based on the observation of Longley that every type of SPCF is a retract of a first-order type. We describe retractions of this kind in bistable biorder models of SPCF which are definable in the affine fragment. This allows us to transform an arbitrary SPCF term into an affine one by mapping it to a first-order term, obtaining an (affine) "normal form", and then projecting back to the original type. We show the flexibility of our approach by considering two variants of SPCF, a finitary, call-byname version and a call-by-value version over the natural numbers. In the infinitary case, (in which we establish in addition that all instances of recursive definition may be replaced with iteration) our proof is based on an analysis of the relationship between SPCF definable functions and strategies for computing them sequentially.