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
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
LICS '98 Proceedings of the 13th Annual IEEE Symposium on Logic in Computer Science
The logic and expressibility of simply-typed call-by-value and lazy languages
The logic and expressibility of simply-typed call-by-value and lazy languages
Soft linear logic and polynomial time
Theoretical Computer Science - Implicit computational complexity
Theoretical Computer Science - Applied semantics: Selected topics
On the Expressiveness of Affine Programs with Non-local Control: The Elimination of Nesting in SPCF
Fundamenta Informaticae - Typed Lambda Calculi and Applications 2005, Selected Papers
On the Expressiveness of Affine Programs with Non-local Control: The Elimination of Nesting in SPCF
Fundamenta Informaticae - Typed Lambda Calculi and Applications 2005, Selected Papers
Hi-index | 0.00 |
We use a fully abstract denotational model to show that nested function calls and recursive definitions can be eliminated from SPCF (a typed functional language with simple non-local control operators) without losing expressiveness. We describe — via simple typing rules — an affine fragment of SPCF in which function nesting and recursion (other than iteration) are not permitted. We prove that this affine fragment is fully expressive in the sense that every term of SPCF is observationally equivalent to an affine term. Our proof is based on the observation of Longley — already used to prove universality and full abstraction results for models of SPCF — that every type of SPCF is a retract of a first-order type. We describe retractions of this kind 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. In the case of finitary SPCF, the retraction is based on a simple induction, which yields bounds for the size of the resulting term. In the infinitary case, it is based on an analysis of the relationship between SPCF definable functions and strategies for computing them sequentially.