The Effect of Concurrent Programming Idioms on Verification - A Position Paper

David Harel, Guy Katz, Assaf Marron, Gera Weiss

Abstract

In recent years formal verification techniques have become an important part of the development cycle of concurrent software. In order to tackle the state explosion problem and verify larger systems, a great deal of work has been put into improving the scalability of verification tools. In this work, we seek to draw attention to an alternative/complementary approach to improving scalability, which sometimes receives less notice: the effect the concurrent programming model itself has on one’s ability to verify programs encoded within it. Recent work suggests that a suitable choice of model, tailored to the problem at hand, may render the produced software more amenable to verification techniques. We recapitulate some recent and new results demonstrating this effect in programming models for discrete, synchronous reactive systems, and outline some directions for future work. We hope that the paper will trigger additional research on this important topic.

References

  1. Alexandron, G., Armoni, M., Gordon, M., and Harel, D. (2014). Scenario-Based Programming: Reducing the Cognitive Load, Fostering Abstract Thinking. In Proc. 36th Int. Conf. on Software Engineering (ICSE), pages 311-320.
  2. Alur, R., Brayton, R. K., Henzinger, T. A., Qadeer, S., and Rajamani, S. K. (1997). Partial-Order Reduction in Symbolic State Space Exploration. In Proc. 9th. Int.
  3. Conf. on Computer Aided Verification (CAV), pages 340-351.
  4. Arcuri, A. and Yao, X. (2008). A Novel Co-evolutionary Approach to Automatic Software Bug Fixing. In Proc. 10th IEEE Congress on Evolutionary Computation (CEC), pages 162-168.
  5. Austin, T. (2001). Design for verification? IEEE Design & Test of Computers, 18(4):80-80.
  6. Basu, A., Bozga, M., and Sifakis, J. (2006). Modeling Heterogeneous Real-time Systems in BIP. In Proc. 4th IEEE Int. Conf. on Software Engineering and Formal Methods (SEFM), pages 3-12.
  7. Betin-Can, A., Bultan, T., Lindvall, M., Lux, B., and Topp, S. (2005). Application of Design for Verification with Concurrency Controllers to Air Traffic Control Software. In Proc. 20th. Int. Conf. on Automated Software Engineering (ASE), pages 14-23.
  8. Bryant, R. E. (1986). Graph-Based Algorithms for Boolean Function Manipulation. IEEE Trans. on Computers, 100(8):677-691.
  9. Burch, J., Clarke, E., McMillan, K., Dill, D., and Hwang, L. (1990). Symbolic Model Checking: 1020 States and Beyond. In Proc. 5th IEEE Annual Symposium on Logic in Computer Science (LICS), pages 428-439.
  10. Clarke, E., Grumberg, O., Jha, S., Lu, Y., and Veith, H. (2000). Counterexample-Guided Abstraction Refinement. In Proc. 12th Int. Conf. on Computer Aided Verification (CAV), pages 154-169.
  11. Cobleigh, J., Avrunin, G., and Clarke, L. (2006). Breaking Up is Hard to do: an Investigation of Decomposition for Assume-Guarantee Reasoning. In Proc. Int. Symp. on Software Testing and Analysis (ISSTA), pages 97- 108.
  12. Damm, W. and Harel, D. (2001). LSCs: Breathing Life into Message Sequence Charts. J. on Formal Methods in System Design, 19(1):45-80.
  13. De Moura, L. and Bjørner, N. (2011). Satisfiability Modulo Theories: Introduction and Applications. Communications of the ACM, 54(9):69-77.
  14. Flanagan, C., Freund, N. S., and Qadeer, S. (2002). ThreadModular Verification for Shared-Memory Programs. In Proc. 11th. European Symp. on Programming Languages and Systems (ESOP), pages 262-277.
  15. Ghilardi, S. and Ranise, S. (2012). MCMT: A Model Checker Modulo Theories. In Proc. 5th Int. Joint Conf. on Automated Reasoning (IJCAR), pages 22-29.
  16. Gordon, M., Marron, A., and Meerbaum-Salant, O. (2012). Spaghetti for the Main Course? Observations on the Naturalness of Scenario-Based Programming. In Proc. 17th Conf. on Innovation and Technology in Computer Science Education (ITICSE), pages 198- 203.
  17. Grumberg, O. and Long, D. (1994). Model Checking and Modular Verification. ACM Trans. Program. Lang. Syst., 16(3):843-871.
  18. Halbwachs, N., Caspi, P., Raymond, P., and Pilaud, D. (1991). The Synchronous Data-Flow Programming Language LUSTRE. Proc. of the IEEE, 79(9):1305- 1320.
  19. Harel, D. (1987). Statecharts: A visual formalism for complex systems. Science of Computer Programming, 8(3):231-274.
  20. Harel, D., Kantor, A., and Katz, G. (2013a). Relaxing Synchronization Constraints in Behavioral Programs. In Proc. 19th Int. Conf. on Logic for Programming, Artificial Intelligence and Reasoning (LPAR), pages 355- 372.
  21. Harel, D., Kantor, A., Katz, G., Marron, A., Mizrahi, L., and Weiss, G. (2013b). On Composing and Proving the Correctness of Reactive Behavior. In Proc. 13th Int. Conf. on Embedded Software (EMSOFT), pages 1-10.
  22. Harel, D., Katz, G., Marron, A., and Weiss, G. (2014). NonIntrusive Repair of Safety and Liveness Violations in Reactive Programs. Transactions on Computational Collective Intelligence (TCCI), 16:1-33.
  23. Harel, D., Lampert, R., Marron, A., and Weiss, G. (2011). Model-Checking Behavioral Programs. In Proc. 11th Int. Conf. on Embedded Software (EMSOFT), pages 279-288.
  24. Harel, D., Marron, A., and Weiss, G. (2010). Programming Coordinated Scenarios in Java. In Proc. 24th European Conf. on Object-Oriented Programming (ECOOP), pages 250-274.
  25. Harel, D., Marron, A., and Weiss, G. (2012). Behavioral Programming. Communications of the ACM, 55(7):90-100.
  26. Henzinger, T. A., Qadeer, S., and Rajamani, S. K. (1998). You Assume, We Guarantee: Methodology and Case Studies. In Proc. 10th Int. Conf. on Computer Aided Verification (CAV), pages 440-451.
  27. Jobstmann, B., Griesmayer, A., and Bloem, R. (2005). Program Repair as a Game. In Proc. 17th Int. Conf. on Computer Aided Verification (CAV), pages 226-238.
  28. Katz, G. (2013). On Module-Based Abstraction and Repair of Behavioral Programs. In Proc. 19th Int. Conf. on Logic for Programming, Artificial Intelligence and Reasoning (LPAR), pages 518-535.
  29. Kharmeh, S. A., Eder, K., and May, D. (2011). A Design-For-Verification Framework for a Configurable Performance-Critical Communication Interface. In Proc. 9th. Int. Conf. on Formal Modeling and Analysis of Timed Systems (FORMATS), pages 335- 351.
  30. Klein, G., Andronick, J., Elphinstone, K., Heiser, G., Cock, D., Derrin, P., Elkaduwe, D., Engelhardt, K., Kolanski, R., Norrish, M., et al. (2010). seL4: Formal Verification of an Operating-System Kernel. Communications of the ACM, 53(6):107-115.
  31. Le Guernic, P., Gautier, T., Le Borgne, M., and Le Maire, C. (1991). Programming Real-Time Applications with Signal. Proceedings of the IEEE, 79(9):1321-1336.
  32. Lu, S., Park, S., Seo, E., and Zhou, Y. (2008). Learning from Mistakes: a Comprehensive Study on Real World Concurrency Bug Characteristics. In Proc. 13th. Int. Conf. on Architectural Support for Programming Languages and Operating Systems (ASPLOS), pages 329-339.
  33. Sharygina, N., Browne, J. C., and Kurshan, R. P. (2001). A Formal Object-Oriented Analysis for Software Reliability: Design for Verification. In Proc. 4th. Int. Conf. on Fundamental Approach to Software Engingeering (FASE), pages 318-332.
  34. Staber, S., Jobstmann, B., and Bloem, R. (2005). Diagnosis is Repair. In Proc. 16th Int. Workshop on Principles of Diagnosis (DX), pages 169-174.
  35. Weimer, W., Forrest, S., Le Goues, C., and Nguyen, T. (2010). Automatic Program Repair with Evolutionary Computation. Communications of the ACM, 53:109- 116.
Download


Paper Citation


in Harvard Style

Harel D., Katz G., Marron A. and Weiss G. (2015). The Effect of Concurrent Programming Idioms on Verification - A Position Paper . In Proceedings of the 3rd International Conference on Model-Driven Engineering and Software Development - Volume 1: MODELSWARD, ISBN 978-989-758-083-3, pages 363-369. DOI: 10.5220/0005324203630369


in Bibtex Style

@conference{modelsward15,
author={David Harel and Guy Katz and Assaf Marron and Gera Weiss},
title={The Effect of Concurrent Programming Idioms on Verification - A Position Paper},
booktitle={Proceedings of the 3rd International Conference on Model-Driven Engineering and Software Development - Volume 1: MODELSWARD,},
year={2015},
pages={363-369},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0005324203630369},
isbn={978-989-758-083-3},
}


in EndNote Style

TY - CONF
JO - Proceedings of the 3rd International Conference on Model-Driven Engineering and Software Development - Volume 1: MODELSWARD,
TI - The Effect of Concurrent Programming Idioms on Verification - A Position Paper
SN - 978-989-758-083-3
AU - Harel D.
AU - Katz G.
AU - Marron A.
AU - Weiss G.
PY - 2015
SP - 363
EP - 369
DO - 10.5220/0005324203630369