Concept

CPython

Résumé
CPython est l'implémentation de référence du langage Python et l'implémentation par défaut et la plus largement utilisée de ce langage. CPython peut être défini à la fois comme un interpréteur et un compilateur, car il compile le code Python en bytecode avant de l'interpréter. Il possède une interface avec plusieurs langages, dont le C, dans laquelle il est possible d'écrire explicitement des liaisons dans un autre langage que Python. Enfin, c'est un logiciel libre. CPython fonctionne sur un très grand nombre de plates-formes : AIX BSD FreeBSD NetBSD Linux OpenBSD Mac OS X SPARC Solaris autres, IRIX par exemple OS bureautique : Amiga AROS BeOS Mac OS 9 Microsoft Windows OS/2 RISC OS (précédemment Acorn) GP2X Java VM Nintendo DS Palm OS PlayStation 2 PlayStation Portable Psion QNX Sharp Zaurus Symbian OS Windows CE/Pocket PC Xbox et XBMC VxWorks OS/400 OS/390 Plan 9 VMS z/OS CPython utilise un verrou global pour protéger les ressources de l'interpréteur. Un programme Python ne peut donc pas tirer pleinement profit des machines multiprocesseurs à moins d'utiliser des processus séparés plutôt que des processus légers. La présence du GIL simplifie la mise en œuvre de CPython et facilite la mise en œuvre d'applications multithread qui ne bénéficient pas de l'exécution simultanée de code Python. Cependant, sans GIL, les applications de multitraitement doivent s'assurer que tout le code commun est thread-safe. Bien que de nombreuses propositions aient été faites pour éliminer le GIL, le consensus général a été que dans la plupart des cas, les avantages du GIL l'emportent sur les inconvénients ; dans les quelques cas où le GIL est un goulot d'étranglement, l'application doit être construite autour de la structure multitraitement. Il existe plusieurs méthodes pour écrire des modules d'extensions. La méthode standard consiste à écrire une bibliothèque dynamique en C qui utilise des points d'entrée de l'interpréteur CPython pour manipuler les objets. Il existe également des générateurs comme SWIG ou cython qui permettent d'utiliser des langages de plus haut niveau.
À propos de ce résultat
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.