I7 Logo
Chair for Foundations of Software Reliability and Theoretical Computer Science
Informatik Logo TUM Logo
Publications - Tree Buffers

Reference:

Radu Grigore and Stefan Kiefer. Tree buffers. In Proceedings of the 27th International Conference on Computer Aided Verification (CAV), part I, volume 9206 of LNCS, pages 290–306, San Francisco, California, USA, 2015. Springer.

Abstract:

In runtime verification, the central problem is to decide if a given program execution violates a given property. In online runtime verification, a monitor observes a program's execution as it happens. If the program being observed has hard real-time constraints, then the monitor inherits them. In the presence of hard real-time constraints it becomes a challenge to maintain enough information to produce error traces, should a property violation be observed. In this paper we introduce a data structure, called tree buffer, that solves this problem in the context of automata-based monitors: If the monitor itself respects hard real-time constraints, then enriching it by tree buffers makes it possible to provide error traces, which are essential for diagnosing defects. We show that tree buffers are also useful in other application domains. For example, they can be used to implement functionality of capturing groups in regular expressions. We prove optimal asymptotic bounds for our data structure, and validate them using empirical data from two sources: regular expression searching through Wikipedia, and runtime verification of execution traces obtained from the DaCapo test suite.

Suggested BibTeX entry:

@inproceedings{15GK-CAV,
    address = {San Francisco, California, USA},
    author = {Radu Grigore and Stefan Kiefer},
    booktitle = {Proceedings of the 27th International Conference on Computer Aided Verification (CAV), part I},
    pages = {290--306},
    publisher = {Springer},
    series = {LNCS},
    title = {Tree Buffers},
    volume = {9206},
    year = {2015}
}

PDF (2 MB)
Tech report version