Early Fault Detection in DSLs Using SMT Solving and Automated Debugging

  • Sarmen Keshishzadeh
  • Arjan J. Mooij
  • Mohammad Reza Mousavi
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8137)


In the context of Domain Specific Languages (DSLs), we study ways to detect faults early in the software development cycle. We propose techniques that validate a wide range of properties, classified into basic and advanced. Basic validation includes syntax checking, reference checking and type checking. Advanced validation concerns domain specific properties related to the semantics of the DSL. For verification, we mechanically translate the DSL instance and the advanced properties into Satisfiability Modulo Theory (SMT) problems, and solve these problems using an SMT solver. For user feedback, we extend the verification with automated debugging, which pinpoints the causes of the violated properties and traces them back to the syntactic constructs of the DSL. We illustrate this integration of techniques using an industrial case on collision prevention for medical imaging equipment.


Early Fault Detection Formal Verification Domain Specific Language (DSL) Satisfiability Modulo Theories (SMT) Delta Debugging 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Baier, C., Katoen, J.-P.: Principles of Model Checking. MIT Press (2008)Google Scholar
  2. 2.
    Barrett, C., Sebastiani, R., Seshia, S.A., Tinelli, C.: Satisfiability modulo theories. In: Handbook of Satisfiability, vol. 185, pp. 825–885 (2009)Google Scholar
  3. 3.
    Biere, A., Heule, M.J.H., van Maaren, H., Walsh, T. (eds.): Handbook of Satisfiability. Frontiers in Artificial Intelligence and Applications, vol. 185. IOS Press (2009)Google Scholar
  4. 4.
    Cleve, H., Zeller, A.: Locating causes of program failures. In: Proceedings of ICSE 2005, pp. 342–351. ACM (2005)Google Scholar
  5. 5.
    de Moura, L., Bjørner, N.: Z3: An efficient SMT solver. In: Ramakrishnan, C.R., Rehof, J. (eds.) TACAS 2008. LNCS, vol. 4963, pp. 337–340. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  6. 6.
    De Moura, L., Bjørner, N.: Satisfiability modulo theories: introduction and applications. Communications of the ACM 54(9), 69–77 (2011)CrossRefGoogle Scholar
  7. 7.
    Eysholdt, M., Behrens, H.: Xtext: implement your language faster than the quick and dirty way. In: SPLASH/OOPSLA Companion, pp. 307–309. ACM (2010)Google Scholar
  8. 8.
    Frehse, G., Le Guernic, C., Donzé, A., Cotton, S., Ray, R., Lebeltel, O., Ripado, R., Girard, A., Dang, T., Maler, O.: SpaceEx: Scalable verification of hybrid systems. In: Gopalakrishnan, G., Qadeer, S. (eds.) CAV 2011. LNCS, vol. 6806, pp. 379–395. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  9. 9.
    Garavel, H., Lang, F., Mateescu, R., Serwe, W.: CADP 2010: A toolbox for the construction and analysis of distributed processes. In: Abdulla, P.A., Leino, K.R.M. (eds.) TACAS 2011. LNCS, vol. 6605, pp. 372–387. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  10. 10.
    Ge, Y., de Moura, L.: Complete instantiation for quantified formulas in satisfiabiliby modulo theories. In: Bouajjani, A., Maler, O. (eds.) CAV 2009. LNCS, vol. 5643, pp. 306–320. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  11. 11.
    Hooman, J., Mooij, A.J., van Wezep, H.: Early fault detection in industry using models at various abstraction levels. In: Derrick, J., Gnesi, S., Latella, D., Treharne, H. (eds.) IFM 2012. LNCS, vol. 7321, pp. 268–282. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  12. 12.
    Hwang, J.H., Xie, T., Chen, F., Liu, A.X.: Fault localization for firewall policies. In: Proceedings of SRDS 2009, pp. 100–106. IEEE Computer Society (2009)Google Scholar
  13. 13.
    Jose, M., Majumdar, R.: Cause clue clauses: error localization using maximum satisfiability. ACM SIGPLAN Notices 46(6), 437–446 (2011)CrossRefGoogle Scholar
  14. 14.
    Krahn, H., Rumpe, B., Völkel, S.: MontiCore: a framework for compositional development of domain specific languages. J. STTT 12(5), 353–372 (2010)CrossRefGoogle Scholar
  15. 15.
    Mernik, M., Heering, J., Sloane, A.M.: When and how to develop domain-specific languages. ACM Computing Surveys 37(4), 316–344 (2005)CrossRefGoogle Scholar
  16. 16.
    Mooij, A.J., Hooman, J., Albers, R.: Gaining industrial confidence for the introduction of domain-specific languages. In: Proceedings of IEESD, 2013 (to appear, 2013)Google Scholar
  17. 17.
    Ratiu, D., Voelter, M., Molotnikov, Z., Schaetz, B.: Implementing modular domain specific languages and analyses. In: Workshop on MoDeVVa (2012)Google Scholar
  18. 18.
    Smith, A., Veneris, A., Ali, M.F., Viglas, A.: Fault diagnosis and logic debugging using boolean satisfiability. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 24(10), 1606–1621 (2005)CrossRefGoogle Scholar
  19. 19.
    Steinberg, D., Budinsky, F., Paternostro, M., Merks, E.: Eclipse Modeling Framework. Pearson Education (2008)Google Scholar
  20. 20.
    van Deursen, A., Klint, P., Visser, J.: Domain-specific languages: an annotated bibliography. SIGPLAN Notices 35(6), 26–36 (2000)CrossRefGoogle Scholar
  21. 21.
    Woehrle, M., Bakhshi, R., Mousavi, M.R.: Mechanized extraction of topology anti-patterns in wireless networks. In: Derrick, J., Gnesi, S., Latella, D., Treharne, H. (eds.) IFM 2012. LNCS, vol. 7321, pp. 158–173. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  22. 22.
    Zeller, A.: Why Programs Fail? A Guide to Systematic Debugging. Morgan Kaufmann (2009)Google Scholar
  23. 23.
    Zeller, A., Hildebrandt, R.: Simplifying and isolating failure-inducing input. IEEE Transactions on Software Engineering 28(2), 183–200 (2002)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Sarmen Keshishzadeh
    • 1
  • Arjan J. Mooij
    • 2
  • Mohammad Reza Mousavi
    • 3
  1. 1.Eindhoven University of TechnologyEindhovenThe Netherlands
  2. 2.Embedded Systems Innovation by TNOEindhovenThe Netherlands
  3. 3.Center for Research on Embedded SystemsHalmstad UniversitySweden

Personalised recommendations