Comment ca marche un compilateur? Je cherche des liens - Programmation
Marsh Posté le 26-11-2001 à 17:05:19
c'est plutôt vague comme question un compilateur prend un fichier texte (un fichier 'source' et le compile en code machine.
par ex si tu veux compiler du c/c++ tu cherches 'gcc' sous google.
Marsh Posté le 26-11-2001 à 17:53:30
Non non non c'est vrai je me suis mal exprimé. Je sais m'en servir de mes compilateurs, non ce que je veux savoir c'est comment ca marche a l'intérieur;
En fait je cherche des tutorials qui pourraient m'indiquer comment construire le mien, par exemple.
Marsh Posté le 26-11-2001 à 18:07:48
Fais une recherche sur "Lex" et "Yacc", respectivement analyseurs lexical et syntaxiquse (quasi incontournables quand tu developpes ton propre truc)
Marsh Posté le 26-11-2001 à 18:13:28
je n'ai jamais testé yacc/bison & co car justement je voulais comprendre comment ça marche tout ça
tu n'es pas le premier à poser la question, et je ressors toujours le même lien : http://compilers.iecc.com/crenshaw/ . c'est le seul tutorial compréhensible pour le profane que j'étais que j'ai pû trouver -- c'est en pascal et ça compile du 68000. le gros avantage de ce tutorial est qu'il est très didactique et qu'il te permet de comprendre le 'coeur' d'un langage : les expressions. une fois que t'as compris ça, les if/while/for/les fonctions, c'est de la gnognotte
je me suis inspiré de la chose et ai compilé du pseudo C vers ma chtite machine virtuelle désignée pour en vraiment pas longtemps.
Marsh Posté le 26-11-2001 à 18:14:10
Salut
Un lien que j'ai rouvé sur ce forum, mais que j'ai pas encore lu
http://compilers.iecc.com/crenshaw/
Marsh Posté le 26-11-2001 à 18:14:59
instantdharma a écrit a écrit : Salut Un lien que j'ai rouvé sur ce forum, mais que j'ai pas encore lu http://compilers.iecc.com/crenshaw/ |
quand on parle du loup ....
Marsh Posté le 26-11-2001 à 19:50:16
Gonzoide c'est pas seulement avec lex et yacc que tu vas obtenir des compilateurs evolues.
Ca s'explique pas en 5 mn car c' est assez complexe.
Il y a tout un ensemble de considerations theoriques sur les grammaires a connaitre (afin de les appliquer a la grammaire du langage que tu veux compiler).
Le livre de reference et d' introduction sur le sujet est le Aho-Seti-Ullman (Compilers: Principles techniques and tools, aussi connu sous le nom de Dragon-Book a cause de la couverture)
Si tu es interesse par une approche plus pratique, tu peux jeter un oeil au livre de Holub, Compiler Design in C.
Tout ca ne te permettras pas d'ecrire un compilo efficace, mais te donnera les bases.
(pour les techniques avancees de compil, il y a un livre de Muchnik,Advanced Compiler Design and Implementation qui est une reference, mais incomprehensible pour qui ne maitrise pas le dragon book).
A+,
Marsh Posté le 26-11-2001 à 19:58:40
$80 sur amazon.com (!) http://www.amazon.com/exec/obidos/ASIN/0201100886/
400f sur amazon.fr (!!!) http://www.amazon.fr/exec/obidos/ASIN/0201100886/
faudra qu'on m'explique ...
Marsh Posté le 26-11-2001 à 22:38:34
280 FF sur axelea(je l'ai acheté là)
http://e-bus.diese-software.com/cg [...] Y_NUM=1953
[edtdd]--Message édité par sisicaivrai--[/edtdd]
Marsh Posté le 27-11-2001 à 10:27:55
Un peu d'algebre, mais pas trop.
La theorie des grammaires, c'est un truc assez independant.
Mais si on a pas les bases pour comprendre ce que c'est qu'une grammaire deterministe, ou la difference entre une grammaire LR et une grammaire LL, il y a peu de chance que tu puisse ecrire un compilo efficace. (Un parser, eventuellement; un compilo, c'est plus dur).
C'est pour ca que je recommandais le bouquin de Holub en parallele: le Holub est pas assez theorique, mais il permet de bien apprehender les aspects pratiques de la theorie.
A+,
Marsh Posté le 26-11-2001 à 17:00:08
Tout est dans la question...