Compilation
Introduction
Introduction
Compiler:
Traduire un programme écrit en «langage évol» (C, C++,
Java…) vers un langage de plus bas niveau (Java bytecode,
assembleur, binaire)
Pourquoi étudier les compilateurs
Bien comprendre les messages d'erreur fournis par les
compilateurs:
% gcc toto.c
toto.c:1: erreur d'analyse syntaxique before ',' token
toto.c:2: Dans la fonction "main" :
toto.c:2: error: 'a' undeclared (first use in this
function)
/tmp/ccImHOOb.o(.text+0x27): In function 'main' :
undefined reference to 'get'
toto.c: Dans la fonction "main" :
toto.c:5: attention : suggest explicit braces to avoid
ambiguous 'else'
Pourquoi étudier les compilateurs
Savoir écrire un parser facilement:
avant: deux milles lignes
remplies *ptr++, strcmp, strcat, strcpy
segmentation fault une fois sur deux
aucune gestion d'erreurs
code non réutilisable
aps: quelques lignes claires ou utilisation d'unrateur
de parsers et code modulaire
théorie des grammaires algébriques et leurs applications
Pourquoi étudier les compilateurs
Savoir quelles optimisations sont inutiles:
a=b/2 a=b>>1
int f(int x) {
int a,b,c;
a=x;
b=a+2;
c=2*b;
return c;
}
int f(int x) {
return 2*(x+2);
}
1 / 13 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !