@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. } }