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

Sébastien Aperghis-Tramoni maddingue at free.fr
Thu Jul 31 20:53:44 CDT 2003


On vendredi, aoû 1, 2003, at 01:33 Europe/Paris, DeadCow wrote:

> 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...
>
>> 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 =)

On vous laisse régler ça entre vous :-)

>>  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 =)

$ l parrot
-rwxr-xr-x  1 maddingu  staff  1741140 Aug  1 03:42 parrot*

C'est vrai qu'il est trop gros pour le moment mais il est encore en 
développement et est compilé avec les options -g -Larry -Wall et sans 
optimisations.

>> 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.

Dans mes études d'ingénieur j'ai écris des analyseurs syntaxiques, un 
assembleur MIPS et un compilateur Pascal. Comprendre les principes de 
base est intéressant mais la programmation complète est quand même 
rapidement emmerdant.

Utiliser un parser de bonne qualité pour se retirer du travail chiant 
n'a rien de "déshonorant". C'est généralement considéré comme une bonne 
utilisation des outils disponibles. Perl utilise lex pour cette raison 
d'ailleurs

>> 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 =)

Exactement :-)
Mais là encore je tiens à rappeler que si lex et yacc (et les modules 
remplissant des fonctions similaires en Perl) existent, c'est parce 
qu'écrire des parsers lexicaux et syntaxiques est une opérations très 
mécanique : une fois que tu as la grammaire BNF de ton langage, tu peux 
passer ça à lex et yacc et ils te font le boulot. Sinon il faut se 
frapper d'écrire autant de fonctions que tu as de lexèmes, toutes sur 
le même modèle. C'est intéressant à faire une fois, mais soûlant la 
seconde fois.

Mais bon, évidemment, ça dépend du niveau auquel on a envie de 
travailler, mais je ne trouve pas que ce niveau-ci soit le plus 
attrayant; personnellement je préfère visiter les machines au sous-sol 
(kernel) et m'amuser sur le toit (Perl) :-)


Sébastien Aperghis-Tramoni
  -- - --- -- - -- - --- -- - --- -- - --[ http://maddingue.org ]



More information about the Marseille-pm mailing list