We prove the correctness of incremental lambda-lifting, an optimization that attempts to reduce the closure allocation overhead of higher-order programs by changing the scope of nested procedures. This optimization is invalid in the standard denotational semantics of Scheme, because it changes the storage behavior of the program. Our method consists of giving Scheme a denotational semantics in an operationally-based term model in which interaction is the basic observable. Lambda lifting is then shown to preserve meaning in the model
Abstract. We introduce a mechanism called lifting to share predicates between the two components of ...
When combining modules it may be the case that the assembly is partially incorrect (error-prone), bu...
Several recently developed semantics systems automatically generate compilers from denotational desc...
Lambda-lifting and lambda-dropping respectively transform a block-structuredfunctional program into ...
Lambda-lifting a block-structured program transforms it into a set of recursive equations. We presen...
Monads have become a fundamental tool for structuring denotational semantics and programs by abstrac...
AbstractLambda-lifting a block-structured program transforms it into a set of recursive equations. W...
Separation logic is used to reason locally about stateful programs. State ofthe art program logics f...
Formal description of a language gives insight into the language itself. The formal description may ...
Denotational semantics is a powerful technique to formally define programming languages. However, la...
In this paper, we introduce a new formal system, $\Lambda CCL$, based on Curien's Categorical Combi...
This paper proposes a syntactic reformulation of the modular approach to Denotational Semantics in [...
Lifting is a well known technique in resolution theorem proving, logic programming, and term rewri...
The connection between operational and denotational semantics is of longstanding interest in the stu...
I design a machine learning system capable of ‘cumulative learning’, which means that it automatical...
Abstract. We introduce a mechanism called lifting to share predicates between the two components of ...
When combining modules it may be the case that the assembly is partially incorrect (error-prone), bu...
Several recently developed semantics systems automatically generate compilers from denotational desc...
Lambda-lifting and lambda-dropping respectively transform a block-structuredfunctional program into ...
Lambda-lifting a block-structured program transforms it into a set of recursive equations. We presen...
Monads have become a fundamental tool for structuring denotational semantics and programs by abstrac...
AbstractLambda-lifting a block-structured program transforms it into a set of recursive equations. W...
Separation logic is used to reason locally about stateful programs. State ofthe art program logics f...
Formal description of a language gives insight into the language itself. The formal description may ...
Denotational semantics is a powerful technique to formally define programming languages. However, la...
In this paper, we introduce a new formal system, $\Lambda CCL$, based on Curien's Categorical Combi...
This paper proposes a syntactic reformulation of the modular approach to Denotational Semantics in [...
Lifting is a well known technique in resolution theorem proving, logic programming, and term rewri...
The connection between operational and denotational semantics is of longstanding interest in the stu...
I design a machine learning system capable of ‘cumulative learning’, which means that it automatical...
Abstract. We introduce a mechanism called lifting to share predicates between the two components of ...
When combining modules it may be the case that the assembly is partially incorrect (error-prone), bu...
Several recently developed semantics systems automatically generate compilers from denotational desc...