On Sun, 3 Aug 2003, K Stol wrote:

> > What do you think? Want to try squishing pirate/python
> > and pirate/lua together? :)
> 
> Yeah, I like the idea. Let's try this out.


Well, I finished reading your report[1] and 
posted some of my (rather unorganized) thoughts
up at [2]

It does seem like there are some snags getting
languages to talk to each other, even with the
calling conventions, but even so, I'm even more
convinced now that a generic, overridable
code-generator is the way to go. 

It seems to me that if we want to maximize the
number of languages using it, the generic 
compiler shouldn't depend on anything but 
C and parrot... But until we get it working,
I'd like to stick to a dynamic language like
python/perl/lua/scheme. And, well, my code's
already in python... :) [though I'd actually
love to try out some lua 5]

What I'm picturing is a template system for
specifying chunks of IMCC. Something like this:


ast generic:
   on @while(test, body):
       % while    = gensym("while")
       % endwhile = gensym("endwhile")
       % test     = gensym("$I")

       {while}:
           {test} = @expr
           unless {test} goto {endwhile}
           @body
       {endwhile}:

   on @if(test, elif*, else?):
      ...

ast python(generic):
   on @while(test, body, else?):
      ...


Okay, I don't have a good syntax in mind yet,
the point is it's a template language and you
can subclass/override/extend the template. 
Maybe there's no syntax and it just uses 
cleanly coded classes in some oo language.
Or perl6 with it's grammars and rules. I
don't know.

Once the templates are defined, you pass
the compiler your AST and it walks it and
applies the template. 

So the C api basically is just about building
the tree and saying "generate with this 
language file". Then the language designer's
job is just to transform an outside ast 
into a generic ast. 

Anyway, I'm talking a lot of nonsense. I'd
rather just see what I can do about decoupling
my code generator from python and sharing 
it with another language instead.

[1] lua report: http://members.home.nl/joeijoei/parrot/report.pdf
[2] http://pirate.versionhost.com/viewcvs.cgi/pirate/INTEROP?rev=1.1

Sincerely,
 
Michal J Wallace
Sabren Enterprises, Inc.
-------------------------------------
contact: [EMAIL PROTECTED]
hosting: http://www.cornerhost.com/
my site: http://www.withoutane.com/
--------------------------------------


Reply via email to