From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Brian L. Stuart" To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net> Date: Tue, 28 Oct 2008 14:51:34 +0000 Message-Id: <102820081451.27713.490726F6000519DE00006C4122230650629B0A02D2089B9A019C04040A0DBF9B9D0E9A9B9C040D@att.net> In-Reply-To: <2261F45DDFF07CF7CB198B55@F74D39FA044AA309EAEA14B9> Subject: Re: [9fans] non greedy regular expressions Topicbox-Message-UUID: 29daf0b0-ead4-11e9-9d60-3106f5b1d025 > > This guy seems to blur the distinctions here. His discussion > > He doesn't. If one reads the whole section part of which was quoted one > will see that he clearly states DFA and NFA are theoretically equivalent, > but then goes on to explain that DFA and NFA _implementations_ are not > identical. Actually, that's why I said "seems to." Basically, what he should be saying is that some people have found it easier to add elements to the NFA model that augment the grammar. But then he goes on to use the initials NFA when he really means the extensions thereof. This creates in the reader's mind the misimpression that there's something magically different between an NFA and a DFA, theoretically or implementationally. They have exactly the same expressive power in both realms. Besides, nondeterminism can only be simulated when running on a deterministic computer. That's actually the insight behind the NFA to DFA construction. So talking about an "NFA implementation" is rather artificial. > They learn slowly, hardly, painfully--they aren't smart. If > possible they'll learn less rather than learn more. What the "hacker" > denies the lowlife is the opportunity to exist free of "GNU-is-wrong" or > "X-is-wrong" blemish. Look at it this way. The people here aren't trying to create blemishes on anything. Rather we are trying to help your learning process. We're trying to head off the tendency for people to jump from "it was easy to learn how to do X in this tool" to "how this tool does things is better." Instead, before asserting something is better or asking for others to write software according to a personal preference, it is important to broaden your understanding so that you know what the options really are and what the design decisions really imply. Implementing a laundry list of features without that perspective simply produces bad software. > It's > good--for the lowlife, of course--to know the wonders they see didn't > spring into existence out of the blue. That's why we teach the theory that everyone seems to want to complain about. Building on Newton, if we want to see farther than those before us, we need to know those before us well enough to climb onto their shoulders. No software is based on Hogwarts' technology, and no good software comes from the "random walk method of programming." It is the product of intellectual reasoning. Criticism of the result won't be taken too seriously if the critic shows they have not understood the reasoning behind it. BLS