Lumière sur Parrot est une machine virtuelle à base de registres:

Parrot  ( destiné à exécuter le bit code pour les langages dynamiques) Parrot est aussi destiné à supporter d'autres langages dynamiques tels que Ruby, Python, Tcl ou JavaScript.
Conformément à la tradition de cette communauté, Parrot est un logiciel libre distribué sous licence artistique (Perl) et sur de nombreuses plates-formes logicielles, parmi lesquelles GNU/Linux.
imon Cozens a annoncé que Larry Wall et Guido van Rossum (les auteurs respectifs de Perl et de Python) unifiaient leurs efforts pour créer Parrot un langage synthèse de Perl et de Python. Ce nom fut ensuite adopté pour un projet au but similaire. Déjà, des petits langages sont supportés par Parrot et permettent de tester ses capacités.

Parrot utilise des techniques éprouvées mais peu répandues en dehors du monde Lisp telles que le COW (ou Copy-On-Write), les continuations. Le Copy-On-Write, c’est-à-dire copie sur écriture, permet de partager la mémoire d'objets différents tant qu'ils gardent la même valeur.
Parrot supporte dynamiquement et de manière efficace de nouveaux types grâce aux PMC (Parrot Polymorphic Containers). Lorsqu'on crée un type nouveau que l'on veut implémenter en C, on implémente les méthodes nécessaire pour ce type supportées par l'interface PMC. Certaines méthodes ont un nom et interface prédéfini. Elles sont accessibles rapidement car le PMC se comporte alors comme une vtable à la C++. Mais un PMC peut avoir des méthodes qui lui sont propres et définir des attributs. Chaque instance d'un PMC contiendra lesdits attributs. Il ne faut pas confondre les PMC avec le support objet de plus haut niveau dont l'implémentation sera spécifique à tel ou tel langage utilisant Parrot mais qui utilisera des PMC prédéfinis par Parrot ou chargés dynamiquement.by TAATJENE

Popular Posts