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

Objective/MC: A high-level model checking language

Published: 01 June 2019 Publication History

Abstract

Among model checking tools, the behaviour of a system is often formalized as a transition system with atomic propositions associated with states (Kripke structure). In current modeling languages, transitions are usually specified as updates of the system's variables to be performed when certain conditions are satisfied. However, such a low-level representation makes the description of complex transformations difficult, in particular in the presence of structured data. We present Objective/MC, a high-level language with imperative semantics for modeling finite-state systems. The language features are selected with the aim of enabling the translation of models into compact transition systems, amenable to efficient verification via model checking. To this end, we have developed a compiler of our high-level language into the modeling language of the PRISM probabilistic model checker. One of the main characteristics of the language is that it makes a very different treatment of global and local variables. It is assumed that global variables are actually the variables that describe the state of the modeled system, whereas local variables are only used to ease the specification of the system's internal mechanisms. In this paper, we give a complete formal definition of the language, its type system and static analyses, of the transformations to be performed at the level of the Control Flow Graph for the pruning of local variables, and of the PRISM code generation.

References

[1]
Abadi, M., & Cardelli, L. (2012). A theory of objects. Springer Science & Business Media.
[2]
Cardelli, L. (2004). Type systems Tucker, A.B. (Ed.) Computer science handbook, 2nd Edn. Chapman and Hall/CRC, chap. 97.
[3]
Cimatti, A., Clarke, E., Giunchiglia, E., Giunchiglia, F., Pistore, M., Roveri, M., Sebastiani, R., & Tacchella, A. (2002). NuSMV 2: An opensource tool for symbolic model checking. In Computer aided verification (pp. 359-364). Springer.
[4]
Clarke, E., Kroening, D., & Lerda, F. (2004). A tool for checking ANSI-C programs. In Tools and Alg. for the Construction and Analysis of Systems (pp. 168-176). Springer.
[5]
Clavel, M., Durán, F., Eker, S., Lincoln, P., Marti-Oliet, N., Meseguer, J., & Quesada, J.F. (2002). Maude: specification and programming in rewriting logic. Theoretical Computer Science, 285(2), 187-243.
[6]
Habermaier, A., Leupolz, J., & Reif, W. (2016). Unified simulation, visualization, and formal analysis of safety-critical systems with. In International workshop on formal methods for industrial critical systems (pp. 150-167). Springer.
[7]
Havelund, K., & Pressburger, T. (2000). Model checking Java programs using Java Pathfinder. International Journal on Software Tools for Technology Transfer, 2(4), 366-381.
[8]
Holzmann, G.J. (1997). The model checker SPIN. IEEE Transactions on Software Engineering, 23(5), 279.
[9]
Kwiatkowska, M., Norman, G., & Parker, D. (2011). PRISM 4.0: Verification of probabilistic real-time systems. In Computer aided verification (pp. 585-591). Springer.
[10]
Larsen, K.G., Pettersson, P., & Yi, W. (1997). UPPAAL in a nutshell. International Journal on Software Tools for Technology Transfer (STTT), 1(1), 134-152.
[11]
ObjMC ver. 0.12 (2016). ObjMC: The Objective/MC compiler. http://www.di.unipi.it/msvbio/ObjMC/.
[12]
Pardini, G., & Milazzo, P. (2016). A high-level model checking language with compile-time pruning of local variables. In Software technologies: applications and foundations, lecture notes in computer science (Vol. 9946, pp. 67-82). Springer.
[13]
Sirjani, M., Movaghar, A., Shali, A., & De Boer, F.S. (2004). Modeling and verification of reactive systems using Rebeca. Fundamenta Informaticae, 63(4), 385-410.

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Journal of Intelligent Information Systems
Journal of Intelligent Information Systems  Volume 52, Issue 3
June 2019
180 pages

Publisher

Kluwer Academic Publishers

United States

Publication History

Published: 01 June 2019

Author Tags

  1. Compilers
  2. Complex systems analysis
  3. Local variables elimination
  4. Model checking
  5. Programming languages

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 0
    Total Downloads
  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 20 Jan 2025

Other Metrics

Citations

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media