Abstract
In behavioral programming, a program consists of separate modules called behavior threads, each representing a part of the system’s allowed, necessary or forbidden behavior. An execution of the program is a series of synchronizations between these threads, where at each synchronization point an event is selected to be carried out. As a result, the execution speed is dictated by the slowest thread. We propose an eager execution mechanism for such programs, which builds upon the realization that it is often possible to predict the outcome of a synchronization point even without waiting for slower threads to synchronize. This allows faster threads to continue running uninterrupted, whereas slower ones catch up at a later time. Consequently, eager execution brings about increased system performance, better support for the modular design of programs, and the ability to distribute programs across several machines. It also allows to apply behavioral programming to a variety of problems that were previously outside its scope. We illustrate the method by concrete examples, implemented in a behavioral programming framework in C + + .
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
BPC: Behavioral Programming in C + + , http://www.wisdom.weizmann.ac.il/~bprogram/bpc/ .
Supplementral material, http://www.wisdom.weizmann.ac.il/~bprogram/bpc/relaxedSync/
Bensalem, S., Bozga, M., Quilbeuf, J., Sifakis, J.: Knowledge-Based Distributed Conflict Resolution for Multiparty Interactions and Priorities. In: Giese, H., Rosu, G. (eds.) FMOODS/FORTE 2012. LNCS, vol. 7273, pp. 118–134. Springer, Heidelberg (2012)
Cheng, Y., Robertazii, T.: Distributed Computation with Communication Delay (Distributed Intelligent Sensor Networks). IEEE Transactions on Aerospace and Electronic Systems 24(6), 700–712 (1988)
Damm, W., Harel, D.: LSCs: Breathing Life into Message Sequence Charts. J. on Formal Methods in System Design 19(1), 45–80 (2001)
Harel, D., Katz, G., Marron, A., Weiss, G.: Non-Intrusive Repair of Reactive Programs. In: Proc. 17th IEEE Int. Conf. on Engineering of Complex Computer Systems (ICECCS), pp. 3–12 (2012)
Harel, D., Lampert, R., Marron, A., Weiss, G.: Model-Checking Behavioral Programs. In: Proc. 11th Int. Conf. on Embedded Software (EMSOFT), pp. 279–288 (2011)
Harel, D., Marelly, R.: Come, Let’s Play: Scenario-Based Programming Using LSCs and the Play-Engine. Springer (2003)
Harel, D., Marron, A., Weiss, G.: Programming Coordinated Scenarios in Java. In: D’Hondt, T. (ed.) ECOOP 2010. LNCS, vol. 6183, pp. 250–274. Springer, Heidelberg (2010)
Harel, D., Marron, A., Weiss, G.: Behavioral Programming. Comm. Assoc. Comput. Mach. 55(7), 90–100 (2012)
Harel, D., Marron, A., Weiss, G., Wiener, G.: Behavioral Programming, Decentralized Control, and Multiple Time Scales. In: Proc. 1st SPLASH Workshop on Programming Systems, Languages, and Applications based on Agents, Actors, and Decentralized Control (AGERE!), pp. 171–182 (2011)
Keller, R.: Formal verification of parallel programs. Comm. Assoc. Comput. Mach. 19(7), 371–384 (1976)
Parnas, D.: On the Criteria To Be Used in Decomposing Systems into Modules. Comm. Assoc. Comput. Mach. 15(12), 1053–1058 (1972)
van Gemund, A.J.: The Importance of Synchronization Structure in Parallel Program Optimization. In: Proc. 11th ACM Int. Conf. on Supercomputing (ICS), pp. 164–171 (1997)
Volk, E.: CxxTest: A Unit Testing Framework for C + + , http://cxxtest.com/
Yook, J.K., Tilbury, D.M., Soparkar, N.R.: Trading Computation for Bandwidth: Reducing Communication in Distributed Control Systems Using State Estimators. IEEE Transactions on Control Systems Technology 10(4), 503–518 (2002)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Harel, D., Kantor, A., Katz, G. (2013). Relaxing Synchronization Constraints in Behavioral Programs. In: McMillan, K., Middeldorp, A., Voronkov, A. (eds) Logic for Programming, Artificial Intelligence, and Reasoning. LPAR 2013. Lecture Notes in Computer Science, vol 8312. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-45221-5_25
Download citation
DOI: https://doi.org/10.1007/978-3-642-45221-5_25
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-45220-8
Online ISBN: 978-3-642-45221-5
eBook Packages: Computer ScienceComputer Science (R0)