Aller au contenu

CPython

Un article de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 16 mars 2013 à 17:05 et modifiée en dernier par Addbot (discuter | contributions) (Retrait de 12 liens interlangues, désormais fournis par Wikidata sur la page d:q599384). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.

CPython
Logo.
Image illustrative de l’article CPython

Date de première version Voir et modifier les données sur Wikidata
Dernière version 3.13.3 ()[1]Voir et modifier les données sur Wikidata
Version en développement 3.8.0b3 ()[2]Voir et modifier les données sur Wikidata
Écrit en CVoir et modifier les données sur Wikidata
Système d'exploitation Multiplate-forme
Licence Python Software Foundation License[3]Voir et modifier les données sur Wikidata
Site web www.python.orgVoir et modifier les données sur Wikidata

CPython est l'implémentation de référence du langage Python. C'est un interpréteur de bytecode écrit en langage C.

Plates-formes supportées

CPython fonctionne sur un très grand nombre de plates-formes :

Compatible UNIX

OS bureautique

Embarqué ou spécifique

Autres

Le Global Interpreter Lock

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.

Extension

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[4]. Il existe également des générateurs comme SWIG ou cython qui permettent d'utiliser des langages de plus haut niveau.

Il est aussi possible d'utiliser d'autres langages que le C, par exemple BOOST pour le C++ ou Pyfort pour Fortran.

À partir de Python 2.5, la bibliothèque standard inclut le module ctypes, une FFI (Foreign function interface) qui permet d'appeler directement une bibliothèque dynamique depuis du code python[5].

Implémentation du modèle objet

Les objets CPython sont créés en étendant la structure PyObject, qui contient le compteur de références, les pointeurs utilisés pour le chaînage dans le ramasse-miettes et un pointeur vers la classe de l'objet.

Gestion de la mémoire

La gestion de mémoire est faite par comptage de référence. Un ramasse-miettes est inclus depuis la version 2.0 pour résoudre les problèmes de cycles.

Notes et références

Voir aussi

Articles connexes