Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. PyPy — Wikipédia
PyPy — Wikipédia 👆 Click Here! Read More..
Un article de Wikipédia, l'encyclopédie libre.
PyPy
Description de l'image Pypy logo (2011).png.

Informations
Première version 2002Voir et modifier les données sur Wikidata
Dernière version 7.3.19 (26 février 2025)[1]Voir et modifier les données sur Wikidata
Dépôt github.com/pypy/pypyVoir et modifier les données sur Wikidata
Écrit en Python et RPython (en)Voir et modifier les données sur Wikidata
Système d'exploitation Multiplateforme (d)Voir et modifier les données sur Wikidata
Environnement Multi-plateforme
Type Interpréteur et compilateur
Python
Licence Licence MITVoir et modifier les données sur Wikidata
Site web pypy.orgVoir et modifier les données sur Wikidata

modifier - modifier le code - voir Wikidata (aide)

PyPy est une mise en œuvre du langage Python écrite elle-même en Python, avec une architecture flexible.

Le projet

[modifier | modifier le code]

Un des buts du projet est d'obtenir une version de Python plus rapide que l'implémentation en C actuelle (CPython)[2], ce but est atteint depuis 2000[Quoi ?] avec la version 1.2[3].

PyPy est principalement un projet de recherche et développement et ne se focalise pas en lui-même sur l'obtention d'une implémentation de Python prête pour la production, pour le moment.

Historique

[modifier | modifier le code]

Un des développeurs principaux de PyPy est Armin Rigo, qui a développé Psyco (en), un compilateur à la volée spécialisé pour Python qui accélère le code Python de 4 à 100 fois presque sans intervention de l'utilisateur.

PyPy s'inspire du langage Oz pour l'utilisation d'espace d'objets. Cela permet de combiner les aspects orientation objet et mutabilité, concurrence et distribution, etc. dans le même langage.

PyPy

[modifier | modifier le code]

PyPy est constitué de deux composants principaux :

  • un interpréteur Python, écrit lui-même en un sous-ensemble restreint de Python
  • une chaîne d'outils qui analyse ce sous-ensemble de Python (RPython), le traduit en un langage bas niveau tel que C et le compile.

Ces deux composants peuvent être utilisés indépendamment : l'interpréteur Python peut lui-même s'exécuter au sein d'un autre interpréteur Python existant, et la chaîne de traduction peut s'appliquer à tout programme écrit en RPython.

Implémentation de Python

[modifier | modifier le code]

L'interpréteur Python de PyPy, tel que proposé par la version 2.2, est semblable à une version Python 2.7.3.

Différences avec le Python standard

[modifier | modifier le code]

PyPy s'approche le plus possible de l'interpréteur standard, avec quelques différences[4] :

  • Par défaut, PyPy utilise un ramasse-miettes automatique, différent du comptage de références ; il est plus performant, mais certaines ressources peuvent être libérées plus tard que d'habitude.
  • Quelques modules n'ont pas été portés, en particulier ceux dont le code d'origine est le C.
  • L'interface de programmation en C n'est pas encore considérée comme assez stable par ses développeurs.

Le langage RPython

[modifier | modifier le code]

L'interpréteur Pypy est écrit dans une version restreinte de Python appelée RPython (R pour « restreint »)[5]. Il se définit à partir du langage Python, en deux phases successives :

  • La phase d'initialisation consiste à importer le code avec un interpréteur Python standard, et autorise toutes les méthodes de développement, y compris la méta-programmation et la génération dynamique de fonctions et de classes.
  • La phase d'analyse part des fonctions et classes présentes en mémoire, et leur impose certaines restrictions.

Les contraintes principales des objets analysés sont :

  • Une variable ne peut contenir qu'un seul type de valeur (on ne peut pas stocker un entier puis une chaîne de caractères dans la même variable) ;
  • Les variables globales d'un module sont considérées comme constantes ;
  • La définition dynamique de classe ou de fonction n'est pas supportée ;
  • Les générateurs ne sont pas supportés ;
  • Les méthodes et les autres attributs d'une classe ne changent pas durant l'exécution ;
  • La clé d'un dictionnaire ne peut être que d'un seul type (hashable).

La chaîne d'analyse et de traduction

[modifier | modifier le code]

Parce qu'il est écrit dans un langage dynamique, PyPy facilite la séparation des différents aspects d'un interpréteur, et permet l'identification des zones où l'implémentation de Python peut être améliorée. Il permet également aux développeurs d'expérimenter de multiples implémentations de fonctions spécifiques.

Aspects paramétrables

[modifier | modifier le code]

Pour la gestion de la mémoire, effectuée par un ramasse-miettes, on a le choix entre trois sous-systèmes différents :

  • boehm : ramasse-miettes « Boehm garbage collector[6] »
  • ref : compteur de référence implémenté en RPython
  • framework / stacklessgc : implémentation en RPython d'un ramasse-miettes avec collecteur « mark and sweep »

La traduction de l'interpréteur PyPy écrit en RPython peut se faire dans différents langages :

  • Langage C
  • LLVM
  • JavaScript
  • CLI (.NET)
  • CLISP (Lisp)
  • Squeak (Smalltalk)
  • (en projet? Java)

Références

[modifier | modifier le code]
  1. ↑ « PyPy v7.3.19 release » (consulté le 12 mars 2025)
  2. ↑ Jacob Hallén, « PyPy - an implementation of Python in Python » [archive du 26 octobre 2006], mars 2004 (consulté le 8 octobre 2006)
  3. ↑ Fonctionnalités de PyPy
  4. ↑ Compatibilité avec Python
  5. ↑ Our runtime interpreter is “RPython”, Coding Guide – PyPy documentation
  6. ↑ Ramasse-miettes deBoehm-Demers-Weiser

Voir aussi

[modifier | modifier le code]

Articles connexes

[modifier | modifier le code]
  • psyco (précurseur de pypy)
  • Python
  • Cython

Liens externes

[modifier | modifier le code]
  • (en) Site officiel
v · m
Python
Implémentation
  • CPython
  • IronPython
  • Jython
  • Numba
  • PyPy
  • Shed Skin
  • Stackless Python
Framework
  • CherryPy
  • Django
  • Flask
  • Mako
  • PyObjC (en)
  • Qt
    • PyQt
    • PySide
  • PyGTK
  • Scrapy
  • TurboGears
  • Web2py
IDE
  • Anjuta
  • IDLE
  • KDevelop
  • Komodo
  • Microsoft Visual Studio
  • PyCharm
  • Spyder
  • Visual Studio Code
Organisations
  • Python Software Foundation
  • Django Software Foundation
  • Django Girls
  • PyLadies
Autres
  • Python Software Foundation License
  • Pip
  • Liste de logiciels Python
  • Guido van Rossum
  • PyCon
  • PyPI
  • icône décorative Portail de la programmation informatique
Ce document provient de « https://fr.teknopedia.teknokrat.ac.id/w/index.php?title=PyPy&oldid=230040883 ».
Catégories :
  • Logiciel écrit en Python
  • Python
Catégories cachées :
  • Article contenant un lien mort
  • Page utilisant P571
  • Page utilisant P348
  • Page utilisant P1324
  • Page utilisant P277
  • Logiciel écrit en un langage sans catégorie associée
  • Logiciel catégorisé automatiquement par langage d'écriture
  • Page utilisant P306
  • Page utilisant P275
  • Page utilisant P856
  • Article utilisant une Infobox
  • Article contenant un appel à traduction en anglais
  • Portail:Programmation informatique/Articles liés
  • Portail:Informatique/Articles liés

  • indonesia
  • Polski
  • الرية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصر
  • Nederlands
  • 本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українска
  • Tiếng Việt
  • Winaray
  • 中文
  • Русски
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id