[Marseille-pm] Faire mumuse avec les compilos...

DeadCow deadcow at free.fr
Thu Jul 31 18:33:22 CDT 2003


----- Original Message -----
From: <arnaud.assad at free.fr>
To: <marseille-pm at pm.org>
Sent: Friday, August 01, 2003 12:49 AM
Subject: [Marseille-pm] Faire mumuse avec les compilos...


Hello tout le monde.

> Bon ce mail est plus particulièrement destiné à Nicolas
> (gloom est plus valable ? c'est deadcow maintenant ?)

bof pourquoi pas Nico ?

> Pour les autres, je situe le contexte :
> Nicolas écrit un langage, et j'essaie de le convaincre
> d'utiliser parrot comme machine virtuelle (au moins dans la
> phase de conception/test) de destination
>
> Pourquoi ? :
>
>  1) Parce que c'est facile
>  2) Parce que parrot est déjà une bonne VM et le sera encore plus au
>     fil du temps
>  3) Parce que c'est UTILE (y'a plus de 3 personnes qui l'utilisent)
>  4) parce que comme ca on peut bosser à plusieurs dessus
>  5) parce que c'est amusant
>  6) Pour me faire plaisir ;-)

C'est la seule raison valable =)

>  7) Parce qu'une bonne partie des fonctionnalités est déjà présente dans
>     la VM, permettant un test du langage plus rapide/facile
>  8) et SURTOUT parce que cette VM existe déjà !!!

J'ai rien contre parrot à la base, mais c'est quand même chiant quand tu
fait un programme de 2ko d'être obliger de filer 50mo d'interpreteur avec =)

> Nicolas étant réticent, je lui ai expliqué, que grace à parrot il n'aurait
> pas à se préoccupper de pas mal de taches (interprétation, gestion de la
> mémoire...) et qu'écrire un compilo vers parrot ne pouvait pas être plus
dur
> qu'écrire un compilo classique
>
> (Un compilo écrit du code pour un CPU, une VM n'est jamais qu'un "CPU
virtuel")
> Comme il n'était pas convaincu, un petit "défi" m'a été lancé, écrire un
> petit langage qui fasse les 4 opérations de bases le branchement et
> l'affichage.
>
> Nico, tu trouveras ci joint le compilo 'minil' (mini langage ;-)

Ben j'ai mis le miens en fichier joint, il s'appel ARHUMAN pour
"ARithmetic & HUMoristic ANalyser"

> Soyons clair : Il est hideux !

Oui t'as pas trop joué le jeu !

> Mais il fait le boulot (la découverte des bug est laissé comme exercice au
> lecteur ;-) et ça ne m'a pas prit plus de 3 heures pour le faire...
> (même si la syntaxe ressemble beaucoup à la syntaxe de l'assembleur
parrot,
> tu m'accorderas que c'est trivial a régler dans la grammaire...)

T'es sur ?

> Pour Info je suis nul en écriture de compilo (je ne l'ai jamais fait) ma
> grammaire est vraiment pas optimale et je ne maitrise pas l'outil
> Parse::RecDescent (d'ou un usage abusif de la pile...)
>
>
> Toutefois je crois que tu ne pourras que constater que le principe
marche...

Certe

> tu peux tester le code produit en installant parrot (je suis trop rusé)

Héhé c bien vrai

> Maintenant, pour ceux qui seraient intéressés, j'aimerais écrire un
langage
> correctement (en utilisant Parse::Yapp ?) pour les présentation
> (affichage de texte/images, temporisation, saisie d'évènement clavier,
> passage au slide suivant/précédent...) le but est de se familiariser avec
> l'écriture des compilos et parrot.

Bof je préfaire savoir écrire un compilo à la main que de savoir me servire
de Parse::Yapp. Ce module est peut être très bien mais ca m'interesse
moyennement.

> (Comment ça le talk de Leo m'a marqué ? ;-)
>
> C'est pourquoi je poste sur la liste, j'espère bien que parmi vous
certaines
> personnes seront intéressées et me rejoindront...
> Dans tous les cas je compte sur tes bon conseils nico (et même sur ta
> participation pour être honnète ;-)
> Alors nico ? ok pour bosser sur parrot ?
> (ton langage-objet et mon langage-jouet)

Ca peut toujours être interessant =)

> Arnaud.
>
> PS: Nico ne t'inquiètes pas si tu ne trouves pas de Lexer ni de Parser,
> Parse::RecDescent combine les deux fonctions, je suis persuadé que tu va
voir
> cela comme du bricolage à la Perl, mais la théorie sous jacente et
éprouvée :

C'est pas le fait que ca fasse bricolage qui me gêne, c'est que t'as pas
vraiment la main sur le truc, ducoup, y a plein de choses que tu pourra pas
faire. D'un autre coté ça s'écrit plus vite .. tout dépend de ce qu'on
cherche à faire comme d'hab =)

> C'est un parser récursif (sous classe particulière des "top down" parsers
ou
> LL parsers) avec une tokenization "context-sensitive"...
> Plus d'info à :
>
http://search.cpan.org/src/DCONWAY/Parse-RecDescent-1.94/tutorial/tutorial.h
tml

T'as pas eu des problême de recursivité à gauche toi ?

Sinon je me demandais, un projet ou tout le monde pourrait participer. Faire
un wiki marseille-pm avec des articles divers ça vous dirait pas ? Je
connais pas trop wiki mais le principe me plait, c'est la mode en plus =)

-- Nicolas
-------------- next part --------------
A non-text attachment was scrubbed...
Name: arhuman.zip
Type: application/x-zip-compressed
Size: 70625 bytes
Desc: not available
Url : http://mail.pm.org/pipermail/marseille-pm/attachments/20030801/5dc0758a/arhuman.bin


More information about the Marseille-pm mailing list