Synthesizing Monitors for Safety Properties: This Time with Calls and Returns

  • Grigore Roşu
  • Feng Chen
  • Thomas Ball
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5289)


We present an extension of past time LTL with call/return atoms, called ptCaRet, together with a monitor synthesis algorithm for it. ptCaRet includes abstract variants of past temporal operators, which can express properties over traces in which terminated function or procedure executions are abstracted away into a call and a corresponding return. This way, ptCaRet can express safety properties about procedural programs which cannot be expressed using conventional linear temporal logics. The generated monitors contain both a local state and a stack. The local state is encoded on as many bits as concrete temporal operators the original formula has. The stack pushes/pops bit vectors of size the number of abstract temporal operators the original formula has: push on begins, pop on ends of procedure executions. An optimized implementation is also discussed and is available to download.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Allan, C., Avgustinov, P., Christensen, A.S., Hendren, L., Kuzins, S., Lhotak, O., de Moor, O., Sereni, D., Sittampalam, G., Tibble, J.: Adding trace matching with free variables to AspectJ. In: OOPSLA 2005 (2005)Google Scholar
  2. 2.
    Alur, R., Etessami, K., Madhusudan, P.: A temporal logic of nested calls and returns. In: Jensen, K., Podelski, A. (eds.) TACAS 2004. LNCS, vol. 2988, pp. 467–481. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  3. 3.
    F.S.L.: at UIUC. ptCaRet MOP Logic Plugin,
  4. 4.
    Avgustinov, P., Tibble, J., de Moor, O.: Making Trace Monitors Feasible. In: OOPSLA 2007 (2007)Google Scholar
  5. 5.
    Chaudhuri, S., Alur, R.: Instrumenting C programs with nested word monitors. In: Bošnački, D., Edelkamp, S. (eds.) SPIN 2007. LNCS, vol. 4595, pp. 279–283. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  6. 6.
    Chen, F., Roşu, G.: Towards Monitoring-Oriented Programming: A Paradigm Combining Specif. and Implementation. In: RV 2003. ENTCS, vol. 89(2) (2003)Google Scholar
  7. 7.
    Chen, F., Roşu, G.: MOP: An Efficient and Generic Runtime Verification Framework. In: OOPSLA 2007 (2007)Google Scholar
  8. 8.
    Clavel, M., Durán, F., Eker, S., Lincoln, P., Martí-Oliet, N., Meseguer, J., Talcott, C.: Maude Manual,
  9. 9.
    Havelund, K., Roşu, G.: Efficient monitoring of safety properties. Software Tools and Technology Transfer 6(2), 158–173 (2004); In: Katoen, J.-P., Stevens, P. (eds.) TACAS 2002. LNCS, vol. 2280, Springer, Heidelberg (2002)Google Scholar
  10. 10.
    Lamport, L.: Proving the correctness of multiprocess programs. IEEE Trans. Software Eng. 3(2), 125–143 (1977)MathSciNetCrossRefMATHGoogle Scholar
  11. 11.
    Manna, Z., Pnueli, A.: Temporal verification of reactive systems: safety. Springer-Verlag New York, Inc., New York (1995)CrossRefMATHGoogle Scholar
  12. 12.
    Roşu, G.: On Safety Properties and Their Monitoring. Technical Report UIUCDCS-R-2007-2850, Dept. of Comp. Sci. Univ. of Illinois at Urbana-Champaign (2007)Google Scholar
  13. 13.
    Roşu, G., Havelund, K.: Rewriting-based techniques for runtime verification. Automated Software Engineering 12(2), 151–197 (2005)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2008

Authors and Affiliations

  • Grigore Roşu
    • 1
  • Feng Chen
    • 1
  • Thomas Ball
    • 2
  1. 1.Department of Computer ScienceUniversity of Illinois at Urbana-ChampaignUSA
  2. 2.Microsoft Research, RedmondUSA

Personalised recommendations