[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Ruby tools to develop compilers

Le Lann Jean-Christophe

3/2/2008 4:36:00 PM

Hi,

For some days now, I have been trying to find the best Ruby tools to
develop compilers : lexer, parser and possibly more (ast, visitor).

There seems to be plenty of small tools, but it is difficult to know
whether they are mature or not.

So I would like to have feeback on your own experience in this field.

Thanks
JC


8 Answers

M. Edward (Ed) Borasky

3/2/2008 8:09:00 PM

0

Le Lann Jean-Christophe wrote:
> Hi,
>
> For some days now, I have been trying to find the best Ruby tools to
> develop compilers : lexer, parser and possibly more (ast, visitor).
>
> There seems to be plenty of small tools, but it is difficult to know
> whether they are mature or not.
>
> So I would like to have feeback on your own experience in this field.
>
> Thanks
> JC
>
>
>
It depends more on the scope of the compiler(s), languages, operating
systems where the compilers will run, etc., then it does on the "tools".
If you're looking for a highly portable compiler for a variety of
architectures and operating systems, for example, you're probably better
off building a front end for the languages to the GCC intermediate and
code generation pieces. And if you're building a compiler for a language
already handled by GCC, the best advice I can give you is, "don't bother".

That said, the Ruby *parser* that seems to have the best user interface
is Treetop. I've only done a couple of small things in it, but it's a
lot easier to read Treetop code than it is to read, say, racc.

fedzor

3/3/2008 2:41:00 AM

0


On Mar 2, 2008, at 11:36 AM, Le Lann Jean-Christophe wrote:

> Hi,
>
> For some days now, I have been trying to find the best Ruby tools
> to develop compilers : lexer, parser and possibly more (ast, visitor).
>
> There seems to be plenty of small tools, but it is difficult to
> know whether they are mature or not.

-> ASM Compilers or interpreters?

BTW, please share your finds!

-------------------------------------------------------|
~ Ari
Careful - I'm like Stallman with katanas!




Marc Heiler

3/3/2008 6:19:00 AM

0


> BTW, please share your finds!

I agree! :)
--
Posted via http://www.ruby-....

Le Lann Jean-Christophe

3/3/2008 7:40:00 PM

0

fedzor a écrit :
> BTW, please share your finds!
>
Well, ok. 'Plenty' is not the right word, nor 'small tools' (I guess)

RACC
ANTLR (ruby generator)
Treetop
Ruby-lex, Ruby- yacc

Any other one ? Which one do you use ?

Bye!
JC


Daniel Brumbaugh Keeney

3/5/2008 8:48:00 PM

0

On Mon, Mar 3, 2008 at 1:40 PM, Le Lann Jean-Christophe
<jean-christophe.lelann@orange.fr> wrote:
>
> RACC
> ANTLR (ruby generator)
> Treetop
> Ruby-lex, Ruby- yacc
>
> Any other one ? Which one do you use ?
>
> Bye!
> JC
>

Ruby-lex isn't a lexer written in Ruby usable for other grammars, it
is a lexer for the ruby language itself.

Treetop is by far the easiest to work with.
Also not on your list, is ragel, which builds very fast state machines.

Daniel Brumbaugh Keeney

Daniel Brumbaugh Keeney

3/8/2008 6:10:00 PM

0

On Wed, Mar 5, 2008 at 2:47 PM, Daniel Brumbaugh Keeney wrote:
> Ruby-lex isn't a lexer written in Ruby usable for other grammars, it
> is a lexer for the ruby language itself.

Please forgive my error, I was thinking of the RubyLex class included
in IRB. It appears there is a project of the same name that can be
found at the links below. To add to the confusion, RubyLex files end
in .rl, the same as Ragel. For the education of this mailing list,
I've copied the introduction of its README.

Lexical analyzer generator V1.3 by Harald Grosse.

This extension adds to ruby a functionality to work with lex for C programs
as well as for ruby Code. It reads the grammar specification, modify the
code so that lex accepted the ruby elements, compile this code with flex
to lex.yy.c and build an comparable Ruby coded analayzer from this file.

Not all features of lex are implemented.

http://raa.ruby-lang.org/project...
http://www.less.de/download/ruby-l...

Daniel Brumbaugh Keeney

rubyfan

3/8/2008 6:41:00 PM

0

On 3/2/08, Le Lann Jean-Christophe <jean-christophe.lelann@orange.fr> wrote:
> Hi,
>
> For some days now, I have been trying to find the best Ruby tools to
> develop compilers : lexer, parser and possibly more (ast, visitor).
>
> There seems to be plenty of small tools, but it is difficult to know
> whether they are mature or not.
>
> So I would like to have feeback on your own experience in this field.
>

I'll join the chorus for TreeTop: it's pleasant to work with...
though, it doesn't produce the fastest parsers around.

There's also Ruby parsec if you want to go the parser combinator route:
http://docs.codehaus.org/display/JPARSEC/R...
I have not played with it, though.

Phil

Le Lann Jean-Christophe

3/9/2008 12:33:00 PM

0

Phil Tomson a écrit :
> On 3/2/08, Le Lann Jean-Christophe <jean-christophe.lelann@orange.fr> wrote:
>
>> Hi,
>>
>> For some days now, I have been trying to find the best Ruby tools to
>> develop compilers : lexer, parser and possibly more (ast, visitor).
>>
>
> I'll join the chorus for TreeTop: it's pleasant to work with...
> though, it doesn't produce the fastest parsers around.
>
> There's also Ruby parsec if you want to go the parser combinator route:
> http://docs.codehaus.org/display/JPARSEC/R...
> I have not played with it, though.
>
>
Thanks all for your answers,

Regarding TreeTop, there is a tutorial by its author at
http://rubyconf2007.confreaks.com/d1t1p5_tr....
My preference goes to Treetop too, because it seems elegant and based on
efficient algorithms. (I will give my own feedback on real grammars,
when ready)

Nobody is using Antlr with Ruby output ? Antlr seemed great because it
gives you access to a bunch of various grammars, already described.

Regards,
JC