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).
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
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
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
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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
Author information
Authors and Affiliations
Corresponding authors
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2021 Springer Nature Switzerland AG
About this paper
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)