Programmation
fonctionnelle, impérative, logique et orientée objet
Introduction
●Les langages de programmation permettent de décrire
des calculs de façon plus abstraite qu'un programme
“machine”.
●Les programmes dans ces langages sont
–Compilés (transformés en “code machine” par un compilateur)
–Ou interprétés (exécutés par un autre programme appelé interpréteur)
●Un compilateur génère un programme machine pour un
processeur donné, dont la sémantique est donnée par le
programme source.
●Un interpréteur lit un programme source et « calcule »  
sa sémantique directement pour une entrée donnée
Processeur
Compilateur
(gcc, ocamlopt)
Programme Programme
machine
Processeur
Programme
machine
Entrées Sorties
Compilation
(C, Caml,
Fortran...)
Interprétation
(Lisp)
Processeur
Interpréteur
Programme
+
entrées Sorties
Le programme
compilé est
très efficace
peu efficace
Java
int k = 1, l = 1;
while (k <= i) {
l = l * k;
k++;
}
return l;
Bytecode
0: iconst_1
1: istore_2
2: iconst_1
3: istore_3
4: iload_2
5: iload_0
6: if_icmpgt 19
9: iload_3
10: iload_2
11: imul
12: istore_3
13: iinc 2, 1
16: goto 4
19: iload_3
20: ireturn
Exemple de compilation : factorielle
Processeur
Compilateur
Programme Programme
“bytecode”
Compilation
pour une
machine
virtuelle
(Java, Caml,
.Net)
Processeur Y
Machine
virtuelle Y
Programme
“bytecode”
+ entrées
Sorties
Processeur X
Machine
virtuelle X
Programme
“bytecode”
+ entrées
Sorties
Le programme
est portable et
moyennement
efficace
1 / 62 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!