À retenir
- C'est un format de fichier intermédiaire, pas directement lisible par le processeur.
- Il garantit qu'un même programme peut fonctionner sur des matériels différents.
- Il nécessite la présence d'un logiciel tiers (interpréteur) pour s'exécuter.
Le p-code est une forme de code intermédiaire, située à mi-chemin entre le langage écrit par le programmeur et le langage binaire directement compris par le processeur. On peut le comparer à une notice de montage universelle : elle n'est pas écrite pour un outil spécifique, mais n'importe quel ouvrier (un interpréteur) peut la suivre pour construire l'objet final sur sa machine.
Étymologie
Contraction de l'anglais portable code (code portable), il est aussi parfois associé à pseudo-code. Ce terme a pris son essor dans les années 1970 avec le système UCSD Pascal, conçu pour que les programmes puissent passer d'un ordinateur à un autre sans modification majeure.
Exemples d'usage
- Le système UCSD Pascal, pionnier dans l'utilisation du p-code pour assurer la portabilité entre différents micro-ordinateurs de l'époque.
- Les anciennes versions de Visual Basic (avant .NET) qui transformaient le code source en p-code pour l'exécuter via un moteur dédié.
Cas d'usage
On utilise le p-code principalement pour favoriser la portabilité d'un logiciel. Au lieu de créer une version différente du programme pour chaque type de processeur, les développeurs créent un seul fichier en p-code qui fonctionnera partout où une machine virtuelle (ou un interpréteur) est installée.
Bonnes pratiques
Si vous développez pour un système utilisant le p-code, gardez à l'esprit que l'exécution peut être légèrement plus lente qu'avec du code natif. Il est donc crucial d'optimiser les algorithmes gourmands en ressources pour compenser le travail de l'interpréteur qui traduit le p-code à la volée.
Synonymes
Antonymes
Conseil
Pour bien comprendre le p-code, voyez-le comme l'ancêtre spirituel du fonctionnement de Java ou de .NET. C'est l'outil qui a permis de rêver, dès les années 70, à l'idée qu'un logiciel puisse être écrit une seule fois et fonctionner sur n'importe quel ordinateur.
Questions fréquentes
Quelle est la différence entre p-code et bytecode ?
Ce sont des concepts quasi identiques. Le terme p-code est historique et lié à des langages comme Pascal ou Basic, tandis que bytecode est le terme moderne utilisé pour Java ou Python.
Un p-code est-il lisible par un humain ?
Non, c'est un format binaire compact, bien qu'il soit plus structuré et moins 'brut' que le code machine pur d'un processeur.