English

Collecting Graphical Abstract Views of Mercury Program Executions

Software Engineering 2007-05-23 v1 Programming Languages

Abstract

A program execution monitor is a program that collects and abstracts information about program executions. The "collect" operator is a high level, general purpose primitive which lets users implement their own monitors. "Collect" is built on top of the Mercury trace. In previous work, we have demonstrated how this operator can be used to efficiently collect various kinds of statistics about Mercury program executions. In this article we further demonstrate the expressive power and effectiveness of "collect" by providing more monitor examples. In particular, we show how to implement monitors that generate graphical abstractions of program executions such as proof trees, control flow graphs and dynamic call graphs. We show how those abstractions can be easily modified and adapted, since those monitors only require several dozens of lines of code. Those abstractions are intended to serve as front-ends of software visualization tools. Although "collect" is currently implemented on top of the Mercury trace, none of its underlying concepts depend of Mercury and it can be implemented on top of any tracer for any programming language.

Keywords

Cite

@article{arxiv.cs/0010038,
  title  = {Collecting Graphical Abstract Views of Mercury Program Executions},
  author = {Erwan Jahier},
  journal= {arXiv preprint arXiv:cs/0010038},
  year   = {2007}
}

Comments

In M. Ducasse (ed), proceedings of the Fourth International Workshop on Automated Debugging (AADEBUG 2000), August 2000, Munich. cs.SE/0010035

R2 v1 2026-07-22T12:18:30.418Z