Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to main content

Verification of Programs with Exceptions Through Operator Precedence Automata

  • Conference paper
  • First Online:
Software Engineering and Formal Methods (SEFM 2021)

Abstract

Operator Precedence Languages are one of the most expressive classes of context-free languages that enable Model Checking. Recently, the First-Order complete Precedence Oriented Temporal Logic (POTL) has been introduced for expressing properties on models defined through Operator Precedence Automata (OPA), a variant of Pushdown Automata for OPLs; moreover, an efficient tool called Precedence Oriented Model Checker (POMC) was devised for POTL. We propose here the core algorithms of POMC for on-the-fly depth-first exploration of the search space: for OPA, a reachability algorithm; for their \(\omega \)-word variant, a fair-cycle detection algorithm. We have refined the tool with a user-friendly DSL called MiniProc for expressing procedural code with exceptions. We show how the expressiveness of POMC can be used to verify programs which make use of exceptions, thus overcoming the limits of LTL-based Model Checking. We demonstrate the effectiveness of POMC through a case study.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 69.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 89.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Similar content being viewed by others

Notes

  1. 1.

    https://github.com/michiari/POMC.

References

  1. Abrahams, D.: Exception-safety in generic components. In: Jazayeri, M., Loos, R.G.K., Musser, D.R. (eds.) Generic Programming. LNCS, vol. 1766, pp. 69–79. Springer, Heidelberg (2000). https://doi.org/10.1007/3-540-39953-4_6

    Chapter  Google Scholar 

  2. Alur, R., Arenas, M., Barceló, P., Etessami, K., Immerman, N., Libkin, L.: First-order and temporal logics for nested words. LMCS, vol. 4, no. 4 (2008). https://doi.org/10.2168/LMCS-4(4:11)2008

  3. Alur, R., Benedikt, M., Etessami, K., Godefroid, P., Reps, T., Yannakakis, M.: Analysis of recursive state machines. ACM Trans. Program. Lang. Syst. 27(4), 786–818 (2005). https://doi.org/10.1145/1075382.1075387

    Article  Google Scholar 

  4. Alur, R., Bouajjani, A., Esparza, J.: Model checking procedural programs. In: Handbook of Model Checking, pp. 541–572. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-10575-8_17

    Chapter  MATH  Google Scholar 

  5. Alur, R., Chaudhuri, S., Etessami, K., Madhusudan, P.: On-the-fly reachability and cycle detection for recursive state machines. In: Halbwachs, N., Zuck, L.D. (eds.) TACAS 2005. LNCS, vol. 3440, pp. 61–76. Springer, Heidelberg (2005). https://doi.org/10.1007/978-3-540-31980-1_5

    Chapter  MATH  Google Scholar 

  6. 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). https://doi.org/10.1007/978-3-540-24730-2_35

    Chapter  MATH  Google Scholar 

  7. Alur, R., Madhusudan, P.: Visibly pushdown languages. In: ACM STOC (2004)

    Google Scholar 

  8. Ball, T., Rajamani, S.K.: Bebop: a symbolic model checker for Boolean programs. In: Havelund, K., Penix, J., Visser, W. (eds.) SPIN 2000. LNCS, vol. 1885, pp. 113–130. Springer, Heidelberg (2000). https://doi.org/10.1007/10722468_7

    Chapter  MATH  Google Scholar 

  9. Ball, T., Rajamani, S.K.: The SLAM toolkit. In: Berry, G., Comon, H., Finkel, A. (eds.) CAV 2001. LNCS, vol. 2102, pp. 260–264. Springer, Heidelberg (2001). https://doi.org/10.1007/3-540-44585-4_25

    Chapter  Google Scholar 

  10. Chiari, M., Mandrioli, D., Pradella, M.: Operator precedence temporal logic and model checking. Theor. Comput. Sci. 848, 47–81 (2020). https://doi.org/10.1016/j.tcs.2020.08.034

    Article  MathSciNet  MATH  Google Scholar 

  11. Chiari, M., Mandrioli, D., Pradella, M.: Model-checking structured context-free languages. In: Silva, A., Leino, K.R.M. (eds.) CAV 2021. LNCS, vol. 12760, pp. 387–410. Springer, Cham (2021). https://doi.org/10.1007/978-3-030-81688-9_18

    Chapter  Google Scholar 

  12. Esparza, J., Hansel, D., Rossmanith, P., Schwoon, S.: Efficient algorithms for model checking pushdown systems. In: Emerson, E.A., Sistla, A.P. (eds.) CAV 2000. LNCS, vol. 1855, pp. 232–247. Springer, Heidelberg (2000). https://doi.org/10.1007/10722167_20

    Chapter  Google Scholar 

  13. Esparza, J., Kučera, A., Schwoon, S.: Model checking LTL with regular valuations for pushdown systems. Inf. Comput. 186(2), 355–376 (2003). https://doi.org/10.1016/S0890-5401(03)00139-1

    Article  MathSciNet  MATH  Google Scholar 

  14. Esparza, J., Schwoon, S.: A BDD-based model checker for recursive programs. In: Berry, G., Comon, H., Finkel, A. (eds.) CAV 2001. LNCS, vol. 2102, pp. 324–336. Springer, Heidelberg (2001). https://doi.org/10.1007/3-540-44585-4_30

    Chapter  Google Scholar 

  15. Floyd, R.W.: Syntactic analysis and operator precedence. JACM 10(3), 316–333 (1963). https://doi.org/10.1145/321172.321179

    Article  MATH  Google Scholar 

  16. Gabow, H.N.: Path-based depth-first search for strong and biconnected components. Inf. Process. Lett. 74(3), 107–114 (2000). https://doi.org/10.1016/S0020-0190(00)00051-X

    Article  MathSciNet  MATH  Google Scholar 

  17. Grune, D., Jacobs, C.J.H.: Parsing Techniques: Monographs in Computer Science. Springer, New York (2008). https://doi.org/10.1007/978-0-387-68954-8

    Book  Google Scholar 

  18. Harrison, M.A.: Introduction to Formal Language Theory. Addison Wesley, Boston (1978)

    MATH  Google Scholar 

  19. Holzmann, G.: The model checker SPIN. IEEE Trans. Softw. Eng. 23(5), 279–295 (1997). https://doi.org/10.1109/32.588521

    Article  Google Scholar 

  20. Jensen, T., Le Metayer, D., Thorn, T.: Verification of control flow based security properties. In: Proceedings of the 1999 IEEE Symposium on Security and Privacy, pp. 89–103 (1999). https://doi.org/10.1109/SECPRI.1999.766902

  21. Kiefer, S., Schwoon, S., Suwimonteerabuth, D.: Moped. http://www2.informatik.uni-stuttgart.de/fmi/szs/tools/moped/

  22. Lonati, V., Mandrioli, D., Panella, F., Pradella, M.: Operator precedence languages: their automata-theoretic and logic characterization. SIAM J. Comput. 44(4), 1026–1088 (2015). https://doi.org/10.1137/140978818

    Article  MathSciNet  MATH  Google Scholar 

  23. Mandrioli, D., Pradella, M.: Generalizing input-driven languages: theoretical and practical benefits. Comput. Sci. Rev. 27, 61–87 (2018). https://doi.org/10.1016/j.cosrev.2017.12.001

    Article  MathSciNet  MATH  Google Scholar 

  24. Meyer, B.: Attached types and their application to three open problems of object-oriented programming. In: Black, A.P. (ed.) ECOOP 2005. LNCS, vol. 3586, pp. 1–32. Springer, Heidelberg (2005). https://doi.org/10.1007/11531142_1

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding authors

Correspondence to Francesco Pontiggia , Michele Chiari or Matteo Pradella .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2021 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Pontiggia, F., Chiari, M., Pradella, M. (2021). Verification of Programs with Exceptions Through Operator Precedence Automata. In: Calinescu, R., Păsăreanu, C.S. (eds) Software Engineering and Formal Methods. SEFM 2021. Lecture Notes in Computer Science(), vol 13085. Springer, Cham. https://doi.org/10.1007/978-3-030-92124-8_17

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-92124-8_17

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-92123-1

  • Online ISBN: 978-3-030-92124-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics