[{"@context":"http:\/\/schema.org\/","@type":"BlogPosting","@id":"https:\/\/wiki.edu.vn\/all2fr\/wiki1\/cython-wikipedia\/#BlogPosting","mainEntityOfPage":"https:\/\/wiki.edu.vn\/all2fr\/wiki1\/cython-wikipedia\/","headline":"Cython – Wikipedia","name":"Cython – Wikipedia","description":"before-content-x4 Cython Paradigmes: multipari\u00e9 Ann\u00e9e de publication: 28 juillet 2007 D\u00e9veloppeur: Robert Bradshaw, Stefan Behnel, et al. Version actuelle 0,29,33","datePublished":"2019-06-28","dateModified":"2019-06-28","author":{"@type":"Person","@id":"https:\/\/wiki.edu.vn\/all2fr\/wiki1\/author\/lordneo\/#Person","name":"lordneo","url":"https:\/\/wiki.edu.vn\/all2fr\/wiki1\/author\/lordneo\/","image":{"@type":"ImageObject","@id":"https:\/\/secure.gravatar.com\/avatar\/44a4cee54c4c053e967fe3e7d054edd4?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/44a4cee54c4c053e967fe3e7d054edd4?s=96&d=mm&r=g","height":96,"width":96}},"publisher":{"@type":"Organization","name":"Enzyklop\u00e4die","logo":{"@type":"ImageObject","@id":"https:\/\/wiki.edu.vn\/wiki4\/wp-content\/uploads\/2023\/08\/download.jpg","url":"https:\/\/wiki.edu.vn\/wiki4\/wp-content\/uploads\/2023\/08\/download.jpg","width":600,"height":60}},"image":{"@type":"ImageObject","@id":"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/4\/4a\/Pictogram_voting_info.svg\/15px-Pictogram_voting_info.svg.png","url":"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/4\/4a\/Pictogram_voting_info.svg\/15px-Pictogram_voting_info.svg.png","height":"15","width":"15"},"url":"https:\/\/wiki.edu.vn\/all2fr\/wiki1\/cython-wikipedia\/","wordCount":2945,"articleBody":" (adsbygoogle = window.adsbygoogle || []).push({});before-content-x4Cython Paradigmes: multipari\u00e9 Ann\u00e9e de publication: 28 juillet 2007 D\u00e9veloppeur: Robert Bradshaw, Stefan Behnel, et al. Version actuelle 0,29,33 [d’abord] (5 janvier 2023) Dactylographie: Strong, statique, dynamique (“type de canard”) Influenc\u00e9 par: Python, 100, 100 ++ Syst\u00e8me op\u00e9rateur: Syst\u00e8me Linux, type Unix, Microsoft Windows [2] , macOS [2] Licence: Licence Apache, version 2.0 [3] , Licence Apache [4] cython.org Cython est un langage de programmation universel qui est largement compatible avec Python. Comme cela, elle prend en charge divers paradigmes de programmation tels que la programmation orient\u00e9e vers l’objet, orient\u00e9e vers l’aspect et fonctionnel. Cependant, le principal avantage est la traduction dans la cible C, qui permet \u00e0 la fois une performance \u00e9lev\u00e9e par rapport \u00e0 l’interpr\u00e9teur Python standard, ainsi qu’une interaction directe avec le code externe qui est \u00e9crit en C, C ++ ou FORTRAN. (adsbygoogle = window.adsbygoogle || []).push({});after-content-x4Les principaux domaines d’application sont la connexion des biblioth\u00e8ques externes \u00e0 l’interpr\u00e9teur CPYTHON, ainsi que l’acc\u00e9l\u00e9ration du code Python. Le compilateur Cython peut \u00e9galement \u00eatre utilis\u00e9 pour compiler les modules python purs. Le code g\u00e9n\u00e9r\u00e9 n’est pas autosuffisant, mais a besoin d’un environnement d’ex\u00e9cution compatible CPYTHON. La g\u00e9n\u00e9ration de modules binaires (“module d’extension”) est pris en charge, qui dynamiquement sur le importer -Incapse dans l’interpr\u00e9teur Python peut \u00eatre charg\u00e9, ainsi que l’int\u00e9gration gauche de l’interpr\u00e9teur CPYthon dans le module g\u00e9n\u00e9r\u00e9, de sorte qu’un programme ex\u00e9cutable est cr\u00e9\u00e9 ( Int\u00e9gration ). Cython est bas\u00e9 sur Pyrex de Greg Ewing (premi\u00e8re publication le 4 avril 2002 [5] ). En juillet 2007, le compilateur Cython a \u00e9t\u00e9 s\u00e9par\u00e9 par Robert Bradshaw et Stefan Behnel en tant que projet ind\u00e9pendant et ouvertement d\u00e9velopp\u00e9 de Pyrex. Depuis lors, des tentatives ont \u00e9t\u00e9 faites pour maintenir les deux compilateurs largement compatibles, bien que Cython ait utilis\u00e9 des optimisations significativement suppl\u00e9mentaires et atteint une compatibilit\u00e9 plus \u00e9lev\u00e9e avec le code Python. Des diff\u00e9rences importantes avec Pyrex sont d\u00e9crites dans la documentation du cython. (adsbygoogle = window.adsbygoogle || []).push({});after-content-x4Le nom Cython Est un mot de valise des deux langages de programmation sous-jacents: Python et C. Le projet Cython s’est fix\u00e9 l’objectif de d\u00e9velopper un compilateur pour le code Python normal, [6] qui offre les performances les plus \u00e9lev\u00e9es possibles et une int\u00e9gration \u00e9tendue avec le code, qui est \u00e9crit en C, C ++ et FORTRAN par le typage statique suppl\u00e9mentaire (explicite). Cython est un compilateur d’optimisation, mais pas au bon sens d’un compilateur qui cr\u00e9e du code binaire. Au contraire, la traduction en code C permet de laisser de nombreuses optimisations et ajustements de plate-forme de base \u00e0 un compilateur C. Le compilateur Cython peut se limiter aux optimisations de haut niveau au niveau AST. Le code C, que le cython g\u00e9n\u00e8re, est largement portable en termes de plates-formes (processeur, compilateur C et syst\u00e8me d’exploitation) et des versions CPYTHON. Actuellement (version 0.28.5) Les versions CPYTHON 2.6 et 2.7 et toutes de 3,3 sont prises en charge. Les plates-formes test\u00e9es incluent MacOS, Windows et, surtout, diverses distributions Linux, avec des versions syst\u00e8me 32 bits et 64 bits. (adsbygoogle = window.adsbygoogle || []).push({});after-content-x4La combinaison de Python et C permet \u00e0 Cython de cartographier une tr\u00e8s large gamme d’exigences. Il est possible pour une programmation de haut niveau avec des types de donn\u00e9es Python, des constructions de langage et une gestion automatique de la m\u00e9moire, ainsi que une programmation tr\u00e8s C-Close avec les types de donn\u00e9es C, les fonctions C et la gestion de la m\u00e9moire manuelle. Les deux peuvent \u00eatre combin\u00e9s comme souhait\u00e9 et l’interaction avec le code Python pur (non compil\u00e9) est tout aussi native que l’interaction avec le code C ou C ++, ce qui permet une proc\u00e9dure tr\u00e8s fine lors de l’optimisation du code cython. Toutes les parties du code peuvent \u00eatre \u00e9crites en python pur, compil\u00e9es avec Cython, optimis\u00e9es avec des types de donn\u00e9es statiques ou m\u00eame port\u00e9es selon C, selon l’exigence. En cons\u00e9quence, Cython soutient tr\u00e8s bien le principe selon lequel la majeure partie de l’ex\u00e9cution d’un programme est cr\u00e9\u00e9e dans une tr\u00e8s petite partie du texte source, c’est-\u00e0-dire que l’optimisation d’une petite partie du programme peut apporter un tr\u00e8s grand gain de performances, tandis que dans la plus grande partie du code, une vitesse de d\u00e9veloppement \u00e9lev\u00e9e et un faible entretien sont plus importants que la plus grande vitesse d’ex\u00e9cution possible. Le langage de programmation r\u00e9alise l’int\u00e9gration du langage entre Python et C avant tout via les types de donn\u00e9es. Diverses constructions de langage Python peuvent \u00eatre appliqu\u00e9es \u00e0 la fois aux types de donn\u00e9es Python et aux types de donn\u00e9es C. Un exemple est la boucle ‘for’ qui est une boucle foreach dans Python, c’est-\u00e0-dire ex\u00e9cuter n’importe quel conteneur it\u00e9rable (par exemple, listes ou fichiers). Dans Cython, cette boucle peut \u00e9galement fonctionner via des listes C ++, des arrailles C et des tableaux partiels, ainsi que via des sections de pointeur (tranches [7] , z. B. PTR [2: 8] pour les d\u00e9calages 2 \u00e0 7). De plus, il existe une conversion automatique entre diff\u00e9rents types de donn\u00e9es Python et les types de donn\u00e9es C, \u00e0 la fois pour les types d’\u00e9chelle (nombres) ainsi que dans les cha\u00eenes de caract\u00e8res et les types de donn\u00e9es structur\u00e9s (par exemple, les types de structures C et les dictionnaires Python). Bon nombre des optimisations selon lesquelles le compilateur Cython effectue automatiquement une sp\u00e9cialisation des codes C g\u00e9n\u00e9r\u00e9s. \u00c0 cette fin, le compilateur utilise des d\u00e9clarations de type statique explicites et une police (simple) pour cr\u00e9er du code C sp\u00e9cialis\u00e9 pour les types de donn\u00e9es utilis\u00e9s et certains mod\u00e8les de code. Une grande partie des optimisations du compilateur Cython fait r\u00e9f\u00e9rence aux boucles, car une grande partie du terme total s’accumule g\u00e9n\u00e9ralement ici. Les structures de contr\u00f4le (en particulier le broyage) sont traduites avec Cython et un compilateur C plusieurs fois plus rapidement que si elles sont interpr\u00e9t\u00e9es par Cpython. [8] Cela est d\u00fb aux optimisations optimistes et \u00e0 l’inf\u00e9rence du type. En cons\u00e9quence, le code Python compil\u00e9 par cython s’ex\u00e9cute g\u00e9n\u00e9ralement plus rapidement que dans cpython 2.6.x m\u00eame sans d\u00e9clarations de type explicite, bien que les performances relatives d\u00e9pendent naturellement du code respectif. Cependant, la d\u00e9claration statique des types de donn\u00e9es et la sp\u00e9cialisation qui en r\u00e9sulte du COD C peut g\u00e9n\u00e9ralement \u00eatre acc\u00e9l\u00e9r\u00e9e plusieurs fois. En particulier avec les calculs math\u00e9matiques, les am\u00e9liorations des termes entra\u00eenent souvent une centaine \u00e0 mille. [9] En comparaison, l’acc\u00e9l\u00e9ration typique du compilateur Python-Jit PSYCO est d’environ quatre \u00e0 cent fois, [dix] Pour Pypy dans des cas s\u00e9lectionn\u00e9s jusqu’\u00e0 douze toit. [11] Le code g\u00e9n\u00e9r\u00e9 par Cython pour les fonctions est optimis\u00e9 pour d\u00e9baller rapidement et convertir les param\u00e8tres d’appel. Par cons\u00e9quent, un appel python du code nativable \u00e0 travers un wrapper cython est g\u00e9n\u00e9ralement plus rapide que dans les autres impl\u00e9mentations de wrapper pour Python. [douzi\u00e8me] [13] Les domaines d’application les plus importants du cython sont la connexion des biblioth\u00e8ques externes \u00e0 l’interpr\u00e8te CPYthon, ainsi que l’acc\u00e9l\u00e9ration du code Python, en particulier dans les calculs math\u00e9matiques et les algorithmes arithm\u00e9tiques. Par exemple, le syst\u00e8me d’albums informatiques de Sagemath est largement bas\u00e9 sur le code cython. Cela sert \u00e0 impl\u00e9menter des algorithmes math\u00e9matiques, ainsi qu’\u00e0 connecter des codes externes en C, C ++ et Fortran. Cython soutient \u00e9galement une interaction tr\u00e8s efficace avec les matrices Numpy, ce qui est tr\u00e8s simplifi\u00e9 \u00e0 ce sujet. La biblioth\u00e8que XML haute performance LXML est largement impl\u00e9ment\u00e9e dans Cython. Les biblioth\u00e8ques C externes libxml2 et libxslt sont connect\u00e9es \u00e0 l’interpr\u00e9teur Python. Un autre exemple de l’environnement des d\u00e9veloppeurs Cython Core est la biblioth\u00e8que MPI MPI4PY. Il connecte diverses impl\u00e9mentations MPI \u00e0 CPython. Dans l’index Python Package, il existe une courte liste d’autres biblioth\u00e8ques impl\u00e9ment\u00e9es dans Cython. [14] Pyrex – pr\u00e9d\u00e9cesseur de cython L’environnement \u00e0 terme Cpython \u00e0 terme d\u00e9vi\u00e9 \u00e0 aval; Bas\u00e9 sur LLVM Framework PyP-Jit-Compiler et environnement d’ex\u00e9cution Python qui est \u00e9crit dans un dialecte Python (RPYTHON) Compilateur JIT et optimiseur de code sp\u00e9cialis\u00e9s PSYCO pour l’environnement d’ex\u00e9cution CPYTHON Langage du langage de programmation de type Python Skin Skin Skin, compil\u00e9 selon C ++ \u2191 github.com . \u2191 un b Docs.cython.org . \u2191 github.com . (consult\u00e9 le 2 f\u00e9vrier 2020). \u2191 Cython: C-Extensions pour Python . (consult\u00e9 le 8 juillet 2018). \u2191 Versions originales du pr\u00e9d\u00e9cesseur Pyrex \u2191 La compatibilit\u00e9 avec Python 2 est un objectif d\u00e9clar\u00e9 pour le futur cython version 1.0 ( M\u00e9mento des Originaux \u00e0 partir du 10 ao\u00fbt 2011 dans Archives Internet ) Info: Le lien d’archive a \u00e9t\u00e9 utilis\u00e9 automatiquement et non encore v\u00e9rifi\u00e9. Veuillez v\u00e9rifier le lien d’origine et d’archiver en fonction des instructions, puis supprimez cette note. @d’abord @ 2 Vorlage: webachiv \/ iabot \/ wiki.cython.org \u2191 Tranches sur docs.python.org, consult\u00e9 le 2 ao\u00fbt 2018 \u2191 gmane.comp.python.cython.devel-pybench Comparaison par Cython et Cpython 2.6.2 \u2191 gmane.comp.python.cython.devel – Passer un pointeur de Python ( M\u00e9mento des Originaux \u00e0 partir du 14 f\u00e9vrier 2017 Archives Internet ) Info: Le lien d’archive a \u00e9t\u00e9 utilis\u00e9 automatiquement et non encore v\u00e9rifi\u00e9. Veuillez v\u00e9rifier le lien d’origine et d’archiver en fonction des instructions, puis supprimez cette note. @d’abord @ 2 Mod\u00e8le: webachiv \/ iabot \/ thread.gmane.org \u2191 PSYCO – Introduction \u2191 Vitesse de PYPY 1.4 par rapport \u00e0 Cpython 2.6.2 avec \/ sans PSYCO \u2191 C ++ – Benchmarks Wrapper pour divers g\u00e9n\u00e9rateurs de wrapper Python (sans cython) ( M\u00e9mento des Originaux \u00e0 partir du 4 avril 2015 Archives Internet ) Info: Le lien d’archive a \u00e9t\u00e9 utilis\u00e9 automatiquement et non encore v\u00e9rifi\u00e9. Veuillez v\u00e9rifier le lien d’origine et d’archiver en fonction des instructions, puis supprimez cette note. @d’abord @ 2 Mod\u00e8le: webachiv \/ iabot \/ t\u00e9l\u00e9com.inscporto.pt \u2191 C ++ – Benchmarks wrapper pour Cython, boost.python et pybindgen \u2191 Liste des packages Python impl\u00e9ment\u00e9s dans Cython sur PYPI (adsbygoogle = window.adsbygoogle || []).push({});after-content-x4"},{"@context":"http:\/\/schema.org\/","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@id":"https:\/\/wiki.edu.vn\/all2fr\/wiki1\/#breadcrumbitem","name":"Enzyklop\u00e4die"}},{"@type":"ListItem","position":2,"item":{"@id":"https:\/\/wiki.edu.vn\/all2fr\/wiki1\/cython-wikipedia\/#breadcrumbitem","name":"Cython – Wikipedia"}}]}]