[erlang-questions] light-weight concurrency in C

Serge Aleynikov <>
Tue Jun 19 04:46:03 CEST 2007


A function defines a transition of state S into state S':

f(S) -> S'

Whereas FSM defines an automata that consists of:

a. States
b. Transition conditions (e.g. State A --> Condition X --> State B)
c. Actions performed at a given point in time (e.g. when 
entering/exiting states)

FSM visualization tools could be used to generate Erlang code (though I 
don't think such code generators currently exist) just like code in 
other languages.

There are three approaches mentioned on this list that can be used to 
create FSMs: gen_fsm OTP behavior, plain_fsm (found in Jungerl) and 
sys_fsm (maintained by Vance Shipley).  Each has its own pros and cons, 
but if you are interested about reasoning behind each - you can search 
this mailing list.

Regards,

Serge

Francis Norton wrote:
> This may be a stupid question from someone who is just starting on the
> tutorial, but what is the difference between Erlang functions and Finite
> State Machines? Could you use FSM visualisation tools to document (or 
> write)
> Erlang?
> 
> Francis.
> 
> On 6/18/07, Serge Aleynikov <> wrote:
>>
>> This looks like the same approach to concurrency as what's been used in
>> Erlang: http://legacy.imatix.com/html/smt.  They use it in their open
>> source high-performance messaging server: http://www.openamq.org.
>>
>> While there's been a comparison between Yaws and Apache, it would be
>> interesting to see one against http://www.xitami.com as it would seem
>> like it could actually outperform Yaws.
>>
>> Serge
>> _______________________________________________
>> erlang-questions mailing list
>> 
>> http://www.erlang.org/mailman/listinfo/erlang-questions
>>
> 




More information about the erlang-questions mailing list