Rewriting-based techniques for runtime verification

被引:117
作者
Roşu G. [1 ]
Havelund K. [2 ]
机构
[1] Department of Computer Science, University of Illinois, Urbana-Champaign
[2] Kestrel Technology, NASA Ames Research Center
关键词
Rewriting; Runtime analysis; Verification;
D O I
10.1007/s10515-005-6205-y
中图分类号
学科分类号
摘要
Techniques for efficiently evaluating future time Linear Temporal Logic (abbreviated LTL) formulae on finite execution traces are presented. While the standard models of LTL are infinite traces, finite traces appear naturally when testing and/or monitoring real applications that only run for limited time periods. A finite trace variant of LTL is formally defined, together with an immediate executable semantics which turns out to be quite inefficient if used directly, via rewriting, as a monitoring procedure. Then three algorithms are investigated. First, a simple synthesis algorithm for monitors based on dynamic programming is presented; despite the efficiency of the generated monitors, they unfortunately need to analyze the trace backwards, thus making them unusable in most practical situations. To circumvent this problem, two rewriting-based practical algorithms are further investigated, one using rewriting directly as a means for online monitoring, and the other using rewriting to generate automata-like monitors, called binary transition tree finite state machines (and abbreviated BTT-FSMs). Both rewriting algorithms are implemented in Maude, an executable specification language based on a very efficient implementation of term rewriting. The first rewriting algorithm essentially consists of a set of equations establishing an executable semantics of LTL, using a simple formula transforming approach. This algorithm is further improved to build automata on-the-fly via caching and reuse of rewrites (called memoization), resulting in a very efficient and small Maude program that can be used to monitor program executions. The second rewriting algorithm builds on the first one and synthesizes provably minimal BTT-FSMs from LTL formulae, which can then be used to analyze execution traces online without the need for a rewriting system. The presented work is part of an ambitious runtime verification and monitoring project at NASA Ames, called Path Explorer, and demonstrates that rewriting can be a tractable and attractive means for experimenting and implementing logics for program monitoring. © 2005 Springer Science + Business Media, Inc.
引用
收藏
页码:151 / 197
页数:46
相关论文
共 65 条
[1]  
Artho C., Drusinsky D., Goldberg A., Havelund K., Lowry M., Pasareanu C., Rosu G., Visser W., Experiments with test case generation and runtime analysis, Lecture Notes in Computer Science, 2589, pp. 87-107, (2003)
[2]  
Ball T., Podelski A., Rajamani S., Boolean and cartesian abstractions for model checking c programs, Proc. of TACAS'01: Tools and Algorithms for the Construction and Analysis of Systems, (2001)
[3]  
Bouhoula A., Jouannaud J.-P., Meseguer I., Specification and proof in membership equational logic, Theoretical Computer Science, 236, pp. 35-132, (2000)
[4]  
Bryant R.E., Graph-based algorithms for boolean function manipulation, IEEE Transactions on Computers, C-35, 8, pp. 677-691, (1986)
[5]  
Chen F., Rosu G., Towards monitoring-oriented programming: A paradigm combining specification and implementation, Electronic Notes in Theoretical Computer Science, 89, pp. 106-125, (2003)
[6]  
Clavel M., The ITP tool, Logic, Language and Information. Proc. of the First Workshop on Logic and Language, pp. 55-62, (2001)
[7]  
Clavel M., Duran F.J., Eker S., Lincoln P., Marti-Oliet N., Meseguer J., Quesada J.F., Maude: Specification and Programming in Rewriting Logic, (1999)
[8]  
Clavel M., Duran F.J., Eker S., Lincoln P., Marti-Oliet N., Meseguer J., Quesada J.F., Maude: Specification and programming in rewriting logic, Theoretical Computer Science, 285, pp. 187-243, (2002)
[9]  
Corbett J., Dwyer M.B., Hatcliff J., Pasareanu C.S., Robby L.S., Zheng H., Bandera: Extracting finite-state models from Java source code, Proc. of ICSE'00: International Conference on Software Engineering, (2000)
[10]  
Dahm M.