TY - GEN
T1 - Coordinating and visualizing independent behaviors in Erlang
AU - Wiener, Guy
AU - Weiss, Gera
AU - Marron, Assaf
PY - 2010/12/13
Y1 - 2010/12/13
N2 - Behavioral programming, introduced by the LSC language and extended by the BPJ Java library, enables development of behaviors as independent modules that are relatively oblivious of each other, yet are integrated at run-time yielding cohesive system behavior. In this paper we present a proof-of-concept for infrastructure and a design pattern that enable development of such behavioral programs in Erlang. Each behavior scenario, called a behavior thread, or b-thread, runs in its own Erlang process. Runs of programs are sequences of events that result from three kinds of b-thread actions: requesting that events be considered for triggering, waiting for triggered events, and blocking events that may be requested by other b-threads. A central mechanism handles these requests, and coordinates b-thread execution, yielding composite, integrated system behavior. We also introduce a visualization tool for Erlang programs written in the proposed design pattern. We believe that enabling the modular incremental development of behavioral programming in Erlang could further simplify the development and maintenance of applications consisting of concurrent independent behaviors.
AB - Behavioral programming, introduced by the LSC language and extended by the BPJ Java library, enables development of behaviors as independent modules that are relatively oblivious of each other, yet are integrated at run-time yielding cohesive system behavior. In this paper we present a proof-of-concept for infrastructure and a design pattern that enable development of such behavioral programs in Erlang. Each behavior scenario, called a behavior thread, or b-thread, runs in its own Erlang process. Runs of programs are sequences of events that result from three kinds of b-thread actions: requesting that events be considered for triggering, waiting for triggered events, and blocking events that may be requested by other b-threads. A central mechanism handles these requests, and coordinates b-thread execution, yielding composite, integrated system behavior. We also introduce a visualization tool for Erlang programs written in the proposed design pattern. We believe that enabling the modular incremental development of behavioral programming in Erlang could further simplify the development and maintenance of applications consisting of concurrent independent behaviors.
KW - Behavioral programming
KW - Design patterns
KW - Live sequence charts
UR - https://www.scopus.com/pages/publications/78649824399
U2 - 10.1145/1863509.1863512
DO - 10.1145/1863509.1863512
M3 - Conference contribution
AN - SCOPUS:78649824399
SN - 9781450302531
T3 - Proceedings of the ACM SIGPLAN International Conference on Functional Programming, ICFP
SP - 13
EP - 21
BT - Erlang'10 - Proceedings of the 2010 ACM SIGPLAN Erlang Workshop, Co-located with ICFP'10
T2 - 9th ACM SIGPLAN Erlang Workshop, Erlang 2010, Co-located with ICFP'10
Y2 - 30 September 2010 through 30 September 2010
ER -