Ruby => Rite, AST => Bytecode?

Matz and fellow Rubyists,

On pragprog, we’re sort-of discussing the creation of a new language
(“Pragmatic”) as an exercise in extending one’s programming
experience. Now, there’s a lot of discussion on the low-end, but the
most interesting to me was this, and I was wondering if something
like the idea behind Juice might be a good thing for Rite, rather
than a “pure” bytecode setup.

What do you think?

-austin

[…]

The idea behind Juice was to encode a portable encoding of the
program not as bytecode (which is the usual way to do things) but
to encode the AST as the portable format. This lead to several
interesting features for Juice:

  • the binaries were actually smaller than the equivalent bytecodes
    and smaller by far that machine-specific binaries.
  • the binaries contained far more information about program
    structure than the equivalent bytecodes did. This led to being
    able to take better advantage of the target platform. A JIT
    compiler would translate the AST into the backend representation
    and it had a much easier time of optimizing the code than an
    equivalent JIT compiler for a bytecode system would have. I saw
    this demonstrated in '97 or '98. Given that Juice had less
    resources than Java devoted to it you can imagine how impressive
    it was to see a recoding of some Java applets executing
    approximately five times as fast as the original Java did (I
    realize this is highly subjective but the implication is that
    wherever the limitation was with Java they had taken the wrong
    approach to portability and performance).
  • due to the small size of the binaries it was faster, on networks
    and PCs of the day, to download a Juice applet and JIT-compile
    them on the target machine than it was to download the
    equivalent platform-specific binary and execute it.
    […]
···

On Wed, 30 Jul 2003 11:57:26 +1000, Sumskas, Peter (Peter) wrote:


austin ziegler * austin@halostatue.ca * Toronto, ON, Canada
software designer * pragmatic programmer * 2003.07.29
* 23.18.28

Oooh, interesting – I like the idea, because it allows for far more
introspection into the AST while giving a compact binary format to
actually run.

It might make a really perfect middle ground for such a highly dynamic
language such as our favorite, Ruby…

Ari

···

On Tue, 2003-07-29 at 21:18, Austin Ziegler wrote:

Matz and fellow Rubyists,

On pragprog, we’re sort-of discussing the creation of a new language
(“Pragmatic”) as an exercise in extending one’s programming
experience. Now, there’s a lot of discussion on the low-end, but the
most interesting to me was this, and I was wondering if something
like the idea behind Juice might be a good thing for Rite, rather
than a “pure” bytecode setup.

In article 2003729231834.987146@PADD,

···

Austin Ziegler austin@halostatue.ca wrote:

Matz and fellow Rubyists,

On pragprog, we’re sort-of discussing the creation of a new language
(“Pragmatic”) as an exercise in extending one’s programming
experience. Now, there’s a lot of discussion on the low-end, but the
most interesting to me was this, and I was wondering if something
like the idea behind Juice might be a good thing for Rite, rather
than a “pure” bytecode setup.

What do you think?

Sounds like an interesting discussion, how does one get on this mailing
list?

Phil