Hoare, Communicating Sequential Processes, and JCSP

Luke Gorrie <>
Wed Feb 12 08:17:59 CET 2003

Joe Armstrong <> writes:

> One other work which influenced Erlang was Dijkstra's idea of guarded
> commands - Dijkstra liked *every* alternative in a multi-way branch to
> have a guard.

And even more extreme, since if several guards are true, there is a
non-deterministic choice between them. This seems to be where CSP's
non-deterministic choice of events comes from, which in turn (it seems
to me..) is where Erlang gets its 'receive' which can handle mailbox
items out-of-order depending on the guards. But I don't know if that's
right, since from chatting with you and Robert about Erlang history,
CSP hasn't come up very much.

I'd quite like to hear more about where Erlang comes from, if you can
dig up some juicy details from your memory banks :-)

Actually I've recently taken up Erlang compuarchaeology as a hobby,
after Bjarne Däcker and Göran Båge were nice enough to get me some old
manuals for EriPascal (a quite Erlang-like concurrent extension of
Pascal for realtime system programming) and its ancestor the APN163
processor/operating system that had processes and very-simple message
passing. But following this trail by itself doesn't cover all of
Erlang influences, since I don't see where the Dijkstra/Hoare/???
ingredients really came in. So there might be some more groovy stuff
to check out.. but what?

History wants to know!


More information about the erlang-questions mailing list