|
From: Eric B. <er...@go...> - 2008-01-25 18:34:30
|
Colin Paul Adams wrote: >>>>>> "Eric" == Eric Bezault <er...@go...> writes: > > >> So I should wrap a C library then? > > I wasn't actually serious about that Yes, I knew that you would prefer assembly code ;-) > > Eric> What I had in mind is more something like EiffelParse > Eric> vs. geyacc. > > Can you expand on that statement please? I don't know the current status, but 10 years ago using EiffelParse to write parsers (yooc was there to help) produced very slow parsers. EiffelParse has a very nice object-oriented design for the parser implementation. I don't know if it's related on not, but it's slow. On the other hand, geyacc was written to produce ugly non-object-oriented parsers, based on zillions of integers put in tables or used in inspect statement. The resulting parser looks more or less what the parser would look like if generated by yacc in C, but with an Eiffel syntax. I don't remember the exact results of the benchmarks, but parsers generated by geyacc were much faster than EiffelParse. Of course the geyacc solution is usable only if the clients of the generated parsers don't have to dive into the code of the parsers themselves. We should see it as a black-box. I think that a regexp library has the same criteria. That's typically something that clients want to be fast. And clients see it as a black-box (not that many people decide to dive into the code of regexp implementation to understand how it works). -- Eric Bezault mailto:er...@go... http://www.gobosoft.com |