[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

FW: Re: antlr vs. sableCC comparison



 
>>>
>>>My reaction to SableCC has always been, "Why?", and the answer 
>>>always seems to be "it was a good excuse for Gagnon to have fun 
>>>writing a master's thesis".  It has less functionality than either 
>>>ANTLR or JavaCC and was introduced after both were available.  The 
>>>basic features of SableCC are
>>>1.)  DFA lexing
>>>2.)  LALR(1) parsing
>>>3.)  Visitor-based tree walkers.
>>>and the package made no real additions to the state-of-the-art, as 
>>>far as I can tell.


>>
>>There are four important missing features above (for SableCC 2.x):
>>4) Strictly-typed heterogeneous AST
>>5) Name-based access to children node (intead of error-prone
>>    index-based access)
>>6) Complete separation of users written code and generated code,
>>    allowing direct debugging of user written code, and a shorter
>>    development cycle for compilers and interpreters.
>>7) Overall very intuitive syntax and overall framework.
>>
>>These four last point were at the heart of my M.Sc. thesis.  DFA, LALR(1)
>>and visitors were only the base tools I used to illustrate these concepts.
>>
>>Of course, upcoming SableCC versions will add many additional features.
>>For example, SableCC 3.0.0 brings a innovative mechanism to intuitively
>>specify concrete syntax tree (CST) to abstract syntax tree (AST)
>>parse-time transformations in the grammar.  This mechanism goes well
>>beyond "getting rid of unneeded tokens", and is subject to full semantic
>>verifications (so, there's no way to specify invalid transformations).
>>The mechanism is deterministic; it does not depend on "pattern matching"
>>(whose result could vary depending on the pattern search order).


>>>Predicated LL(k) (ANTLR) parsing can handle any context-free 
>>>grammar,


>>This is a misleading statement.  I will not enter this debate.  Either
>>the poster is clueless, either he simply wants to provoke a flamewar.
>>
>>Please note my use of the word "misleading", and not "false".  The
>>problem has to do with the meaning of "can handle".


>>>ANTLR's tree grammar approach is more powerful than the visitor 
>>>approach.  In fact, a visitor can be expressed as a special ANTLR 
>>>tree (I've not tested this code, but it should work):


>>I have great admiration for Terrence Parr's Ph.D. research and his
>>ANTLR software.  I will not get into arguments about which software
>>is better.  SableCC and ANTLR have both some advantages over the
>>other.  You simply need to pick the right tool for a given task.
>>
>>Etienne
>>
>>-- 
>>Etienne M. Gagnon, Ph.D.             http://www.info.uqam.ca/~egagnon/
>>SableVM:                                       http://www.sablevm.org/
>>SableCC:                                       http://www.sablecc.org/
>>
> 
> 
> 
> 
> 
> -------------------------------------------------
> This mail sent through IMP: http://horde.org/imp/
> 
> 


-- 
Etienne M. Gagnon, Ph.D.             http://www.info.uqam.ca/~egagnon/
SableVM:                                       http://www.sablevm.org/
SableCC:                                       http://www.sablecc.org/

----- End forwarded message -----




-------------------------------------------------
This mail sent through IMP: http://horde.org/imp/