Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Re: Interaction between languages in Parrot

by mattr (Curate)
on Dec 20, 2005 at 09:09 UTC ( [id://517992]=note: print w/replies, xml ) Need Help??


in reply to Interaction between languages in Parrot

Along the same lines as the OP, I came across a new language called Io the other day (as opposed to an older concept of a language called Io that was implemented under a different name). There is also an OS based on it too.

I was wondering the other day if Io could be built with Parrot. It would be quite cool. For one thing its vector ops are blazingly fast, also it has a number of neat things that probably the P6 people and other language weeniese like, and it allows dynamic typing like Perl. Perl+Io would be a really cool mix I thought. There are numerous examples of Io running OpenGL commands.

Anyway, the two problems that pop into my head, even though I am totally unqualified to analyze the problem, are that Io doesn't use classes (Io site says it is more powerful than mere classes and can implement classes in Io) and of course that it is really fast, especially it seems on PPC hardware in vector ops, but messing with parrot sounds like it could slow that down.

So my question is, could parrot make perl+io a reality and could it be imaginable that Io libraries running at current speed, along with Io language features, could be accessible from Perl via parrot magic?

Oh, and incidentally Question 2: Io talks about being good for embedded. Though I don't know if they mean what I mean when I say embedded, i.e. devices. Anyway with Parrot I also wonder if perl might make its way onto embedded devices in a minimal form, or even have its modules accessible from an embedded Io+parrot. I suppose this is a bit extreme..

Thanks,

Matt

  • Comment on Re: Interaction between languages in Parrot

Replies are listed 'Best First'.
Re^2: Interaction between languages in Parrot
by stvn (Monsignor) on Dec 20, 2005 at 16:00 UTC
    Anyway, the two problems that pop into my head, even though I am totally unqualified to analyze the problem, are that Io doesn't use classes (Io site says it is more powerful than mere classes and can implement classes in Io)

    The fact that Io doesn't use classes is largely irrelevant, the Io->Parrot compiler will decide what it needs to represent Io structures in, which will likely be Parrot PMCs of some kind, but Io doesn't need to care either way. There is no need for there to be a one-to-one mapping of language level "things" to VM level "things". I can't seem to find any docs on Io's VM instruction table, but I imagine it is quite small. The YARV (Yet Another Ruby VM) instruction table is a good example of this. The first ~50 instructions are all that are needed to run Ruby, all other instructions after that are just optimizations.

    Oh, and incidentally Question 2: Io talks about being good for embedded.

    In this context they mean embedding Io into your own (C/C++/etc) application, for use as a scripting language. However, there is nothing to stop you from running that application on an embedded platform (PDA, cell phone, etc). In fact, Io is ideally suited for just this type of application since it has such a small footprint.

    -stvn
      Thank you very much for an interesting reply on Io and Parrot. I'm looking forward to Parrot and meanwhile think I may tinker with Io a little too!

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://517992]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others chilling in the Monastery: (2)
As of 2024-04-19 21:43 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found