There is also a page that contrasts GOLD and the classic, and still used,
compiler-compiler called YACC. If you are studying parsing technology and compiler design,
you, no doubt, have come across it.
GOLD vs. YACC
The following is propaganda a comparison :-) chart between GOLD and
other parsing systems.
Comparison Chart |
Feature |
GOLD |
ANTLR |
Grammatica |
Spirit |
YACC / Bison |
License |
Free |
Free |
Free |
Free |
Free |
Parsing Algorithm |
LALR |
LL |
LL(1) |
LALR |
LALR |
Grammar Notation |
BNF |
EBNF |
EBNF |
EBNF |
BNF |
Grammar / Code |
Independent |
Mixed |
Mixed |
Mixed |
Mixed |
Parser Source Code |
![](../images/pic-yes-16x16.gif) |
![](../images/pic-yes-16x16.gif) |
![](../images/pic-yes-16x16.gif) |
![](../images/pic-yes-16x16.gif) |
![](../images/pic-yes-16x16.gif) |
Create Skeleton Programs |
![](../images/pic-yes-16x16.gif) |
![](../images/pic-yes-16x16.gif) |
![](../images/pic-yes-16x16.gif) |
![](../images/pic-yes-16x16.gif) |
![](../images/pic-yes-16x16.gif) |
Integrated Design Environment |
GOLD |
ANTLR(2) |
Grammatica |
Spirit |
YACC / Bison |
Integrated Testing |
![](../images/pic-yes-16x16.gif) |
![](../images/pic-yes-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
State Browsing |
![](../images/pic-yes-16x16.gif) |
![](../images/pic-yes-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
Generate Webpages |
![](../images/pic-yes-16x16.gif) |
![](../images/pic-unknown-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
Export to XML |
![](../images/pic-yes-16x16.gif) |
![](../images/pic-unknown-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
Export to Formatted Text |
![](../images/pic-yes-16x16.gif) |
![](../images/pic-unknown-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
Supported Languages |
GOLD |
ANTLR |
Grammatica |
Spirit |
YACC / Bison |
ANSI C |
![](../images/pic-yes-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
![](../images/pic-yes-16x16.gif) |
Assembly - Intel x86 |
![](../images/pic-yes-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
C++ |
![](../images/pic-yes-16x16.gif) |
![](../images/pic-yes-16x16.gif) |
![](../images/pic-yes-16x16.gif) |
![](../images/pic-yes-16x16.gif) |
![](../images/pic-yes-16x16.gif) |
C# |
![](../images/pic-yes-16x16.gif) |
![](../images/pic-yes-16x16.gif) |
![](../images/pic-yes-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
Delphi 5 & 6 |
![](../images/pic-yes-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
DigitalMars D |
![](../images/pic-yes-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
Java |
![](../images/pic-yes-16x16.gif) |
![](../images/pic-yes-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
Pascal |
![](../images/pic-yes-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
Python |
![](../images/pic-yes-16x16.gif) |
![](../images/pic-yes-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
Visual Basic 6 |
![](../images/pic-yes-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
Visual Basic .NET |
![](../images/pic-yes-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
All Other .NET Languages (3) |
![](../images/pic-yes-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
All Other ActiveX Languages (4) |
![](../images/pic-yes-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
![](../images/pic-blank-16x16.gif) |
(1) |
Grammatica only supports LL for now. However, the website claims that
they may support LR in the future. |
(2) |
ANTLR has a IDE called ANTLRWorks. I haven't had a chance to use it, but
it seems like a great product. |
(3) |
Some Engines are compiled to a .NET module. This allows the componant to
be used with any IDE that supports .NET. |
(4) |
Some Engines are compiled to an ActiveX / COM plugin. This allows
the componant to be used with any IDE that supports ActiveX / COM. |
|