Ruby tools to develop compilers

  • Thread starter Le Lann Jean-Christophe
  • Start date
L

Le Lann Jean-Christophe

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
 
M

M. Edward (Ed) Borasky

Le said:
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.
 
F

fedzor

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!
 
L

Le Lann Jean-Christophe

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
 
D

Daniel Brumbaugh Keeney

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
 
D

Daniel Brumbaugh Keeney

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/ruby-lex/
http://www.less.de/download/ruby-lex-1.4.tgz

Daniel Brumbaugh Keeney
 
P

Phil Tomson

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/Ruby+Parsec
I have not played with it, though.

Phil
 
L

Le Lann Jean-Christophe

Phil Tomson a écrit :
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/Ruby+Parsec
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_treetop.html.
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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
474,285
Messages
2,571,416
Members
48,107
Latest member
AmeliaAmad

Latest Threads

Top