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.
acknowledgments
David Harel thanks Werner Damm and
Rami Marelly for the wonderful collab-
orations 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, Robby Lampert, Sha-
har 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 com-
ments and contributions throughout
the development of this article and
the ideas behind it. Thanks to Shm-
uel Katz for insights on positioning
behavioral programming relative to
aspect-orientation. We also thank the
anonymous reviewers for their valu-
able suggestions.
References
1. arkin, r. C. Behavior-Based Robotics. Mit 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.,
2007.
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,
1985, 389–448.
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).
David harel ( dharel@weizmann.ac.il) 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 ( assaf.marron@weizmann.ac.il) is a
researcher at the Weizman institute of science, rehovot,
israel.
Gera Weiss ( geraw@cs.bgu.ac.il) is an assistant professor
in the department of Computer science at ben gurion
university of the negev, be’er sheva, israel.