@gron

Dynamic Partial Evaluation

. Programs as Data Objects, volume 2053 of Lecture Notes in Computer Science, page 238--256. Springer, (2001)
DOI: 10.1007/3-540-44978-7_14

Abstract

Dynamic partial evaluation performs partial evaluation as a side effect of evaluation, with no previous static analysis required. A completely dynamic version of partial evaluation is not merely of theoretical interest, but has practical applications,especially when applied to dynamic, reflective programming languages. Computational reflection, and in particular the useof meta-object protocols (MOPs), provides a powerful abstraction mechanism, providing programmatic “hooks” into the interpretersemantics of the host programming language. Unfortunately, a runtime MOP defeats many optimizations based on static analysis(for example, the applicable methods at a call site may change over time, even for the same types of arguments). Dynamic partialevaluation allows us to apply partial evaluation techniques even in the context of a meta-object protocol. We have implementeddynamic partial evaluation as part of a Dynamic Virtual Machine intended to host dynamic, reflective object-oriented languages.In this paper, we present an implementation of dynamic partial evaluation for a simple language — a lambda calculus extendedwith dynamic typing, subtyping, generic functions and multiple dispatch.

Links and resources

Tags

community

  • @gron
  • @dblp
@gron's tags highlighted