SMC takes a state machine stored in a .sm file and generates a State pattern in 14 programming languages. Includes: default transitions, transition args, transition guards, push/pop transitions and Entry/Exit actions. See User Manual for more info.

Project Activity

See All Activity >

License

Mozilla Public License 1.1 (MPL 1.1)

Follow SMC - The State Machine Compiler

SMC - The State Machine Compiler Web Site

You Might Also Like
Our Free Plans just got better! | Auth0 by Okta Icon
Our Free Plans just got better! | Auth0 by Okta

With up to 25k MAUs and unlimited Okta connections, our Free Plan lets you focus on what you do best—building great apps.

You asked, we delivered! Auth0 is excited to expand our Free and Paid plans to include more options so you can focus on building, deploying, and scaling applications without having to worry about your secuirty. Auth0 now, thank yourself later.
Try free now
Rate This Project
Login To Rate This Project

User Ratings

★★★★★
★★★★
★★★
★★
11
0
0
0
0
ease 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 4 / 5
features 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 4 / 5
design 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 4 / 5
support 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 4 / 5

User Reviews

  • SMC has been invaluable to me in more than a few projects to reduce code complexity. Thanks to SMC I have been able to simplify program state behavior for programs in C++ and Java at least. This allowed for relatively linear efforts & time (v/s exponential) as program complexity grew. After searching for similar solutions many years go and again recently, SMC seems by far seems most effective!
  • Great to have a complete tool that... - uses the UML notation. - has language for expressing state machines in a single .sm file. - ability to generate code for lots of programming languages based on a single .sm file. - generate a visual presentation using Graphviz. Keep up the great work with this tool! I really appreciate it. :-D
  • very good project, thanks!
  • thanks man, great soft!
  • This is the second Finite State Machine generator I have used, and the most flexible. The first was QP, which worked well on the Windows C++ platform I was developing on in 2006. But the number of target platforms for QP is small, and this licensing is complicated. I am now using SMC for some networking logic in my iOS App ( http://dr.edgemoor.com ) and plan to expand its use for other items. Advantages: 1) Simple to use and understand 2) Fairly easy to debug. If you make a mistake in you FSM definition, it will toss a nasty run time error that will point you to what is missing. 3) I want to port my App to Android and possibly Windows Phone, and SMC will work well for this. I plan to put the maximum amount of logic into state machine definitions to make porting simpler. 4) The state charts that SMC generates are really useful. I include them in my DOxygen project documentation, and can quickly look at them to remember how things are working. Disadvantages: 1) Needs more volunteers to add to the documentation. ( Of course, I could be one of those volunteers, so I can't complain. )
Read more reviews >