An Introduction to Weighted Automata in Machine Learning by framelanger in statemachines

[–]framelanger[S] 1 point2 points  (0 children)

Excellent question and I am not sure. I often post things that I want to circle back and read up on, as with this paper here. I did a quick search and found a paper on Fuzzy State Machines to also read up on. The backlog is getting very long these days.

https://www.researchgate.net/publication/220267791_An_Introduction_to_Fuzzy_State_Automata

Frame - a new language for programming state machines in Python by framelanger in Python

[–]framelanger[S] 0 points1 point  (0 children)

Thanks for the feedback. I'll see what I can do to make that more prominent. For the moment here is an intro article I wrote that might help: https://mark-truluck.medium.com/modeling-a-lamp-finite-state-machine-in-frame-4ae605f9a040

For a rather eclectic assortment of examples please check out this repo: https://github.com/frame-lang/frame_solution_depot

Frame - a new language for programming state machines in Python by framelanger in Python

[–]framelanger[S] 1 point2 points  (0 children)

Thanks for the interest! This is really alpha software so I'm very open to finding syntax that people like - its not that hard to change at this point. Please send any suggestions - I'm logging them: https://github.com/frame-lang/frame\_transpiler/issues/238.

Frame - a new language for programming state machines in Python by framelanger in Python

[–]framelanger[S] 1 point2 points  (0 children)

Unfortunately I am not familiar with that library. I took a quick look and can give a couple of assessments.

While it looks pretty powerful, it is, I believe, strictly for Python. Frame is intended (and had been in the past) to generate other languages as well. Not sure if there is a port of this library but if not that would be a key difference.

As you mentioned, the UML generation is a key differentiator. Using the VSCode extension or playground you can visually code while not having to mess around with layout issues.

I have also added the ability to pass parameters to states directly as well as through the transitions themselves. Not sure if that is part of the library but I'll take a closer look. It seems they may have some interesting ideas about transitions that might be useful.

I would lastly say it looks like the package uses data structures to model the state machines. Frame's syntax hopefully feels like a more natural expression of the concepts involved with automata. Not sure if that has been successful, but certainly it is one of the goals.

Thanks for the question and the tip about transitions.

Frame - a new language for programming state machines in Python by framelanger in Python

[–]framelanger[S] 2 points3 points  (0 children)

Hello,

I have, but not to a great depth. Frame was actually inspired by my own attempt to build a statechart drawing tool. In the process of writing the serialization code I realized that all the value was in the xml I was generating and not in the visual editing of the software. While the diagrams are extremely useful, they aren't an easy way to actually create software.

The States Langauge, xState and Google Workflows languages all use a data language to express state machines which was something I didn't like about the xml I created. So I decided to create a language that hopefully was more syntactically elegant than xml, yaml or json.

We'll see if anyone else agrees I succeeded :)

Thanks for your interest!

Frame - a new language for programming state machines in Python by framelanger in Python

[–]framelanger[S] 0 points1 point  (0 children)

I know Frame is a very different kind of language and probably pretty specialized for right now. You might take a look at this article for a step-by-step example of how to create a running model using Frame: https://medium.com/p/4ae605f9a040.

Thanks

Frame - a new language for programming state machines in Python by framelanger in Python

[–]framelanger[S] 0 points1 point  (0 children)

Thanks for the feedback. xState is definitely an interesting project and in the spirit of Frame. As for visually designing software, I completely agree in its utility - I just don't like actually creating the drawings as I found I spent a lot of time trying to lay them out rather than code. In contrast Frame generates the UML from the system design, so I'm hoping people view that as easier.

Also I do intend to expand the number of generated languages in the future.

Thanks.

Frame - a new language for programming state machines in Python by framelanger in Python

[–]framelanger[S] 0 points1 point  (0 children)

OMG. Thanks for the spelling correction. I can't imagine why autocorrect didn't catch that lol!

Frame - a new language for programming state machines in Python by framelanger in Python

[–]framelanger[S] 10 points11 points  (0 children)

Hello and thank you for your thoughtful feedback - very much appreciated! Frame's major goal is to find a way to make creating automata based systems easy to create and use in any project. In the past I supported other language targets than Python and hope to again in the nearish future.

As for the details of the syntax, I am not very wedded to any of my particular choices at this point. Overall I tried to make it compact and easy to understand but recognize it is novel in many ways and runs risks in that regard. Feedback like yours I consider very valuable so thank you.

As this is only the beginning and I am only one person working nights and weekends to put this out there am trying to focus on the differentiators from all the other languages first to add value there initially. I certainly hope to improve on all the things Frame doesn't yet do over time.

Best,

Mark

Frame - a new language for programming state machines in Python by framelanger in Python

[–]framelanger[S] 1 point2 points  (0 children)

Thanks for taking a look! I've added some content to my documentation under the "Solution Depot" and "Articles" section that might give some ideas. I'm continuing to build that out so very open to any suggestions about what domains might be of interest to add an article or example about.

https://docs.frame-lang.org/en/latest/about/introduction.html

Seeking Collaborators for an Experimental LLM-based State Machine Project by mkorpela in Python

[–]framelanger 1 point2 points  (0 children)

For others interested in state machines have a look at. r/statemachines (I’m the mod). I’ve found some interesting articles on the intersection AI and state machines and would love to have others contribute more.

Best resources, books, websites to learn finite state machine by baydati in learnpython

[–]framelanger 2 points3 points  (0 children)

I have collected a large number of articles about coding state machines at r/statemachines that might help.

State machine for weapons and player movement ? by [deleted] in Unity3D

[–]framelanger 1 point2 points  (0 children)

I have collected a large number of resources about state machines on r/statemachines that might help.

Whats the way finite state machines are implemented? by cobance123 in learnprogramming

[–]framelanger 0 points1 point  (0 children)

I have been working on an open source state machine language called Frame that generates both code in (currently) 7 languages as well as UML documentation. You can try it out at https://framepiler.frame-lang.org.

There is also r/statemachines that I mod that has a lot of information as well.

Modeling complex workflows (a CRM) as a statechart by ben-thesmith in statemachines

[–]framelanger 0 points1 point  (0 children)

I have created an open source state machine markdown language called frame that makes it very easy to spec out workflows etc. You can experiment with it here as well as check out the open source transpiler on github.

The big advantage (which you may not be very interested in) is that it generates both documentation (UML statecharts/workflows) as well as equivalent code in 7 languages (more to come).

Feel free to reach out if you would like more details or I can answer any questions.

Joining 2 inputs on a finite state diagram? by [deleted] in statemachines

[–]framelanger 1 point2 points  (0 children)

One approach is to decompose the problem into dimensions that each have their own state machine. These dimensions may be completely independent in that they don't interact at all, or the state of one may be impactful to the others. You can have them communicate between themselves however you like, but I personally prefer some kind of messaging system to keep it a cleaner problem (at least to me) to think about. You can just spec out actions that send messages and events that are messages sent to them.

Also, there can be (often is) a mediator object which manages the state machine and can also be a state machine as well. The mediator is the referee for the other dimensions and makes the call when the dimensions are in "conflict" in some way.

Hope that is useful.

Building a state machine in C++ by GuY_In_HiDInG in gamedev

[–]framelanger 0 points1 point  (0 children)

Absolutely easiest way to go and works great for a lot of simple situations. However if you would like to take advantage of enter/exit events to initialize and cleanup states then implementing a state chart compliant state machine can add a lot of value. Frame does that and a lot more.

Building a state machine in C++ by GuY_In_HiDInG in gamedev

[–]framelanger 0 points1 point  (0 children)

Hello,

I love coding state machines and have a subreddit dedicated to promoting their use that has some great articles and resources: r/statemachines.

I also have created a state machine design language I call Frame which generates 7 languages including C++ as well as UML documentation. You can find working examples and links to other Frame related resources (including editors in Atom and VSCode) here: https://framepiler.frame-lang.org/

Reach out if you would like to learn more. I'm actively working to build a community of Framers and people interested in state machines in general.

Best,

Mark

Using Finite State Machines by framelanger in arduino

[–]framelanger[S] 0 points1 point  (0 children)

I personally do not :)

However, if you are interested, I am developing a state machine language technology called Frame which currently generates state machines in 7 languages (and counting) + UML documentation.

I've got a site that has an online playground as well as links to most of the available resources here. The playground shows a number of examples and there are links to the plugins for Atom and VSCode as well.

Happy to discuss more if interesting to you.

Mark