[erlang-questions] eep: multiple patterns

Thomas Lindgren <>
Wed Jun 4 19:04:09 CEST 2008


--- Ulf Wiger <> wrote:

> > One of
> > the things that struck me when trying to read
> other people's
> > Erlang was that I could tell without enormous
> trouble (because
> > I hadn't seen the system Ulf Wiger was talking
> about!) what
> > messages processes DID receive, but it was very
> much harder
> > to tell what messages they SHOULD receive.
> 
> Yes.
> 
> This is actually a very strong argument against
> structuring large
> systems using message-passing interfaces, even
> though that
> might seem quite the natural thing to do in Erlang.
> Using function
> interfaces, the compiler, xref, dialyzer et al can
> give you lots of
> help, but with message passing no tool support can
> help you
> figure out (1) whether the message you send is
> properly formatted,
> or (2) how to jump to the place in the code where
> the message is
> handled.
> 
> The bigger the system, the more terrible this
> problem becomes.

Sven-Olof Nystrom at Uppsala some years ago presented
an Erlang analyzer that could derive 'process types'.
As I understood it, those types were more or less
automata describing the process mailbox, so you could,
for instance, check whether a sequence of messages was
valid. (As an example, such types can handle processes
with multiple receive statements with some precision.)

Anyway, I haven't heard anything about that for a
while, but there's still a page and a download:
http://user.it.uu.se/~svenolof/SA/

Best,
Thomas



      



More information about the erlang-questions mailing list