[racket] Tools for new languages

From: Chris Fincher (finch42 at gmail.com)
Date: Mon Jul 11 16:55:14 EDT 2011

Hey folks,

I'm working with a project that's designing a new pedagogical
object-oriented language called Grace <http://www.gracelang.org>. My job is
to find a good IDE, and so far, DrRacket has looked like a good choice. I've
been slowly figuring out how to get a Grace parser written in Racket, but it
looks as if I'm going to have to make a decision soon about how I'm
approaching this, and I wanted to get the input of some more experienced
Racketeers about what would be the best way to move forward.

So far, my thinking has been influenced by 3 sources:

1) Languages included with DrRacket, such as Swindle and Datalog. Yacc and
Lex seem to be the way to go. Unfortunately, I don't see anything
object-oriented included, so I'm still a bit lost on how to, for instance,
implement classes if I follow their example.

2) Danny Yoo's braincuddle <http://hashcollision.org/brainfudge/> tutorial.
It's comprehensive, and implements everything I'd like to have done in the
initial stages of the project, but still doesn't offer much in terms of how
to get classes involved.

3) The remnants of the ProfessorJ <http://www.professorj.org> project. Since
it's a Java implementation (or at least tries to emulate it well enough),
it's the most object-oriented example that I've been able to find. (the only
one, in fact) The downside to using it is that it's more complex than other
languages I've looked at and, honestly, more complex than Grace will
probably ever be. Also, it's old. It was last included with PLT Scheme 4.1,
and while at the moment, the only compile error that I get is to update the
contract protocol, I don't know what else might break if I managed to fix
that (which is no negligible time investment on its own).

I think the main questions that come out of this are a) is there a better
example of an object-oriented language in Racket/DrRacket that I don't know
about yet, b) would it be worth the time investment to try to work out
what's happening in the ProfJ code, and c) if I end up doing new code for
this, are yacc and lex worth using, or should I eschew them like in the
braincaressgently example?

These are, of course, just suggested questions. I would welcome any input on
what would be the best way forward (or misconceptions I have). Please don't
mind the oddly list-based structure of my post. I'm not sure how that ended
up being the format for today. Thanks in advance for your help.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20110711/239ac46a/attachment.html>

Posted on the users mailing list.