Re: Popularity of compiler tools, was LRgen



On Apr 8, 3:13 pm, Tegiri Nenashi <TegiriNena...@xxxxxxxxx> wrote:
On Apr 6, 8:25 am, an...@xxxxxxxxxxxxxxxxxxxxxxxxxx (Anton Ertl)
wrote:

- Finally, many compiler writers seem to dislike tools (or maybe none
of the tools are good enough or something).

IMO there is not enough added value. Comparing writing parsing engine
from scratch vs. using off the shelf product I always prefer the
former. When chasing bugs it is much easier to find them in your own
code than being at the mercy of the tool owner.

This is the excuse offered by every programmer I ever met, for why he
has to roll his own whatzit. It completely fails to account for the
fact the the existing whatzit has vast amounts invested by others to
get it right and to handle the strange cases.

Next I find the whole code generation idea ridiculous. I simply
refuse to believe a code generator can output a quality product.

Er, you don't like GCC?

On large size grammar it can easily generate huge methods that could
overflow JVM method size (I experienced with ANTLR). Then there
limitations on what kind of grammar a parser engine can accept,
e.g. no left recursion, no ambiguity, etc. This is totally
inacceptible: a grammar is a declarative specification of the
language. Making a particular parser engine happy does not warrant
tinkering with it.

You certainly don't want a tool that springs a surprise on you after
you have deeply invested in it. I always thought the JVM module size
limit was just dumb; all the JMP technically needs are a few "long
address" opcodes in the JVM.

The other limitations: no left recursion, no ambiguity, are all solved
by good parser generators. I highly recommend GLR, which is what we
use for DMS. None of the above limitations apply.

Within a wider perspective I feel a general failure of parser
technology to deliver a user friendly product. This is why we have
horrors of XML filling the void.- Hide quoted text -

I continually am amazed that people get hung up on the parsers. I
guess they just never get past it.

For any really interesting langauges, like poker, you have to ante up
a parser, that isn't where the real problems are. You need tree
building, preprocessor support, multiple compilation unit support,
name/type resolution, control/data flow analysis, semantic analysis
based on that awful reference manual for that screwball dialect, ....

And having spent a decade implementing integrated machinery to do all
this, I don't see how anybody can justify rolling their own whatzit.

Ira Baxter, CTO
Semantic Designs
[Some people are paid by the hour. -John]
.



Relevant Pages

  • Re: Process vs Thread: what are the consequences?
    ... maximise its effectiveness. ... In the general sense, if I wish to deploy multiple instances of this engine to improve processing throughput, would it be better to have each engine running as a fully-fledged OS process in its own JVM or as a separate thread in some master process? ...
    (comp.lang.java.programmer)
  • nMars - Corewars MARS for .NET
    ... Parser & core engine unit tests ... More info about Corewars can be found here http://www.koth.org/, ... Targeting to be full ICWS '94 RedCode specification compliant. ... Is based on GOLD parser by Devin Cook ...
    (rec.games.corewar)
  • Re: ANTLR Target for Ruby
    ... is to figure out where backtracking might be needed and do it efficiently ... a large overhead over using a hand-crafted parser. ... If you also provided a sweet metagrammar (I find your earlier Grammar ... The real work is in the "engine" that does parser ...
    (comp.lang.ruby)
  • Re: Writing a Boolean Statement Parser/Engine - Need help
    ... A user could enter a properly formatted boolean search string that I ... could pass to the parser. ... The engine would look at the values I returned against the initial ... The expressions use a syntax nearly compatible to VB and the evaluator ...
    (microsoft.public.vb.general.discussion)
  • Re: Parser
    ... <SNIP in need of a lex parser.. ... % your string ... % the engine ...
    (comp.soft-sys.matlab)