
OOSMOS, the Object Oriented State Machine Operating System, Is Now Open Source - zzglenm
http://oosmos.com/?Action=HN
======
michaelsbradley
For background on the semantics of statecharts and a bit of computer science
history, see the following papers and book by Prof. David Harel (the inventor
of statecharts) and his collaborators:

 _The STATEMATE Semantics of Statecharts_ , 1996

[http://www.wisdom.weizmann.ac.il/~harel/SCANNED.PAPERS/Seman...](http://www.wisdom.weizmann.ac.il/~harel/SCANNED.PAPERS/SemanticsofStatecharts.pdf)

 _Modeling Reactive Systems with Statecharts: The STATEMATE Approach_ , 1998

[http://www.wisdom.weizmann.ac.il/~harel/reactive_systems.htm...](http://www.wisdom.weizmann.ac.il/~harel/reactive_systems.html)

 _The Rhapsody Semantics of Statecharts (or, On the Executable Core of the
UML)_ , 2004

[http://www.wisdom.weizmann.ac.il/~harel/papers/RhapsodySeman...](http://www.wisdom.weizmann.ac.il/~harel/papers/RhapsodySemantics.pdf)

 _Statecharts in the Making: A Personal Account_ , 2007

[http://www.wisdom.weizmann.ac.il/~harel/papers/Statecharts.H...](http://www.wisdom.weizmann.ac.il/~harel/papers/Statecharts.History.CACM.pdf)

~~~
kqr2
Any software tool recommendations (preferably open source) for creating
statecharts?

~~~
zzglenm
Not open source but this is an excellent free drawing tool that lets you draw
very good looking state charts:
[http://www-03.ibm.com/software/products/en/ratimode](http://www-03.ibm.com/software/products/en/ratimode)

~~~
pathelectronica
that's the first time I've ever seen a Rational tool recommended by a user.

------
oneJob
It amazes me how often programmers can talk about state machines and functions
while concurrently pretending that mathematics is, largely, something that
either need not be discussed or is of secondary concern.

------
lectrick
Just in time for people realizing that holding onto lots of state is actually
a code-design smell and that functional paradigms should be used as much as
possible instead!

~~~
gregwebs
I have done functional programming (FP) with Haskell (including
professionally) for years, and I think this notion is misguided.

One of the core principles of FP is about state. However, I believe it is to
think very carefully about state and be very explicit about how you handle it
rather than performing ad-hoc mutations. That often means avoiding state, but
many problems require maintaining state.

State machines can be a great tool to be explicit about state management to
the point that you can have a specification for how state behaves.

~~~
lectrick
Thanks for the clarification.

Also, constraint of side effects at the language level allows powerful things
like... time-traveling debuggers (does GHC provide anything like this, btw?
Because it probably could...)

[http://elm-lang.org/blog/time-travel-made-easy](http://elm-
lang.org/blog/time-travel-made-easy)

------
odc
So this is just a fancy event loop?

~~~
avmich
As every operating system is, right?

~~~
chubot
I know fairly little about it, but Linux seems to use kernel threads all over
the place, so it's not just an event loop.

