• 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 functional correspondence between callby-need evaluators and lazy abstract machines (2004)

by M S Ager, O Danvy, J Midtgaard
Venue:Inf. Process. Lett
Add To MetaCart

Tools

Sorted by:
Results 11 - 20 of 26
Next 10 →

Refunctionalization at Work

by Olivier Danvy, Kevin Millikin , 2008
"... ..."
Abstract - Cited by 9 (5 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

From Natural Semantics to Abstract Machines

by Mads Sig Ager , 2004
"... ..."
Abstract - Cited by 4 (0 self) - Add to MetaCart
Abstract not found

A Rational Deconstruction of Landin’s J Operator

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

Abstracting Abstract Machines

by David Van Horn, Matthew Might
"... We describe a derivational approach to abstract interpretation that yields novel and transparently sound static analyses when applied to well-established abstract machines. To demonstrate the technique and support our claim, we transform the CEK machine of Felleisen and Friedman, a lazy variant of K ..."
Abstract - Cited by 3 (3 self) - Add to MetaCart
We describe a derivational approach to abstract interpretation that yields novel and transparently sound static analyses when applied to well-established abstract machines. To demonstrate the technique and support our claim, we transform the CEK machine of Felleisen and Friedman, a lazy variant of Krivine’s machine, and the stack-inspecting CM machine of Clements and Felleisen into abstract interpretations of themselves. The resulting analyses bound temporal ordering of program events; predict return-flow and stack-inspection behavior; and approximate the flow and evaluation of by-need parameters. For all of these machines, we find that a series of well-known concrete machine refactorings, plus a technique we call store-allocated continuations, leads to machines that abstract into static analyses simply by bounding their stores. We demonstrate that the technique scales up uniformly to allow static analysis of realistic language features, including tail calls, conditionals, side effects, exceptions, first-class continuations, and even garbage collection.

Accurate Step Counting

by Catherine Hope, Graham Hutton - In Proceedings of the 17th International Workshop on the Implementation and Application of Functional Languages , 2005
"... Abstract Starting with an evaluator for a language, an abstract machine for the same language can be mechanically derived using successive program transformations. This has relevance to studying both the space and time properties of programs because these can be estimated by counting transitions of ..."
Abstract - Cited by 2 (1 self) - Add to MetaCart
Abstract Starting with an evaluator for a language, an abstract machine for the same language can be mechanically derived using successive program transformations. This has relevance to studying both the space and time properties of programs because these can be estimated by counting transitions of the abstract machine and measuring the size of the additional data structures needed, such as environments and stacks. In this paper we will use this process to derive a function that accurately counts the number of steps required to evaluate expressions in a simple language. 1

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.

Deriving Compilers and Virtual Machines for a Multi-Level Language ⋆

by Atsushi Igarashi, Masashi Iwaki
"... Abstract. We develop virtual machines and compilers for a multi-level language, which supports multi-stage specialization by composing program fragments with quotation mechanisms. We consider two styles of virtual machines—ones equipped with special instructions for code generation and ones without— ..."
Abstract - Cited by 1 (0 self) - Add to MetaCart
Abstract. We develop virtual machines and compilers for a multi-level language, which supports multi-stage specialization by composing program fragments with quotation mechanisms. We consider two styles of virtual machines—ones equipped with special instructions for code generation and ones without—and show that the latter kind can deal with, more easily, low-level code generation, which avoids the overhead of (runtime) compilation by manipulating instruction sequences, rather than source-level terms, as data. The virtual machines and accompanying compilers are derived by program transformation, which extends Ager et al.’s derivation of virtual machines from evaluators. 1
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