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. Cython — Wikipédia
Cython — Wikipédia 👆 Click Here! Read More..
Un article de Wikipédia, l'encyclopédie libre.

Cet article est une ébauche concernant l’informatique.

Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants.

Cython
Logo.
Image illustrative de l’article Cython

Date de première version 2007
Paradigme Programmation impérative, procédurale, structurée
Auteur Greg Ewing
Développeur Stefan Behnel, Robert Bradshaw, Lisandro Dalcín, Mark Florisson, Vitja Makarov, Dag Sverre Seljebotn
Dernière version 3.2.3-1 (14 décembre 2025)[1]Voir et modifier les données sur Wikidata
Typage statique, faible
Influencé par Python
A influencé ...
Implémentations http://cython.org
Écrit en PythonVoir et modifier les données sur Wikidata
Licence Licence Apache 2.0[2] et licence Apache[3]Voir et modifier les données sur Wikidata
Site web cython.orgVoir et modifier les données sur Wikidata
modifier 

Cython est un langage de programmation et un compilateur qui simplifient l'écriture d'extensions compilées pour Python. La syntaxe du langage est très similaire à Python mais il supporte en plus un sous-ensemble du langage C/C++ (déclarations de variables, appel de fonctions, ...).

Le premier intérêt de Cython est qu'il produit du code nettement plus performant. Dans des programmes qui nécessitent par exemple la manipulation de grands tableaux, le gain peut aller jusqu'à un facteur 100[4]. Par ailleurs, Cython permet d'écrire des interfaces Python à des bibliothèques externes écrites en C ou C++.

Cython est disponible pour la plupart des systèmes d'exploitation.

Fonctionnement

[modifier | modifier le code]

Le langage Python dès son origine supporte l'écriture de modules écrits en langage C. Cependant, cette procédure est laborieuse et délicate. Le compilateur Cython convertit ses fichiers sources en langage Cython (extension .pyx) vers le langage C ou C++. Dans un deuxième temps, ces fichiers C/C++ sont compilés sous forme de bibliothèques prêtes à être utilisées avec Python.

Cython automatise entre autres :

  • la conversion automatique entre types Python et types C ;
  • la compatibilité Python 2/Python 3 ;
  • la gestion des erreurs.

Le compilateur Cython est lui-même écrit en Python.

Histoire

[modifier | modifier le code]

Cython est né comme sous-projet du logiciel libre de calcul formel SageMath en tant que fork du langage Pyrex. SageMath est un des logiciels qui utilise le plus de fonctionnalités de Cython.

Les programmes écrits en Cython possèdent l'extension .pyx. Dans sa forme la plus simple, le code source de Cython ressemble exactement au code source de Python. Cependant, alors que les variables, dans Python standard, sont typées dynamiquement ; le typage est facultatif. Ce qui permet d'améliorer les performances et de convertir les boucles Cython en boucles C lorsque cela est possible.

Par exemple :

def primes(int kmax):  # L'argument sera converti en nombre ou provoquera un TypeError.
    cdef int n, k, i  # Ces variables sont déclarées avec des types en C.
    cdef int p[1000]  # un autre typage C
    result = []  # un typage Python
    if kmax > 1000:
        kmax = 1000
    k = 0
    n = 2
    while k < kmax:
        i = 0
        while i < k and n % p[i] != 0:
            i = i + 1
        if i == k:
            p[k] = n
            k = k + 1
            result.append(n)
        n = n + 1
    return result

Utilisation dans le bloc-notes IPython/Jupyter

[modifier | modifier le code]

Un moyen plus simple de commencer avec Cython consiste à utiliser la ligne de commande IPython (ou via la console python dans le navigateur appelée Jupyter notebook)[5]:

In [1]: %load_ext Cython

In [2]: %%cython
   ...: def f(n):
   ...:     a = 0
   ...:     for i in range(n):
   ...:         a += i
   ...:     return a
   ...: 
   ...: cpdef g(int n):
   ...:     cdef long a = 0
   ...:     cdef int i
   ...:     for i in range(n):
   ...:         a += i
   ...:     return a
   ...: 

In [3]: %timeit f(1000000)
10 loops, best of 3: 26.5 ms per loop

In [4]: %timeit g(1000000)
1000 loops, best of 3: 279 µs per loop

ce qui donne une amélioration de 95 fois par rapport à la version en Python pur. Plus de détails sur le sujet dans la page officielle de démarrage rapide[6].

Notes et références

[modifier | modifier le code]
  1. ↑ a et b « Release 3.2.3-1 », 14 décembre 2025 (consulté le 15 décembre 2025)
  2. ↑ « https://github.com/cython/cython/blob/master/LICENSE.txt » (consulté le 2 février 2020)
  3. ↑ « Cython: C-Extensions for Python » (consulté le 8 juillet 2018)
  4. ↑ (en) « Working with NumPy — Cython 0.28a0 documentation », sur cython.readthedocs.io (consulté le 27 novembre 2017)
  5. ↑ Mark Lutz, Learning Python, 5th Edition (lire en ligne)
  6. ↑ « Building Cython code », sur cython.readthedocs.io (consulté le 24 avril 2017)

Liens externes

[modifier | modifier le code]
  • Site Cython officiel (en anglais)
  • Site de développement (github)
v · m
Langages de programmation
Concurrents
  • Ada
  • Erlang
  • Go
  • Modula-2
Déclaratifs
  • Clips
  • Prolog
  • Mercury
Fonctionnels
  • Clojure
  • Common Lisp
  • Erlang
  • F#
  • Gallina
  • Haskell
  • Lisp
  • ML
  • OCaml
  • Opa
  • Scheme
  • Standard ML
Impératifs
  • Algol
  • APL
  • Assembleur
  • Basic
  • BCPL
  • C
  • Cobol
  • DOPE
  • Forth
  • Fortran
  • Julia
  • Limbo
  • Lua
  • Modula-2
  • MUMPS
  • Natural
  • NQC
  • NXC
  • OPL
  • Pascal
  • Perl
  • PL/I
  • RPG
  • PowerShell
  • Rust
  • Tcl
  • WLangage
Orientés objet
  • ActionScript
  • AppleScript
  • C++
  • Common Lisp
  • C#
  • CoffeeScript
  • D
  • Delphi
  • Eiffel
  • Groovy
  • Haxe
  • Java
  • JavaScript
  • Lisaac
  • Logo
  • Objective-C
  • PHP
  • Python
  • Ruby
  • Scala
  • Scratch
  • Simula
  • Smalltalk
  • Swift
  • Kotlin
  • Visual Basic
  • Liste de langages de programmation
  • icône décorative Portail de l’informatique
  • icône décorative Portail de la programmation informatique
Ce document provient de « https://fr.teknopedia.teknokrat.ac.id/w/index.php?title=Cython&oldid=215379198 ».
Catégories :
  • Langage informatique
  • Python
  • Langage C
Catégories cachées :
  • Wikipédia:ébauche informatique
  • Page utilisant P348
  • Page utilisant P277
  • Page utilisant P275
  • Page utilisant P856
  • Article utilisant une Infobox
  • Portail:Informatique/Articles liés
  • Portail:Technologies/Articles liés
  • Portail:Programmation 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