From verified model to executable program: the PAT approach

  • Huiquan Zhu
  • Jing Sun
  • Jin Song Dong
  • Shang-Wei Lin
Original Paper

DOI: 10.1007/s11334-015-0269-z

Cite this article as:
Zhu, H., Sun, J., Dong, J.S. et al. Innovations Syst Softw Eng (2016) 12: 1. doi:10.1007/s11334-015-0269-z

Abstract

CSP# is a formal modeling language that emphasizes the design of communication in concurrent systems. PAT framework provides a model checking environment for the simulation and verification of CSP# models. Although the desired properties can be formally verified at the design level, it is not always straightforward to ensure the correctness of the system’s implementation conforms to the behaviors of the formal design model. To avoid human error and enhance productivity, it would be beneficial to have a tool support to automatically generate the executable programs from their corresponding formal models. In this paper, we propose such a solution for translating verified CSP# models into C# programs in the PAT framework. We encoded the CSP# operators in a C# library-“PAT.Runtime”, where the event synchronization is based on the “Monitor” class in C#. The precondition and choice layers are built on top of the CSP event synchronization to support language-specific features. We further developed a code generation tool to automatically transform CSP# models into multi-threaded C# programs. We proved that the generated C# program and original CSP# model are equivalent on the trace semantics. This equivalence guarantees that the verified properties of the CSP# models are preserved in the generated C# programs. Furthermore, based on the existing implementation of choice operator, we improved the synchronization mechanism by pruning the unnecessary communications among the choice operators. The experiment results showed that the improved mechanism notably outperforms the standard JCSP library.

Keywords

Modeling checking CSP# Multi-threaded programming C# 

Copyright information

© Springer-Verlag London 2015

Authors and Affiliations

  • Huiquan Zhu
    • 1
  • Jing Sun
    • 2
  • Jin Song Dong
    • 1
  • Shang-Wei Lin
    • 3
  1. 1.Department of Computer ScienceNational University of SingaporeSingaporeSingapore
  2. 2.Department of Computer ScienceUniversity of AucklandAucklandNew Zealand
  3. 3.School of Computer EngineeringNanyang Technological UniversitySingaporeSingapore

Personalised recommendations