pumps, and the like in automation and
process control. The ability to pack distinct, seemingly unrelated behaviors
into a single operating entity seems
promising in areas like robotics, self-guided vehicles, and the modeling of
biological systems. The combination
of reactivity and rich scripts can be applied to information-system management including workflow control, event
processing, root-cause analysis, and
automated configuration, among others. Finally, the ability to trace events
in the context of their respective scenarios, may allow decision-making applications to explain their behavior and
facilitate ongoing human validation.
Behavioral programming may also
accommodate customization as part
of the development cycle, where end-users can enhance, change, or remove
functionality of delivered systems (for
example, smartphones), by coding or
downloading new behaviors without
accessing the core product code.
As a general paradigm, behavioral
programming is still in its infancy. It
has been applied to a relatively small
number of projects, and the existing
tools are not yet of commercial power.
More research and development is
needed in expanding implementations
in a variety of programming contexts
and for larger real-world applications.
We should also experiment with the
collaboration of multiple development
groups, and expand the work on formal
verification, synthesis, performance
and scalability, automated learning
and adaptability, the use of natural language, and enhanced play-in.
We feel that the natural incremental
development afforded by behavioral
programming could become valuable
for novices and seasoned programmers
alike. We hope the paradigm, with its
current implementations in LSC, Java,
and other platforms, contributes to the
vision of liberating programming,16 and
that this article will encourage debate
about the ideas, as well as further research and development.
David Harel thanks Werner Damm and
Rami Marelly for the wonderful collaborations of 1998–1999 and 2000–
2003, respectively, without which the
ideas described here would not exist.
We are grateful to Shai Arogeti, Yoram
Atir, Michael Bar-Sinai, Daniel Barkan,
Dan Brownstein, Nir Eitan, Michal
Gordon, Amir Kantor, Hillel Kugler,
Robby Lampert, Shahar Maoz, Yaarit
Natan, Amir Nissim, Yaniv Saar, Avital
Sadot, Itai Segall, Nir Svirsky, Smadar
Szekely, Moshe Vardi, Moshe Weinstock, Guy Wiener, and Guy Weiss for
their valuable comments and contributions throughout the development
of this article and the ideas behind it.
Thanks to Shmuel Katz for insights on
positioning behavioral programming
relative to aspect-orientation. We also
thank the anonymous reviewers for
their valuable suggestions.
Harel’s and Marron’s research was
supported in part by the John von Neumann Minerva Center for the Development of Reactive Systems at the Weizmann Institute of Science, and by an
Advanced Research Grant to DH from
the European Research Council (ERC)
under the European Community’s
FP7 Programme. Weiss’s research was
supported by the Lynn and William
Frankel Center for Computer Science
at Ben-Gurion University and by a reintegration (IRG) grant under the European Community’s FP7 Programme.
1. Arkin, R. C. Behavior-Based Robotics. MI T Press, 1998.
2. Atir, Y. and Harel, D. Using LSCs for scenario authoring
in tactical simulators. In Summer Computer
Simulation Conference. Soc. for Comp. Simulation Int.,
3. Barak, D., Harel, D. and Marelly, R. Interplay:
Horizontal scale-up and transition to design
in scenario-based programming. Lectures on
Concurrency and Petri Nets, (2004), 66–86.
4. Berry, G. and Cosserat, L. The Esterel synchronous
programming language and its mathematical
semantics. In Seminar on Concurrency, Springer,
5. Bliudze, S. and Sifakis, J. A notion of glue expressiveness
for component-based systems. CONCUR, 2008.
6. Bordini, R.H., Dastani, M. Dix, J. and Seghrouchni,
A.E. F. Multi-Agent Programming: Languages, Tools
and Applications. Springer, 2009.
7. Bouge, L. and Francez, N. A compositional approach to
superimposition. In POPL, 1988.
8. Branicky, M.S. Behavioral programming. In Working
Notes AAAI Spring Symp. on Hybrid Sys. and AI, 1999.
9. Brooks, R. A robust layered control system for a mobile
robot. IEEE J. of Robotics and Automation 2, 1 (1986).
10. Bunker, A., Gopalakrishnan, G. and Slind, K. Live
sequence charts applied to hardware requirements
specification and verification. Int. J. on Software Tools
for Technology Transfer 7, 4 (2005).
11. Damm, W. and Harel, D. LSCs: Breathing Life into
Message Sequence Charts. J. on Formal Methods in
System Design 19, 1 (2001).
12. Eitan, N., Gordon, M., Harel, D., Marron, A. and Weiss,
G. On visualization and comprehension of scenario-based programs. ICPC, 2011.
13. Eitan, N. and Harel, D. Adaptive behavioral programming.
IEEE Int. Conf. on Tools with Artificial Intelligence, 2011.
14. Gordon, M., Marron, A., and Meerbaum-Salant, O.
Spaghetti for the main course? Observations on
naturalness of scenario-based programming. ITICSE.
To appear July 2012.
15. Harel, D. From play-in scenarios to code: An achievable
dream. IEEE Computer 34, 1 (2001).
16. Harel, D. Can programming be liberated, period? IEEE
Computer 41, 1 (2008).
17. Harel, D., Katz, G., Marron, A. and Weiss, G. Non-intrusive repair of reactive programs. ICECCS. To
appear July 2012.
18. Harel, D., Kleinbort, A. and Maoz, S. S2A: A compiler for
multi-modal UML sequence diagrams. Fundamental
Approaches to Software Engineering, 2007.
19. Harel, D., Kugler, H., Marelly, R. and Pnueli, A. Smart
play-out of behavioral requirements. FMCAD, 2002.
20. Harel, D., Lampert, R., Marron, A. and Weiss, G. Model-checking behavioral programs. In EMSOF T, 2011.
21. Harel, D. and Marelly, R. Come, Let’s Play: Scenario-Based Programming Using LSCs and the Play-Engine.
22. Harel, D. and Maoz, S. Assert and negate revisited:
Modal semantics for UML sequence diagrams.
Software and System Modeling 7, 2 (2008), 237–252.
23. Harel, D., Maoz, A., Szekely, S. and Barkan, D. PlayGo:
Towards a comprehensive tool for scenario based
programming. ASE, 2010.
24. Harel, D., Marron, A., Nissim, A. and Weiss, G.
Combining behavioral programming and fuzziness
for hybrid control systems. In Proc. 2012 IEEE
International Conference on Fuzzy Systems. To appear
25. Harel, D., Marron, A. and Weiss, G. Programming
coordinated scenarios in Java. ECOOP, 2010.
26. Harel, D., Marron, A., Weiss, G. and Wiener, G.
Behavioral programming, decentralized control, and
multiple time scales. AGERE!, 2011.
27. Harel, D. and Naamad, A. The S TATEMATE semantics
of statecharts. TOSEM 5, 4 (1996).
28. Harel, D. and Pnueli, A. On the Development of
Reactive Systems, in Logics and Models of Concurrent
Systems. NATO ASI Series, Vol. F-13. 1985.
29. Harel, D. and Segall, I. Planned and traversable play-out: A flexible method for executing scenario-based
programs. Tools and Algorithms for the Constr. and
Anal. of Systems, 2007.
30. Harel, D. and Segall, I. Synthesis from live sequence
chart specifications. Computer System Sciences, 78:3
31. Henzinger, T. A., Kirsch, C.M., Sanvido, M. A. A. and
Pree, W. From control models to real-time code using
Giotto. IEEE Control Systems Magazine 23, 1 (2003).
32. Katz, S. and Gil, J. Y. Aspects and superimpositions.
AOP Workshop at ECOOP, 1999.
33. Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C.,
Lopes, C., Loingtier, J. M. and Irwin, J. Aspect-oriented
programming. ECOOP, 1997.
34. Kugler, H., Plock, C. and Roberts, A. Synthesizing
biological theories. In CAV, 2011.
35. Kugler, H. and Segall, I. Compositional synthesis
of reactive systems from live sequence chart
specifications. Tools and Alg. for the Constr. and Anal.
of Systems, 2009.
36. LEJOS. Java for LEGO Mindstorms; http://lejos.
37. Lieberman, H. Your Wish is My Command: Programming
by Example. Morgan Kaufmann, 2001.
38. Maoz, S. and Harel, D. From multi-modal scenarios to
code: Compiling LSCs into AspectJ. In FSE, 2006.
39. OSCI. Open SystemC Initiative. IEEE 1666 Language
Reference Manual; http://www.systemc.org.
40. Prehofer, C. Feature-oriented programming: A fresh
look at objects. ECOOP, 1997.
41. Sadot, A., Fisher, J., Barak, D. Admanit, Y. Stern, M. J.,
Hubbard, E. J.A and Harel, D. Toward verified biological
models. IEEE/ACM Trans. Comput. Biology Bioinform
5, 2 (2008).
42. Shimony, B., Nikolaidis, I., Gburzynski, P. and Stroulia,
E. On coordination tools in the PicOS tuples system.
43. Wiener, G., Weiss, G. and Marron, A. Coordinating and
visualizing independent behaviors in Erlang. In 9th ACM
SIGPLAN Erlang Workshop, 2010.
David Harel (email@example.com) is The William
Sussman Professorial Chair in the Department of
Computer Science and Applied Mathematics at
The Weizmann Institute of Science, Rehovot, Israel.
Assaf Marron (firstname.lastname@example.org) is a
researcher at The Weizman Institute of Science, Rehovot,
Gera Weiss (email@example.com) is an assistant professor
in the Department of Computer Science at Ben Gurion
University of the Negev, Be’er Sheva, Israel.
© 2012 ACM 0001-0782/12/07 $15.00