Le bytecode Python

De Wiki du LAMA (UMR 5127)
Révision datée du 1 mai 2026 à 15:17 par Marzin (discussion | contributions) (ajout intro)
Aller à la navigation Aller à la recherche

Etudiants : MARZIN Simon et PERIVOLAS Baptiste
Chercheur : HYVERNAT Pierre

Introduction :

Python est un langage de programmation multiparadigme (à la fois impératif, fonctionnel et orienté objet) créé en 1991. A la difference des langages compilés comme le C, le C++ ou le Rust, le python lui est un langage interprété (nous verrons la différence juste après). Il a la particularité dans son execution, de transformer le code en un code intermédiaire simplifié appelé Bytecode. Ce projet porte sur l'étude du fonctionnement d'un interprèteur python, et plus particulièrement du Bytecode.

Langage compilé VS interprété

Un langage compilé est un langage qui necessite de passer par un compilateur (un programme qui transforme un code source en un code objet) pour transformer le code de base en instructions de bas niveau proche de l'assembleur éxecutable par la machine. En C par exemple, on doit compiler un programme C pour le transformer en .exe avant de pouvoir le lancer. Le compilateur analyse syntaxiquement tout le code, puis le transforme, ce qui fait que les erreurs sont detectées plus tôt. Les langages compilés ont la particularité d'être très rapides et performants, un programme déjà compilé étant très facilement executable. Néanmoins, celà rend le débug ainsi que les test plus complexes.
Un langage interprété a lui besoin d'un interpréteur (ou interprète) pour fonctionner. Il récupère un code source, le traîte, le transforme et l'execute dirrectement dans une machine virtuelle. La plupart des interpreteurs traîtent et executent le code instruction par instruction. Or, ce n'est pas totalement le cas de l'interprèteur python.

Comment fonctionne python ?


Partie compilation

Lexer

...

Parser

...

Arbre de syntaxe et compilation

...

Partie machine virtuelle