Implementing Circularity Using Partial Evaluation

  • Authors:
  • Julia L. Lawall

  • Affiliations:
  • -

  • Venue:
  • PADO '01 Proceedings of the Second Symposium on Programs as Data Objects
  • Year:
  • 2001

Quantified Score

Hi-index 0.00

Visualization

Abstract

Complex data dependencies can often be expressed concisely by defining a variable in terms of part of its own value. Such a circular reference can be naturally expressed in a lazy functional language or in an attribute grammar. In this paper, we consider circular references in the context of an imperative C-like language, by extending the language with a new construct, persistent variables. We show that an extension of partial evaluation can eliminate persistent variables, producing a staged C program. This approach has been implemented in the Tempo specializer for C programs, and has proven useful in the implementation of run-time specialization.