@INPROCEEDINGS{BrasselHanusHuchVidal04PPDP,
author = "Bra{\ss}el, B. and Hanus, M. and Huch, F. and Vidal, G.",
title = "A Semantics for Tracing Declarative Multi-Paradigm Programs",
year = "2004",
pages = "179-190",
publisher = "ACM Press",
booktitle = "Proc.\ of the 6th International ACM SIGPLAN Conference on
             Principle and Practice of Declarative Programming (PPDP'04)"
abstract = {
We introduce the theoretical basis for tracing lazy functional logic
computations in a declarative multi-paradigm language like Curry.
Tracing computations is a difficult task due to the subtleties of
the underlying operational semantics, which combines laziness and
non-determinism.
In this work, we define an instrumented operational semantics that
generates not only the computed values and bindings but also an
appropriate data structure---a sort of \emph{redex trail}---which
can be used to trace computations at an adequate level of
abstraction. In contrast to previous approaches, which rely solely
on a transformation to instrument source programs, the formal
definition of a \emph{tracing} semantics improves the understanding
of the tracing process. Furthermore, it allows us to formally prove
the correctness of the computed trail.
Preliminary experiments with a prototype implementation of a tracer
based on the instrumented semantics demonstrates the usefulness of
our approach.
}
}

