
Behavioral Programming (2012) [pdf] - akkartik
http://www.wisdom.weizmann.ac.il/~harel/papers/Behavioral%20programming%20.pdf
======
alfonsodev
> The work on behavioral programming began with scenario-based programming, a
> way to create executable specifications of reactive systems

Is this sort of what BPMs does ? is a better or worse approach ?

Related links about BPM and reactive programming:

[https://github.com/rht-labs/reactive-bpm](https://github.com/rht-
labs/reactive-bpm) [https://www.slideshare.net/JustinHolmes2/visualizing-your-
ev...](https://www.slideshare.net/JustinHolmes2/visualizing-your-event-storm-
in-new-ways)

------
fredgrott
thanks akkartik, just what I was seeking to explain the differences between
reactive and what came before

~~~
amitport
Sounds like you believe there's a progression from BP to reactive programming.
I think it's the other way around.

------
foobar_
This is exactly like the Actor Model and what Erlang seems to do.

~~~
Jtsummers
[http://www.wisdom.weizmann.ac.il/~bprogram/pres/bp-
sigerl201...](http://www.wisdom.weizmann.ac.il/~bprogram/pres/bp-
sigerl2010.pdf)

They actually have a program porting the idea to Erlang. I think it also helps
to clarify where the two models differ. Behavioral Programming seems to throw
a bunch of possible actions and controls into the world, and lets whichever
actions are both desired and not blocked execute (only one of them?). It's
straightforward to implement in Erlang (or not too hard), but it's not
precisely what Erlang does. There's no message passing (per se), but rather a
shared space of knowledge (events) which is controlled by some manager that
can permit actors to act or not act.

So, related, but not quite the same. From reading it, it seems to have perhaps
more in common with tuple spaces and job control languages. Registering what
sort of tuple (event) a process can respond to and waiting for work to become
available and then acting on it once it's available. Then the process can
produce new tuples/events or simply consume them.

~~~
foobar_
This seems very similar to request/reply pattern. Erlang + RabbitMQ should be
enough to do Behavioral Programming.

Now showing a live sequence diagram is another thing altogether.

