Skip to main content

An MSVL Based Model Checking Method for Multi-threaded C Programs

  • Conference paper
  • First Online:
Structured Object-Oriented Formal Language and Method (SOFL+MSVL 2020)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 12723))

  • 320 Accesses

Abstract

To solve the problem that software testing is unable to meet the verification needs of multi-threaded C programs, a novel verification approach with Modeling, Simulation and Validation Language (MSVL) is proposed. To this end, the rules for describing the parallel execution semantics of multi-threaded C program with MSVL are defined, , and a specific tool is developed for automatically translating a multi-threaded C program into its equivalent MSVL program. In addition, an example is given to illustrate how the approach works. The approach fully utilizes the powerful expressiveness of MSVL to verify the multi-threaded C programs in a direct way, and helps to improve the quality of the software system.

This research is supported by the Key Research and Development Projects of Shaanxi Province (No. 2020GY-210), and The Equipment Pre-research Key Laboratory Foundation (No. JZX7Y202001SY000901), and the NSFC (Grant Nos. 61672403, 61972301, 61572386).

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.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

References

  1. Bianchi, F.A., Margara, A., Pezzè, M.: A survey of recent trends in testing concurrent software systems. IEEE Trans. Softw. Eng. 44(8), 747–783 (2018). https://doi.org/10.1109/TSE.2017.2707089

    Article  Google Scholar 

  2. Clarke, E.M.: The birth of model checking. In: Grumberg, O., Veith, H. (eds.) 25 Years of Model Checking. LNCS, vol. 5000, pp. 1–26. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-69850-0_1

    Chapter  Google Scholar 

  3. Duan, Z., Tian, C.: A unified model checking approach with projection temporal logic. In: Liu, S., Maibaum, T., Araki, K. (eds.) ICFEM 2008. LNCS, vol. 5256, pp. 167–186. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-88194-0_12

    Chapter  Google Scholar 

  4. Duan, Z., Tian, C., Zhang, N.: A canonical form based decision procedure and model checking approach for propositional projection temporal logic. Theor. Comput. Sci. 609, 544–560 (2016). https://doi.org/10.1016/j.tcs.2015.08.039

    Article  MathSciNet  MATH  Google Scholar 

  5. Duan, Z., Yang, X., Koutny, M.: Framed temporal logic programming. Sci. Comput. Program. 70(1), 31–61 (2008). https://doi.org/10.1016/j.scico.2007.09.001

    Article  MathSciNet  MATH  Google Scholar 

  6. Fehnker, A., Huuck, R.: Model checking driven static analysis for the real world: designing and tuning large scale bug detection. Innov. Syst. Softw. Eng. 9(1), 45–56 (2013)

    Article  Google Scholar 

  7. Fehnker, A., Huuck, R., Jayet, P., Lussenburg, M., Rauch, F.: Goanna—a static model checker. In: Brim, L., Haverkort, B., Leucker, M., van de Pol, J. (eds.) FMICS 2006. LNCS, vol. 4346, pp. 297–300. Springer, Heidelberg (2007). https://doi.org/10.1007/978-3-540-70952-7_20

    Chapter  Google Scholar 

  8. Inverso, O., Tomasco, E., Fischer, B., La Torre, S., Parlato, G.: Bounded model checking of multi-threaded C programs via lazy sequentialization. In: Biere, A., Bloem, R. (eds.) CAV 2014. LNCS, vol. 8559, pp. 585–602. Springer, Cham (2014). https://doi.org/10.1007/978-3-319-08867-9_39

    Chapter  Google Scholar 

  9. Ma, Q., Duan, Z.H.: Automatic theorem proving technique for MSVL. J. Xidian Univ. 43(01), 75–81 (2016). https://doi.org/10.3969/j.issn.1001-2400,2016.01.014

  10. Shu, X., Duan, Z.: Extending MSVL with semaphore. In: Dinh, T.N., Thai, M.T. (eds.) COCOON 2016. LNCS, vol. 9797, pp. 599–610. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-42634-1_48

    Chapter  Google Scholar 

  11. Shu, X., Li, C., Liu, C.: A visual modeling language for MSVL. In: Liu, S., Duan, Z., Tian, C., Nagoya, F. (eds.) SOFL+MSVL 2016. LNCS, vol. 10189, pp. 220–237. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-57708-1_13

    Chapter  Google Scholar 

  12. Tian, C., Duan, Z.: Expressiveness of propositional projection temporal logic with star. Theor. Comput. Sci. 412(18), 1729–1744 (2011). https://doi.org/10.1016/j.tcs.2010.12.047

    Article  MathSciNet  MATH  Google Scholar 

  13. Wang, X.B., Guo, W.X., Duan, Z.H.: Communication mechanism and its implementation for msvl based on message pass. J. Softw. 29(6), 1607–1621 (2018). https://doi.org/10.13328/j.cnki.jos.005471

  14. Wang, X., Tian, C., Duan, Z., Zhao, L.: MSVL: a typed language for temporal logic programming. Front. Comput. Sci. 11(5), 762–785 (2017). https://doi.org/10.1007/s11704-016-6059-4

    Article  Google Scholar 

  15. Yang, K., Duan, Z., Tian, C., Zhang, N.: A compiler for MSVL and its applications. Theor. Comput. Sci. 749, 2–16 (2018). https://doi.org/10.1016/j.tcs.2017.07.032

    Article  MathSciNet  MATH  Google Scholar 

  16. Yu, Y., Duan, Z., Tian, C., Yang, M.: Model checking C programs with MSVL. In: Liu, S. (ed.) SOFL 2012. LNCS, vol. 7787, pp. 87–103. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-39277-1_7

    Chapter  Google Scholar 

  17. Zhang, N., Duan, Z., Tian, C.: A mechanism of function calls in MSVL. Theor. Comput. Sci. 654, 11–25 (2016). https://doi.org/10.1016/j.tcs.2016.02.037

    Article  MathSciNet  MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding authors

Correspondence to Xiaobing Wang or Liang Zhao .

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

Shu, X., Wang, Z., Gao, W., Wang, X., Zhao, L. (2021). An MSVL Based Model Checking Method for Multi-threaded C Programs. In: Xue, J., Nagoya, F., Liu, S., Duan, Z. (eds) Structured Object-Oriented Formal Language and Method. SOFL+MSVL 2020. Lecture Notes in Computer Science(), vol 12723. Springer, Cham. https://doi.org/10.1007/978-3-030-77474-5_7

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-77474-5_7

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-77473-8

  • Online ISBN: 978-3-030-77474-5

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics