Abstract
Developing interactive and distributive softwares is a complicated task for many reasons including the nature of this technique of programming; asynchronous programming. In this style of programming, there is no synchronization between running processes concerning message-posting communications. Therefore the presence of nonterminating executions for asynchronous programs, as a result of simple programming errors, is common.
This paper presents a transformation technique for asynchronous programs to discover their nonterminating (divergent) executions. The proposed technique converts a given asynchronous program P into another form \(P^{\prime }\) such that the nontermination problem of P is equivalent to the state reachability problem of \(P^\prime \). The paper presents the syntax and semantics of source and target languages of the transformation method. Then the transformation is presented using the formal syntax and semantics. The paper also formalizes the relationship between asynchronous programs and their transformations.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsReferences
Arieli, O., Avron, A.: Reasoning with logical bilattices. J. Log. Lang. Inf. 5(1), 25–63 (1996)
Atig, M.F., Bouajjani, A., Narayan Kumar, K., Saivasan, P.: Linear-time model-checking for multithreaded programs under scope-bounding. In: Chakraborty, S., Mukund, M. (eds.) ATVA 2012. LNCS, vol. 7561, pp. 152–166. Springer, Heidelberg (2012)
Atig, M.F., Bouajjani, A., Touili, T.: Analyzing asynchronous programs with preemption. In: LIPIcs-Leibniz International Proceedings in Informatics, vol. 2. Schloss Dagstuhl-Leibniz-Zentrum für Informatik (2008)
Backes, M., Pfitzmann, B., Waidner, M.: The reactive simulatability (RSIM) framework for asynchronous systems. Inf. Comput. 205(12), 1685–1720 (2007)
Benveniste, A., Berry, G.: The synchronous approach to reactive and real-time systems. Proc. IEEE 79(9), 1270–1282 (1991)
Berry, G., Gonthier, G.: The esterel synchronous programming language: design, semantics, implementation. Sci. Comput. Program. 19(2), 87–152 (1992)
Birkhoff, G., Birkhoff, G., Birkhoff, G., Birkhoff, G.: Lattice theory. Am. Math. Soc. 25 (1948). New York
Bouajjani, A., Emmi, M.: Bounded phase analysis of message-passing programs. Int. J. Softw. Tools Technol. Transf. 16(2), 127–146 (2014)
Strüber, D., Rubin, J., Arendt, T., Chechik, M., Taentzer, G., Plöger, J.: RuleMerger: automatic construction of variability-based model transformation rules. In: Stevens, P., et al. (eds.) FASE 2016. LNCS, vol. 9633, pp. 122–140. Springer, Heidelberg (2016). doi:10.1007/978-3-662-49665-7_8
Cristian, F.: Reaching agreement on processor-group membrship in synchronous distributed systems. Distrib. Comput. 4(4), 175–187 (1991)
Czaplicki, E., Chong, S.: Asynchronous functional reactive programming for GUIs. In: ACM SIGPLAN Notices, vol. 48, pp. 411–422. ACM (2013)
Dakshinamurthy, S., Narayanan, V.K.: A component-based approach to verification of formal software models to check safety properties of distributed systems. Lect. Notes Softw. Eng. 1(2), 186 (2013)
Deligiannis, P., Donaldson, A.F., Ketema, J., Lal, A., Thomson, P.: Asynchronous programming, analysis and testing with state machines. In: Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 154–164. ACM (2015)
Desai, A., Garg, P., Madhusudan, P.: Natural proofs for asynchronous programs using almost-synchronous reductions. In: ACM SIGPLAN Notices, vol. 49, pp. 709–725. ACM (2014)
El-Zawawy, M.A.: An efficient layer-aware technique for developing asynchronous context-oriented software (ACOS). In: 2015 15th International Conference on Computational Science and Its Applications (ICCSA), pp. 14–20. IEEE (2015)
El-Zawawy, M.A.: A robust framework for asynchronous operations on a functional object-oriented model. In: 2015 International Conference on Cloud Computing (ICCC), pp. 1–6. IEEE (2015)
El-Zawawy, M.A., Alanazi, M.N.: An efficient binary technique for trace simplifications of concurrent programs. In: 2014 IEEE 6th International Conference on Adaptive Science & Technology (ICAST), pp. 1–8. IEEE (2014)
Emmi, M., Ganty, P., Majumdar, R., Rosa-Velardo, F.: Analysis of asynchronous programs with event-based synchronization. In: Vitek, J. (ed.) ESOP 2015. LNCS, vol. 9032, pp. 535–559. Springer, Heidelberg (2015)
Emmi, M., Lal, A.: Finding non-terminating executions in distributed asynchronous programs. In: Miné, A., Schmidt, D. (eds.) SAS 2012. LNCS, vol. 7460, pp. 439–455. Springer, Heidelberg (2012)
Fitting, M.: Bilattices and the semantics of logic programming. J. Log. Program. 11(2), 91–116 (1991)
Ganty, P., Majumdar, R.: Algorithmic verification of asynchronous programs. ACM Trans. Program. Lang. Syst. (TOPLAS) 34(1), 6 (2012)
Ganty, P., Majumdar, R., Rybalchenko, A.: Verifying liveness for asynchronous programs. In: ACM SIGPLAN Notices, vol. 44, pp. 102–113. ACM (2009)
Jhala, R., Majumdar, R.: Interprocedural analysis of asynchronous programs. In: ACM SIGPLAN Notices, vol. 42, pp. 339–350. ACM (2007)
Jung, A., Rivieccio, U.: Kripke semantics for modal bilattice logic. In: 2013 28th Annual IEEE/ACM Symposium on Logic in Computer Science (LICS), pp. 438–447. IEEE (2013)
Kelley, J.L.: General Topology. Springer Science & Business Media, New York (1975)
Kopetz, H.: Real-Time Systems: Design Principles for Distributed Embedded Applications. Springer Science & Business Media, New York (2011)
Liskov, B., Shrira, L.: Promises: linguistic support for efficient asynchronous procedure calls in distributed systems. In: ACM Proceedings, vol. 23 (1988)
Pfitzmann, B., Waidner, M.: A model for asynchronous reactive systems and its application to secure message transmission. In: Proceedings of 2001 IEEE Symposium on Security and Privacy S&P 2001, pp. 184–200. IEEE (2001)
Stone, M.H.: Applications of the theory of Boolean rings to general topology. Trans. Am. Math. Soc. 41(3), 375–481 (1937)
Wilson, R.P., Lam, M.S.: Efficient context-sensitive pointer analysis for C programs. In: ACM Proceedings, vol. 30 (1995)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2016 Springer International Publishing Switzerland
About this paper
Cite this paper
El-Zawawy, M.A. (2016). Finding Divergent Executions in Asynchronous Programs. In: Gervasi, O., et al. Computational Science and Its Applications – ICCSA 2016. ICCSA 2016. Lecture Notes in Computer Science(), vol 9790. Springer, Cham. https://doi.org/10.1007/978-3-319-42092-9_32
Download citation
DOI: https://doi.org/10.1007/978-3-319-42092-9_32
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-42091-2
Online ISBN: 978-3-319-42092-9
eBook Packages: Computer ScienceComputer Science (R0)