8 ms·
Wouldn't that still be a finite state automata? You can create a submachine representing the regular expression transition conditions, and just attach that at
by johanbev 16y ago
Wouldn't that still be a finite state automata?
You can create a submachine representing the regular expression transition conditions, and just attach that at the state you wanted, resulting in a finite state machine.
Of course this doesn't hold when you are talking about non-standard regular expressions, and it's probably a nice feature to have when creating the automata, but IMHO it still sounds like a silly idea when CFG-tools like ANTLR and YACC are available.
- stcredzero 16y agoWouldn't that still be a finite state automata? The key is the bit about the "recursive call."
- cynicalkane 16y agoIt doesn't have to be recursive. Iteration can also be non-finite-state. In fact, all recursive programs can be transformed to iterative ones.
- stcredzero 16y agoYes, thanks for exposing yet another Comp Sci fundamental tidbit. Any word deriving from "recursive" should be a red flag in this case.
- bad_user 16y agoActually recursion in CS is equivalent to using a stack that keeps intermediate values and that grows in relation to the input. If you've got an algorithm that does that, then it cannot be called "iterative". I.e. backtracking is recursive, no matter how you implement it. In school textbooks they do differentiate between "recursive" and "iterative" backtracking, to teach you how to get rid of the call-stack and manage your own. But that's another story.
- bad_user 16y agoWouldn't that still be a finite state automata? He mentioned recursion, so no :-) I also hate working with ANTLR/YACC ... heavy, hard to start with, steep learning curve. These tools are designed for industrial-strength compilers, where performance / flexibility matters. And PEGs are better than CFGs (that's teeshirt material right there :))
- johanbev 16y agoAaahhh, ofc, now I see why that wouldnt work. Guess I learn something every day :)