Analytical Approach to Programs as Data Objects

  title={Analytical Approach to Programs as Data Objects},
  author={Olivier Danvy},
  journal={AU Library Scholarly Publishing Services},
  • O. Danvy
  • Published 3 July 2017
  • Education
  • AU Library Scholarly Publishing Services
This essay accompanies a selection of 32 articles (referred to in bold face in the text and marginally marked in the bibliographic references) submitted to Aarhus University towards a Doctor Scientiarum degree in Computer Science. The author's previous academic degree, beyond a doctoral degree in June 1986, is an "Habilitation a diriger les recherches" from the Universite Pierre et Marie Curie (Paris VI) in France; the corresponding material was submitted in September 1992 and the degree was… 

Figures from this paper

A Scala framework for supercompilation

A framework that can be used for experimenting with supercompilation techniques and allows supercompilers to be constructed directly from an interpreter, which is demonstrated by implementing a supercompiler for JavaScript.

Typed Equivalence of Effect Handlers and Delimited Control

This work positively resolve the conjecture that in an appropriately polymorphic type system this relationship between effect handlers and delimited control operators can be extended to the level of types, by identifying the necessary forms of polymorphism, thus extending the definability result to the typed context.

On Computational Small Steps and Big Steps: Refocusing for Outermost Reduction

This dissertation identifies that backward overlapping reduction rules in the small-step semantics cause the refocusing step of the syntactic correspondence to be inapplicable and proposes two solutions to overcome this in-applicability: backtracking and rule generalization.

No value restriction is needed for algebraic effects and handlers*

A straightforward, sound, Hindley–Milner polymorphic type system for algebraic effects and handlers in a call-by-value calculus, which, to the surprise, allows type variable generalisation of arbitrary computations, and not just values.

A Dynamic Continuation-Passing Style for Dynamic Delimited Continuations

The significance of the present work is that the computational artifacts surrounding dynamic CPS are not independent designs: they are mechanical consequences of having put the definitional abstract machine in defunctionalized form.

On the expressive power of user-defined effects: effect handlers, monadic reflection, delimited control

It is shown that effect handlers cannot be macro-expressed while preserving typeability either by monadic reflection or by delimited control, and the adequate finitary set-theoretic denotational semantics for the monadic calculus is used.

Refunctionalization of Abstract Abstract Machines (Functional Pearl)

Remarkably, it is revealed how precise call/return matching in control-flow analysis can be obtained by refunctionalizing a small-step abstract abstract machine with proper caching.

Refunctionalization of abstract abstract machines: bridging the gap between abstract abstract machines and abstract definitional interpreters (functional pearl)

Remarkably, it is revealed how precise call/return matching in control-flow analysis can be obtained by refunctionalizing a small-step abstract abstract machine with proper caching.

A Modular Structural Operational Semantics for Delimited Continuations

This paper shows that the Modular Structural Operational Semantics framework can express the dynamic semantics of call/cc, and furthermore, demonstrates that it canexpress the more general delimited control operators control and shift.



Programming Techniques for Partial Evaluation ∗

These lecture notes describe how to write generating extensions, i.e., dedicated program specializers. The focus is on compositional programs and their associated fold functions. Each generating

Fundamental Concepts in Programming Languages

  • C. Strachey
  • Computer Science
    High. Order Symb. Comput.
  • 2000
This paper forms the substance of a course of lectures given at the International Summer School in Computer Programming at Copenhagen in August, 1967. The lectures were originally given from notes

An early use of continuations and partial evaluation for compiling rules written in FOPC

This brief historical note describes research which was done in the period 1970-1973, and where continuations were introduced in a fairly pragmatic way together with partial evaluation in order to

A Foreword to ‘Fundamental Concepts in Programming Languages’

  • P. Mosses
  • Computer Science
    High. Order Symb. Comput.
  • 2000
Christopher Strachey’s paper on Fundamental Concepts in Programming Languages is being published here for the first time, based on the lectures given by him at an International School in Computer Programming, held in Copenhagen in August 1967.

The Mechanical Evaluation of Expressions

It is shown how some forms of expression in current programming languages can be modelled in Church's X-notation, and a way of "interpreting" such expressions is described, which suggests a method of analyzing the things computer users write.

Proceedings of the 15th ACM SIGPLAN international conference on Functional programming

It is my great pleasure to welcome you to the 15th ACM SIGPLAN International Conference on Functional Programming -- ICFP'10. This conference features original papers on the art and science of

Correspondence between ALGOL 60 and Church's Lambda-notation

A model for computer languages and computer behavior is described, based on the notions of functional application and functional abstraction, but also having analogues for imperative language features.

An experiment in partial evaluation: the generation of a compiler generator

A running, non-trivial partial evaluator is described, which is the first which has been used in practice to transform interpreters into corresponding stand-alone compilers, or to generate a compile r generator by transforming itself.

Structure and Interpretation of Computer Programs

Structure and Interpretation of Computer Programs emphasizes the central role played by different approaches to dealing with time in computational models, appropriate for an introduction to computer science courses, as well as programming languages and program design.