Live data from Hacker News

What is the enlightenment I'm supposed to attain after studying finite automata?

cstheory.stackexchange.com

41–50 of 66 posts

Re: What is the enlightenment I'm supposed to attain after studying finite automata?

#41
post #33

Honestly, my answer to this came about many years after living through a very theoretical CS undergrad, by way of a chapter in Charles Petzold's book, 'Code' (of all things. I originally bought the book for my dad to help him understand 'what it was I did all day'). Basically, the insight centered around the physicality of how FA are taught; FA are usually taught by thinking of the FA itself as being fixed in space,…

It sounds a bit like you are talking about a Turing machine rather than a finite automaton (the latter is much weaker than the former in computational power). (Not that it matters much, your point still stands.)

They are equivalent. None of them is weaker. And, by the way, your PC (Von Neuman architecture) is an example of finite automatum.

I've seen the FA formalism used in computing theory a few times. Yet, I'm also missing whatever enlightment the author is looking for. But, if for no other reason, it's worth learning just because it's a very nice tool.

Re: What is the enlightenment I'm supposed to attain after studying finite automata?

#42
post #33

Earlier quoted context omitted.

It sounds a bit like you are talking about a Turing machine rather than a finite automaton (the latter is much weaker than the former in computational power). (Not that it matters much, your point still stands.)

They are equivalent. None of them is weaker. And, by the way, your PC (Von Neuman architecture) is an example of finite automatum. I've seen the FA formalism used in computing theory a few times. Yet, I'm also missing whatever enlightment the author is looking for. But, if for no other reason, it's worth learning just because it's a very nice tool.

Read the theory again. Finite automata are quite weak.

Re: What is the enlightenment I'm supposed to attain after studying finite automata?

#43
post #14
post #9

When you understand a subject well enough, the true basics become fascinating. Without the full round trip from introduction to complexity to revealed simplicity, the basics are nigh unto incomprehensible - yet giving new students an intro thereto at least shows them where they are going. Quantum mechanics is simple, but baffling to beginners; give them a taste and the "aha" moment will come in time. A = {0|1,...} A[…

> Quantum mechanics is simple, but baffling to beginners Quantum mechanics is weird to us because we're human-sized and quantum effects are mostly gone at our scale. Therefore, the only language we have for actually doing quantum mechanics is mathematics, so it makes sense to get a firm grasp of the math first. Fortunately, the fundamentals of the math aren't that difficult. I like to think of quantum mechanics as be…

That's a wonderful link. I know very little about quantum mechanics (or physics in general) but I do know some linear algebra, and for me that was a wonderful revelation. Thank you for sharing.

Re: What is the enlightenment I'm supposed to attain after studying finite automata?

#44

Earlier quoted context omitted.

They are equivalent. None of them is weaker. And, by the way, your PC (Von Neuman architecture) is an example of finite automatum. I've seen the FA formalism used in computing theory a few times. Yet, I'm also missing whatever enlightment the author is looking for. But, if for no other reason, it's worth learning just because it's a very nice tool.

Read the theory again. Finite automata are quite weak.

Where is the infinite tape? Finite automata are as capable, in the real world, as Turing-like machines, because it is impossible to fabricate a machine with infinite storage.

Re: What is the enlightenment I'm supposed to attain after studying finite automata?

#45
post #33

Earlier quoted context omitted.

It sounds a bit like you are talking about a Turing machine rather than a finite automaton (the latter is much weaker than the former in computational power). (Not that it matters much, your point still stands.)

They are equivalent. None of them is weaker. And, by the way, your PC (Von Neuman architecture) is an example of finite automatum. I've seen the FA formalism used in computing theory a few times. Yet, I'm also missing whatever enlightment the author is looking for. But, if for no other reason, it's worth learning just because it's a very nice tool.

This is factually incorrect.

Re: What is the enlightenment I'm supposed to attain after studying finite automata?

#46

Earlier quoted context omitted.

Hm, I never thought there would be anybody interested in this stuff so it's all over the place. Basically what I've done is to model state machines using a bunch of C macros, added a simple event system to drive the state transitions (receipt of message translates into an event) which allows you to run any number of statemachines in parallel inside a single C thread. The events are prioritized to make sure that urgen…

It sounds like we've had similar experiences. I converted a handful of ad hoc "state machines" in a telephony system to FA. The original code was loaded with exceptions and special cases (and bugs). Converting to FA required detailed analysis of the existing system to extract the distinct events and states. I used a tool I wrote [1] to generate C state tables and an event loop from a description of the states+events.…

This was one of the reasons Erlang was invented - big state machine + telephony.

Re: What is the enlightenment I'm supposed to attain after studying finite automata?

#47
The concepts themselves have helped me a lot when programming parsers / interpreters / compilers. Recently I've developed a language extension for Fortran 90 along with a parser/analyzer in python that extracts structural information of the the program as well as the additional directives. Solved it in The gist: When it comes to computer science and mathematical concepts, don't ask why to study it, just study it - possible applications will probably come at some point later in your career.

Re: What is the enlightenment I'm supposed to attain after studying finite automata?

#48

Earlier quoted context omitted.

Read the theory again. Finite automata are quite weak.

Where is the infinite tape? Finite automata are as capable, in the real world, as Turing-like machines, because it is impossible to fabricate a machine with infinite storage.

robrenaud did not respond to the argument that the PC is a Finite Automata.

His only comment was that "Finite Automata are quite weak" (in the context of the _theoretical difference_ between Turing machines and FA). He's absolutely correct. FA can compute a strict subset of what Turing machines can compute.

Re: What is the enlightenment I'm supposed to attain after studying finite automata?

#49
post #7

Earlier quoted context omitted.

Consider me extremely jealous that you are studying under Prof. Aho, he's one of the greats. Statemachines are an incredibly useful tool. I've spent the better part of last year untangling a huge pile of code and the solution in the end was to split it all up into statemachines that communicate with each other using simple synchronous messages. That and that alone made the problem tractable. (Tractable to me, that is…

Would love to get your recommendations for good reading on state machines, please. Getting curation from a someone who understands them well and uses them in practice often would be fantastic.

If someone asked for my recommendations for reading on state machines I would point them to Michael Sipser's Introduction to Theory of Computation.

http://www.amazon.com/Introduction-Theory-Computation-Michae...

Though I get the impression you're looking for something a bit more like an oreilly cookbook or nutshell book.

Re: What is the enlightenment I'm supposed to attain after studying finite automata?

#50
I don't understand why FA are so difficult for CS students to grasp.

I have the reverse problem. The concept of FA makes perfect sense. It's how I naturally think of a computer. It's the theory stuff that is not based on state machnes which I can't get my head around.

So my question is, what enlightenment would I attain if I understood all the theory (instead of just the reality)?

When I write programs, I write state machines.

Post reply on HN