Python est un langage semi-interprété. En tant que tel, il produit un pseudo-code que l'on peut retrouver dans les fichiers d'extension .pyc (PYthon Compilé). Dans cet article, je vous propose d'étudier le pseudo-code Python. Python fournit le module dis, qui permet de désassembler le pseudo-code (souvent appelé bytecode) en un code plus lisible, l'opcode. Bien sûr, ne vous attendez pas à retrouver du code Python. Vous aurez simplement accès à l'opcode plus facilement lisible pour un être humain et comportant des mnémoniques.
Le module dis est un module standard et vous n'aurez donc pas besoin de l'installer. Pour l'utiliser, vous aurez deux options :
- soit l'utiliser en mode interactif ;
- soit l'utiliser depuis la ligne de commandes du shell :
python -m dis mon_fichier.py
1. Premiers désassemblages de code
Pour commencer, nous allons prendre un code très simple : l'affichage d'une chaîne de caractères.
01: print "GLMF HS Python"
Notre code ne contient qu'une seule ligne et son action est vraiment limitée. Voyons maintenant ce qui se passe quand Python l'exécute. Supposons que cette ligne ait été stockée dans un fichier test_print.py. Nous exécutons alors :
python -m dis test_print.py
Nous obtenons l'affichage suivant :
1 0 LOAD_CONST 0 ('GLMF HS Python')
3 PRINT_ITEM
4 PRINT_NEWLINE
5 LOAD_CONST 1 (None)
8 RETURN_VALUE
Eh oui, c'est ça le code compréhensible par un être humain... Il va nous falloir un...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première