| |||||
| Dernière réponse | ||
|---|---|---|
| Sujet : [do it yourself] Compilation | ||
| brisssou |
|
|
| Aperçu |
|---|
| Vue Rapide de la discussion |
|---|
| brisssou |
|
| chrisbk |
|
| verdoux |
|
| mareek |
|
| gilou |
|
| gilou |
|
| gilou |
|
| chrisbk | bon, et bien, une recherche google sur "constant folding" m'a renvoyé deux trois trucs interessant.
j'ai donc laissé tomber la compilation directe a partir de l'asa pour deja généré du code en langage intermediaire. A partir de la j'ai attaqué l'optimisation du code intermidiaire, et ca marche plutot bien . des blagues genre : a = 1; b = 5; t = a + b + 1 + 1 +1; se transforment maintenant finement en : t = 9 ce qui est tout simplement formidable ! bon y'a encore quand meme pas mal de boulot :D |
| chrisbk |
|
| chrisbk |
|
| brisssou | moi je repond au premier message...
bha en fait, on a fait ça en début de deuzième année d'IUT d'info... ou alors ça ressemblait à mort... avec l'arbre et tout et tout... on a fait ça en C++, ça nous à pris 2 mois et demi avec un prof un peu naz et des élèves à peine motivés... Vala, c t ma participation inutile du jour... à demain ! :hello: |
| KrzAramis | dakodak.
n empeche que l an dernier j ai rendu un "memoire" sur la norme MP3. Evidement qd tu t amuse a traduire la norme ISO de l anglais au francais, des "implement" t en a tout les deux mots. Alors pour faire le malin j ai mis des "implementer". Et je me sius fait tordre ! c est tout ! :pt1cable: @->-- |
| prettysmile |
|
| KrzAramis | il est cool ton lien "jolie sourire".
Mais ce que tu proposes c est le dico de "l informatique". A mon avis ce mot est loin d etre incorporer dans le dicionaire de la langue francaise. Ce qui est rigolo c est que la definition proposee est differente de son homologue anglaise (j en sais qqc je vis en Angleterre). To implement: mettre en oeuvre ! Merci @->-- |
| prettysmile |
|
| KrzAramis | Gilou, veux tu bien me definir ce que le verbe "implementer" veut dire.
Car a ma connaissance ce mot n existe pas en francais. dsl @->-- |
| gilou | Oui,
Mais c'est une des partie les plus complexes de l'ecriture d'un soft, l'ecriture d'un compilo, et y'a pas mal de methodes qui s'inventent pas car pas evidentes. Le bouquin de base, c'est le dragon book, mais il est assez theorique. Si tu as pas eu de cours la dessus, essaie plutot de regarder une etude de cas comme les bouquins de Holub ou il implemente un compilo C. Mais c'est sur que si tu restes avec Lex et Yacc, tu vas avoir des pbs pour implementer un constant folding generique. A+, |
| chrisbk | thk, j'irais faire un tour sur le net pour cette histoire de constant folding
J'ai lu aucun bouquin a ce sujet, mes connaissances la dessus c'est les cours qu'on a eu cette année (qui ne contenait rien sur cette partie la, donc) et du bricolage personnel :D |
| gilou | Bon, faudrait que tu etudies les bouquins de compilation, section "Constant Folding". Le reperage des parties constantes d'une expression avant evaluation et leur traitement est ainsi appellé en theorie des compilos.
Grosso modo, le constant folding remplace une expression binaire ou unaire avec pour parametres des constantes, par leur resultat direct. Note: ce resultat doit etre equiuvalent a ce que la machine cible aurait generé comme résultat (et non pas ce que le compilateur du compilo a envie de mettre, car ca peut etre different, surtout en cas de cross-compilo). Le constant folding est une "early optimization". Si tu as deja assimilé toutes les bases de la théorie des compilos (ie tu as lu et compris le dragon book), tu peux continuer par le Advanced Compiler design and implementation de S. Muchnik, bon bouquin, mais cher. A+, |
| chrisbk | yop tous !
pour des raisons de fun, apprentissage et tonification capilaire, je suis en train d'ecrire un *chtit* compilo. (je vous le concede, avec le temps qu'il fait dehors, c'est un peu dommage, mais bon, passons)L'affaire se presente plutot bien, le titi compile comme il se doit des expressions plus ou moins farfelues, mais la je suis face a un leger soucis "d'optimisation". (entre guillements car c'est un bien grand pour une si petite chose) Voila le bleme :
|




