CentraleSupélecDépartement informatique
Plateau de Moulon
3 rue Joliot-Curie
F-91192 Gif-sur-Yvette cedex
Génie logiciel orienté objet - Cours : Introduction Java





C'est maintenant Javascript qui est utilisé pour exécuter du code dans un navigateur.

Quelques liens sur l'utilisation des langages de programmation:





Vous savez peut-être qu'un processeur, le composant chargé d'exécuter des programmes dans un ordinateur, est un composant d'électronique numérique ...

... qui ne connait que le langage binaire.

On peut donc se demander comment fait-il pour exécuter du code écrit en Python ou en Java. Il existe plusieurs solutions.



Dans le cas d'un langage comme Python, le binaire qui s'exécute va aller lire le code source du programme et exécuter sur le processeur l'équivalent des instructions Python qu'il découvre.

Par exemple, l'instruction y = x + 1 sera interprétée comme :

  • aller chercher dans la table des variables celles dont le nom est x ; signaler une erreur si elle n'existe pas ;
  • obtenir sa valeur ;
  • lui ajouter 1 ; signaler une erreur si cette addition n'est pas possible (par exemple si la valeur obtenue est une chaîne de caractères) ;
  • aller chercher dans la table des variables celles dont le nom est y ; la créer si elle n'existe pas ;
  • lui donner la valeur calculée précédemment.





L'implémentation de référence du langage Python est fournie par l'interpréteur CPython 1 qui est écrit en langage C.



Le langage C (ainsi que d'autres comme C++) est habituellement compilé (mais il existe aussi des interpéteurs pour ces langages).



Dans le cas d'un langage compilé, une première étape est réalisée par un compilateur : ce binaire exécutable va aller lire le code source du programme et traduire les instructions qu'il découvre en instructions (binaires) équivalentes et exécutables sur le processeur. Il sera alors possible, dans une seconde étape, d'exécuter directement le programme traduit.



Dans le cas d'un langage comme Java, le code source est aussi compilé. Mais les instructions produites par le compilateur ne sont pas directement exécutable par le processeur de votre ordinateur : le processeur cible du compilateur est un processeur virtuel, qui n'existe pas réellement. Les instructions de ce processeur virtuel (on parle habituellement de bytecode) sont ensuite exécutées, ou plus précisément interprétées, par un programme exécutable que l'on appelle machine virtuelle. À noter que le compilateur est lui-même écrit en Java 2 !

Cette solution est aussi celle retenue par Microsoft pour ses langages comme C#.


 

1 Pour être précis, CPython est en fait, pour des questions de performances, à la fois un compilateur du langage Python en bytecode et un interpréteur de ces bytecode.

2 Alors que le compilateur Python en bytecode est écrit en C. Pour une explication plus détaillée de l'exécution d'un programme Python, voir par exemple ici sur Stack Overflow.



© 2024 CentraleSupélec