State Machine Compiler

Heute wirds mal wieder technisch Und zwar mit dem ganz ganz feinen Etwas namens
„State Machine Compiler“.

Jeder hat sicherlich schonmal etwas mit endlichen Automaten zu gehabt oder zumindest davon gehört, und findet sie hoffentlich ähnlich schön einfach und logisch wie ich :)^

Leider sind diese schönen Konzepte umständlich und fehleranfällig zu programmieren – hier kommt der SMC ins Spiel. Mit Hilfe dieses Compiler erstellt man ganz locker eine .sm-Datei, deren Konzept einfach zu verstehen ist. Dort gibt man seine States, verschiedene Transistions, Events, Actions, Guards und so weiter in „einfachem“ Code an. Der Compiler generiert dann den ausführbaren Code. Und das gute ist: Die Ausgabe kann in sehr vielen Sprachen erfolgen. C, Python, Lua, Ruby, Java uvm.
Das Schema seiner FSM kann man sich dann auch noch graphisch ausgeben lassen. Auch sehr schön.

So würde die *.sm eines FSM mit zwei Transitions (einmal von Run zu Running und einmal von Run zu Run), Guards und Actions aussehen:

// State 
Idle 
{ 
    // Transition 
    Run(msg: const Message&) 
    // Guard condition 
    [msg.isValid()] 
    // Next State 
    Running 
    // Actions 
{ 
    StopTimer("Idle"); 
    DoWork(msg); 
} 
    Run(msg: const Message&) 
    // Next State Actions 
    Idle  { RejectRequest(msg); } 
}

Das Codegerüst der FSM wird dann vom Compiler generiert und die Methoden müssen mit Funktionen gefüllt werden. Einfach? Ja. Cool? Ja. Give it a try!

Mehr Infos gibts hier:
http://smc.sourceforge.net
http://de.wikipedia.org/wiki/Endlicher_Automat


					
Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s