• Documents
  • Authors
  • Tables
  • Other Seers ▼
    RefSeer AckSeer CollabSeer SeerSeer
  • Log in
  • Sign up
  • MetaCart

CiteSeerX logo

Advanced Search Include Citations
Advanced Search Include Citations | Disambiguate

A Syntactic Correspondence between Context-Sensitive Calculi and Abstract Machines (2005)

by Małgorzata Biernacka, Olivier Danvy
Add To MetaCart

Tools

Sorted by:
Results 1 - 10 of 12
Next 10 →

A rational deconstruction of Landin’s SECD machine

by Olivier Danvy, Kevin Millikin - Implementation and Application of Functional Languages, 16th International Workshop, IFL’04, number 3474 in Lecture Notes in Computer Science , 2004
"... Abstract. Landin’s SECD machine was the first abstract machine for applicative expressions, i.e., functional programs. Landin’s J operator was the first control operator for functional languages, and was specified by an extension of the SECD machine. We present a family of evaluation functions corre ..."
Abstract - Cited by 23 (16 self) - Add to MetaCart
Abstract. Landin’s SECD machine was the first abstract machine for applicative expressions, i.e., functional programs. Landin’s J operator was the first control operator for functional languages, and was specified by an extension of the SECD machine. We present a family of evaluation functions corresponding to this extension of the SECD machine, using a series of elementary transformations (transformation into continuation-passing style (CPS) and defunctionalization, chiefly) and their left inverses (transformation into direct style and refunctionalization). To this end, we modernize the SECD machine into a bisimilar one that operates in lockstep with the original one but that (1) does not use a data stack and (2) uses the caller-save rather than the callee-save convention for environments. We also identify that the dump component of the SECD machine is managed in a callee-save way. The caller-save counterpart of the modernized SECD machine precisely corresponds to Thielecke’s doublebarrelled continuations and to Felleisen’s encoding of J in terms of call/cc. We then variously characterize the J operator in terms of CPS and in terms of delimited-control operators in the CPS hierarchy. As a byproduct, we also present several reduction semantics for applicative expressions

A call-by-name lambda-calculus machine

by Jean-louis Krivine - Higher Order and Symbolic Computation
"... We present, in this paper, a particularly simple lazy machine which runs programs written in λ-calculus. It was introduced by the present writer more than twenty years ago. It has been, since, used and implemented ..."
Abstract - Cited by 19 (0 self) - Add to MetaCart
We present, in this paper, a particularly simple lazy machine which runs programs written in λ-calculus. It was introduced by the present writer more than twenty years ago. It has been, since, used and implemented

On the Dynamic Extent of Delimited Continuations

by Dariusz Biernacki, Olivier Danvy , 2005
"... ..."
Abstract - Cited by 17 (5 self) - Add to MetaCart
Abstract not found

A Dynamic Continuation-Passing Style for Dynamic Delimited Continuations

by Dariusz Biernacki, Olivier Danvy, Kevin Millikin , 2006
"... ..."
Abstract - Cited by 11 (6 self) - Add to MetaCart
Abstract not found

Refunctionalization at Work

by Olivier Danvy, Kevin Millikin , 2008
"... ..."
Abstract - Cited by 9 (5 self) - Add to MetaCart
Abstract not found

On the equivalence between small-step and big-step abstract machines: a simple application of lightweight fusion

by Olivier Danvy, Kevin Millikin , 2007
"... ..."
Abstract - Cited by 5 (3 self) - Add to MetaCart
Abstract not found

A study of syntactic and semantic artifacts and its application to lambda definability, strong normalization, and weak normalization in the presence of state

by Johan Munk , 2008
"... ..."
Abstract - Cited by 4 (0 self) - Add to MetaCart
Abstract not found

A Substructural Type System for Delimited Continuations ⋆

by Oleg Kiselyov, Chung-chieh Shan
"... Abstract. We propose type systems that abstractly interpret small-step rather than big-step operational semantics. We treat an expression or evaluation context as a structure in a linear logic with hypothetical reasoning. Evaluation order is not only regulated by familiar focusing rules in the opera ..."
Abstract - Cited by 2 (0 self) - Add to MetaCart
Abstract. We propose type systems that abstractly interpret small-step rather than big-step operational semantics. We treat an expression or evaluation context as a structure in a linear logic with hypothetical reasoning. Evaluation order is not only regulated by familiar focusing rules in the operational semantics, but also expressed by structural rules in the type system, so the types track control flow more closely. Binding and evaluation contexts are related, but the latter are linear. We use these ideas to build a type system for delimited continuations. It lets control operators change the answer type or act beyond the nearest dynamically-enclosing delimiter, yet needs no extra fields in judgments and arrow types to record answer types. The typing derivation of a directstyle program desugars it into continuation-passing style. 1

Inter-Deriving Semantic Artifacts for Object-Oriented Programming

by Olivier Danvy, Jacob Johannsen , 2008
"... ..."
Abstract - Cited by 1 (1 self) - Add to MetaCart
Abstract not found

Towards Compatible and Interderivable Semantic Specifications for the Scheme Programming Language, Part I: Denotational Semantics, Natural Semantics, and Abstract Machines

by Olivier Danvy , 2008
"... We derive two big-step abstract machines, a natural semantics, and the valuation function of a denotational semantics based on the small-step abstract machine for Core Scheme presented by Clinger at PLDI’98. Starting from a functional implementation of this small-step abstract machine, (1) we fuse i ..."
Abstract - Cited by 1 (1 self) - Add to MetaCart
We derive two big-step abstract machines, a natural semantics, and the valuation function of a denotational semantics based on the small-step abstract machine for Core Scheme presented by Clinger at PLDI’98. Starting from a functional implementation of this small-step abstract machine, (1) we fuse its transition function with its driver loop, obtaining the functional implementation of a big-step abstract machine; (2) we adjust this big-step abstract machine so that it is in defunctionalized form, obtaining the functional implementation of a second big-step abstract machine; (3) we refunctionalize this adjusted abstract machine, obtaining the functional implementation of a natural semantics in continuation style; and (4) we closure-unconvert this natural semantics, obtaining a compositional continuation-passing evaluation function which we identify as the functional implementation of a denotational semantics in continuation style. We then compare this valuation function with that of Clinger’s original denotational semantics of Scheme.
The National Science Foundation
  • About CiteSeerX
  • Submit Documents
  • Privacy Policy
  • Help
  • Data
  • Source
  • Contact Us

Developed at and hosted by The College of Information Sciences and Technology

© 2007-2010 The Pennsylvania State University