TY - JOUR
T1 - Behavioral programming
AU - Harel, David
AU - Marron, Assaf
AU - Weiss, Gera
N1 - John von Neumann Minerva Center for the Development of Reactive Systems at the Weizmann Institute of Science; European Research Council (ERC) under European Community; Lynn and William Frankel Center for Computer Science at Ben-Gurion University; European CommunityHarel'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.
PY - 2012/7/1
Y1 - 2012/7/1
N2 - Behavioral programming is a novel, language-independent paradigm for programming reactive systems, centered on natural and incremental specification of behavior, and implemented in the visual formalism of live sequence charts (LSC), and in the BPJ Java package. To facilitate full behavioral modularity via the independent coding of separate facets of behavior, all scenarios run simultaneously, and all are consulted at every decision point during execution. Naturally, composing behaviors that were programmed without direct consideration of mutual dependencies raises questions about conflicting requirements, under-specification, and synchronization. When all b-threads are at a synchronization point, an event is chosen, that is requested by at least one b-thread and is not blocked by any b-thread. The selected event is then triggered by resuming all the b-threads that either requested it or are waiting for it.
AB - Behavioral programming is a novel, language-independent paradigm for programming reactive systems, centered on natural and incremental specification of behavior, and implemented in the visual formalism of live sequence charts (LSC), and in the BPJ Java package. To facilitate full behavioral modularity via the independent coding of separate facets of behavior, all scenarios run simultaneously, and all are consulted at every decision point during execution. Naturally, composing behaviors that were programmed without direct consideration of mutual dependencies raises questions about conflicting requirements, under-specification, and synchronization. When all b-threads are at a synchronization point, an event is chosen, that is requested by at least one b-thread and is not blocked by any b-thread. The selected event is then triggered by resuming all the b-threads that either requested it or are waiting for it.
UR - https://www.scopus.com/pages/publications/84863756164
U2 - 10.1145/2209249.2209270
DO - 10.1145/2209249.2209270
M3 - Review article
SN - 0001-0782
VL - 55
SP - 90
EP - 100
JO - Communications of the ACM
JF - Communications of the ACM
IS - 7
ER -