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