Origin tracking

  • Authors:
  • A. van Deursen;P. Klint;F. Tip

  • Affiliations:
  • -;-;-

  • Venue:
  • Journal of Symbolic Computation - Special issue on automatic programming
  • Year:
  • 1993

Quantified Score

Hi-index 0.00

Visualization

Abstract

We are interested in generating interactive programming environments from formal language specifications and use term rewriting to execute these specifications. Functions defined in a specification operate on the abstract syntax tree of programs and the initial term for the rewriting process will consist of an application of some function (e.g., a type checker, evaluator or translator) to the syntax tree of a program. During the term rewriting process, pieces of the program such as identifiers, expressions, or statements, recur in intermediate terms. We want to formalize these recurrences and use them, for example, for associating positional information with messages in error reports, visualizing program execution, and constructing language-specific debuggers. Origins are relations between subterms of intermediate terms and subterms of the initial term. Origin tracking is a method for incrementally computing origins during rewriting. We give a formal definition of origins, and present a method for implementing origin tracking.