Symbolic Execution of Concurrent Systems Using Petri Nets
1989, Computer Languages
Abstract
Techniques for analyzing sequential programs in order to improve their reliability have been widely studied in the past. Among the most interesting analysis techniques, we consider symbolic execution. However, analysis techniques for concurrent programs, and in particular symbolic execution, are still an open research area. In this paper, we define a method for symbolic execution of concurrent systems, based on an extension of the Petri net formalism, called EF nets. EF nets are a powerful, highly expressive and general formalism. Depending on the level of abstraction of actions and predicates that one associates to the transitions of the net, EF nets can be used as a high-level specification formalism for concurrent systems, or as a lower level internal representation of concurrent programs. Thus, the model is not dependent on a particular concurrent programming language, but it is flexible enough to be the kernel model for the representation of a wide set of systems and programming languages. In the paper, in order to support the analysis of a concurrent system or program, at first a general algorithm for symbolically executing an EF net is defined. Then, a more efficient algorithm is given for the particular, though important, subclass of EF nets, defined as sate EF nets. Such algorithm is proved to significantly help in reducing the amount of information needed to characterize a symbolic execution. Both the modelling power of the EF nets and the usefulness of the concurrent symbolic execution algorithms defined are illustrated by means of a case study.
References (22)
- Kemmerer, R. A. Testing formal specifications to detect design errors. IEEE Trans. Software Engng SE-II(1); January 1985.
- Taylor, R. N. A general-purpose algorithm for analyzing concurrent programs. Commun. ACM 26(5); May 1983.
- Tai, K. C. and Obaid, E. E. Reproducible testing of Ada task programs. Proc. 2ndlnt. 1EEE Conf. on Ada Applications and Environments; 8-10 April 1986.
- Dillon, L. K. Symbolic execution-based verification of Ada tasking programs. Proc. 3rd Int. Conf. on Ada Applications and Environments; May 1988.
- Dillon, L. K., Kemmerer, R. A. and Harrison, L. J. An experience with two symbolic execution based approaches to formal verification of Ada tasking programs. Proc. 2nd Workshop on Software Testing, Verification and Analysis, Banff, Canada. IEEE Press; 19-21 July 1988.
- Angerwala, T. Putting Petri nets to work. IEEE Comput.; December 1979.
- Brams, G. W. ROseaux de Petri: Thkorie et Pratique. E.S.I., Paris; 1983.
- Mandrioli, D., Zicari, R., Ghezzi, C. and Tisato, F. Modeling the Ada task system by Petri nets. Comput. Lang. 10(1), 1985.
- Peterson, J. L. Petri Net Theory and the Modeling of Systems. Engelwood Cliffs, NJ: Prentice-Hall; 1981.
- Reisig, W. Petri Nets: An Introduction. ETACS Monographs on Theoretical Computer Science. Berlin: Springer; 1985.
- Genrich, H. J. and Lautenbach, K. System modelling with high-level Petri nets. Theoret. Comput. Sci. 13, 1981.
- Jensen, K. Coloured Petri nets. In Petri Nets: Central Models and their Properties. Advances in Petri Nets 1986 Edited by Brauer, W., Reisig, W. and Rozenberg, G.), Part I. Lecture Notes in Computer Science 254. Berlin: Springer; 1987.
- Genrich, H. J. Net Theory and Application. Information Processing 86 (Edited by Kugler H. J.). Amsterdam: Elsevier; 1986.
- Bruno, G. and Marchetto, G. Process-translatable Petri nets for rapid prototyping of process control systems. IEEE Trans. Software Engng SE-12; February 1986.
- Billington, J., Wheeler, G. R. and Wilbur-Ham, M. C. PROTEAN: A high level Petri net tool for the specification and verification of communication protocol. IEEE Trans. Software Engng SE-14; March 1988.
- Ghezzi, C., Mandrioli, D., Morasca, S. and Pezze, M. On introducing time in Petri nets. 5th Int. Workshop on Software Specification and Design, Pittsburgh; 19-21 May 1989.
- Clarke, L. A. A system to generate test data and symbolically execute programs. IEEE Trans. Software Engng SE-2(3); September 1976.
- Clarke, L. A. and Richardson, D. J. Symbolic evaluation method--Implementations and applications. Proc. Summer School on Computer Program Testing (Edited by Chandrasekaren and Radicchi). Amsterdam: North-Holland; 1981.
- Clarke, L. A. and Richardson, D. J. Symbolic evaluation--An aid to testing and verification. In Software Validation (Edited by Hauser H.). Amsterdam: North-Holland; 1984.
- Hantler, S. and King, J. C. An introduction to proving the correctness of programs. Comput. Surv. 8(3); 1976.
- Kemmerer, R. A. and Eckmann, S. T. UNISEX: A Unix-based symbolic executor for Pascal. Software Pract. Exper. 15; May 1985.
- King, J. C. Symbolic execution and program testing. Commun. ACM 17(7); July 1976. About the Author--CARLO GHEZZI is a professor of software engineering at the Politecnico di Milano. Prior to that he held positions at the University of Padova and the University of North Caroilina at Chapel Hill: he was also a visiting scholar at the University of California at Los Angeles. He served on the program committee of several national and international conferences, including the IEEE International Conference on Software Engineering and the European Software Engineering Conference, for which he was Program Chairman in 1989. His research interests are in programming languages, software specification, and software support environments. He has published over 60 papers in these and other areas. He also co-authored five books, among which are Programming Language Concepts and Theoretical Foundations of Computer Science, published by J. Wiley and Sons. He is presently working on a new book, Software Engineering Principles, which will appear in late 1990. About the Anthor--nINO MANDRIOLI was born in 1949. He graduated in electrical engineering at the Politecnico di Milano in 1972 and in mathematics at the Universitfi Statale di Milano in 1976. He has been assistant and associate professor at Politecnico di Milano from 1976 to 1980; professor at the Universit~i di Udine from 1981 to 1983. Since then, he is professor of computer science at the Politecnico di Milano. He has also been a visiting scholar at the University of California at Los Angeles in 1976. Mandrioli's research interests include theoretical computer science and software engineering, with particular reference to specification languages and environments, programming languages, real time systems. He has published over 60 scientific papers in these areas. Many of such papers have been published in major journals of the field such as Journal of the ACM, ACM Transactions on Programming Languages and Systems, IEEE Trans. On Software Engineering, SIAM Journal on Computing, Information and Control. He is also a coauthor, with Carlo Ghezzi, of the book Theoretical Foundations of Computer Science. He has also written several other books in Italian. Mandrioli served as a reviewer for many international conferences and journals and has participated to program committees of several interna- tional conferences. About the Author--SANDRO MORASCA was born in Como (Italy) on 23 July 1960. He graduated in Electronic Engineering at the Politecnico di Milano (Italy) in 1985. He is currently a Ph.D. student in computer science at the Politecnico di Milano. His research interests concern Petri nets, concurrent and real-time software specification and verification, software metrics and software reliability. He is a member of the IEEE Computer Society. About the Author--MAuRO PEzz~ was born in Cles, Trento (Italy) on 1 December 1960. He graduated in Computer Science at the University of Pisa (Italy) in 1984. He is a Ph.D. student in Computer Science at the Politecnico di Milano (Italy). In 1987 during his Ph.D. curriculum he joined the University of Edinburgh (U.K.) for 6 months as an academic researcher. He currently works at CEFRIEL, a research institute in Milano (Italy). His research interests concern Petri nets, concurrent and real-time software specification and verification. He is a member of the IEEE Computer Society and the ACM.