You mean how their approaches compare? (I would guess, there is no direct 
involvement of people in both projects.)

PyPy is a generator approach, your language specification i.e. the interpreter 
is used
to generate a VM.
You use a high-level language i.e. RPython to implement a classic interpreter, 
which is then transformed by a powerful tool-chain to your C implementation 
(and a JIT). Stuff like GC is just generated for you.
The result is one specific VM, which is generated for your language.


With Parrot it is much like with a classic VM like JVM or CLR/.NET.
You are using one existing VM.
Language developers use the Parrot Assembly language (PASM) or the Parrot
Intermediate Representation (PIR) which can then be compiled to the bytecode 
set.
Furthermore, they can extend the bytecode set with their own instructions 
(primitives).
So, you are basically compiling your target language while using all the 
runtime features of the Parrot VM. So, here the 'power' is in the VM, not in a 
transformation tool chain.

Best
Stefan



On 20 Jan 2010, at 09:02, Stéphane Ducasse wrote:

> stefan 
> 
> do you know how this is linked with pypy?
> 
> Stef
> 
> On Jan 20, 2010, at 8:50 AM, Stefan Marr wrote:
> 
>> 
>> On 20 Jan 2010, at 06:12, Miguel Enrique Cobá Martinez wrote:
>> 
>>> Parrot has just been released:
>>> http://www.parrot.org/news/2010/Parrot-2.0.0
>>> 
>>> I would like to know, from the VM experts from the community, if this VM
>>> can be used to run Smalltalk.
>> Well, as someone mentioned, there seems to be Smalltalk implementation...
>> 
>> But, probably it is hard to get it fast.
>> Parrot uses a very unique approach.
>> Actually, they try to provide a language runtime for all kinds of languages, 
>> and the right tools to build them: http://www.linux-mag.com/cache/7373/1.html
>> 
>> Eliot mentioned primitives, well, there is no concept of a primitive in 
>> Parrot.
>> Instead, they have a unification of bytecodes and primitives. The idea is, 
>> to give you the tools to develop the bytecode you need for your language, 
>> which can be loaded dynamically during execution.
>> It will be interesting to see, how they can get their JIT fast with this 
>> strategy.
>> 
>> Best
>> Stefan
>> 
>> 
>>> The site says that 
>>> 
>>> "Parrot is a virtual machine aimed at running all dynamic languages.".
>>> 
>>> but I don't know anything about VM so this sounds to me a bit like black
>>> magic. 
>>> 
>>> Is there something in the squeak vm that is specific to the way
>>> smalltalk works or a generic virtual machine (maybe with a upper layer
>>> understanding Smalltalk specifics) can be used.
>>> 
>>> Thanks for the answers
>>> 
>>> -- 
>>> Miguel Cobá
>>> http://miguel.leugim.com.mx
>>> 
>>> 
>>> _______________________________________________
>>> Pharo-project mailing list
>>> [email protected]
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>> 
>> -- 
>> Stefan Marr
>> Software Languages Lab
>> Vrije Universiteit Brussel
>> Pleinlaan 2 / B-1050 Brussels / Belgium
>> http://soft.vub.ac.be/~smarr
>> Phone: +32 2 629 3956
>> Fax:   +32 2 629 3525
>> 
>> 
>> _______________________________________________
>> Pharo-project mailing list
>> [email protected]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
> 
> 
> _______________________________________________
> Pharo-project mailing list
> [email protected]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

-- 
Stefan Marr
Software Languages Lab
Vrije Universiteit Brussel
Pleinlaan 2 / B-1050 Brussels / Belgium
http://soft.vub.ac.be/~smarr
Phone: +32 2 629 3956
Fax:   +32 2 629 3525


_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to