4 ms·
What do you do professionally? How do you use automata there?
by walty 6y ago
What do you do professionally? How do you use automata there?
- learc83 6y agoWeb development, embedded systems, and game dev. I use FSMs, pushdown automata, and hierarchical state machines all the time.
- Frost1x 6y agoFor embedded systems and game development I definitely understand automata applications (from experience) but web development has me curious. Are you writing transpilers or perhaps something else (I also try to avoid web dev, so there's that).
- Grimm1 6y agoNot OP but there are more than a few domains that can be modeled with automata, a shipping pipeline with approval steps is an example.
- nitrogen 6y agoEcommerce order/payment/shipping status is a good example. Anything that has a well defined state that can be changed by events is well-modeled as a state machine of some kind. Also anything that has to progress through certain steps and might be interrupted or have exception cases, and you want to proceed/retry idempotently. Personally I have also found basic graph theory to be immensely useful for representing and reasoning about things.
- learc83 6y ago>Personally I have also found basic graph theory to be immensely useful for representing and reasoning about things. I agree! The graph theory portion of my algorithms class (more than half of the class) was the third most useful thing I learned in my degree.
- learc83 6y agoMostly for user interfaces and modeling business processes. But I’ve also done some work on a super simple language for some of our non technical people to use for data transformation, and a templating system for form generation.
- FPGAhacker 6y agoWhat's amazing to me is how uncommon state machines are in software, comparatively. In ASIC and FPGA design, it's so fundamental and ubiquitous. At least with synchronous designs.
- rjbwork 6y agoI pushed for using state machines and more formal methods in the rewrite of a system that I and a number of other devs were hired for. The idea was turned down in favor of lots of ad hoc state and string constants, even though the system has a limited and distinct set of states on the main domain objects. People don't do it because people don't do it, and they're afraid others aren't going to understand it. The vast majority of companies essentially code and design to the lowest common denominator so that their devs are fungible cogs.
- mlindner 6y agoThe problem is that it's extremely easy to violate the boundaries of state machines. For example there's some small edge case, that would normally require you to completely re-create the state machine, but people bypass that by just escaping the state machine. In ASIC/FPGA, it's actually relatively hard to escape the state machine because escaping the state machine causes explosions in timing required and causes race conditions. Code doesn't have fixed timing requirements, most of the time.