fbpx
Wikipedia

Cython

Cython es un lenguaje de programación para simplificar la escritura de módulos de extensión para Python en C y C++. Siendo estrictos, la sintaxis de Cython es la misma de Python pero con algunos agregados:

  • Se pueden llamar funciones en C, o funciones/métodos de C++, directamente desde el código en Cython.
  • Es posible usar tipos estáticos en las variables (enteros, flotantes, o cualquier tipo de dato).
Cython
Desarrollador(es)
Robert Bradshaw, Stefan Behnel, et al.
https://cython.org
Información general
Paradigma multiparadigma: orientado a objetos, imperativo, funcional, reflexivo
Apareció en 28 de julio de 2007
Sistema de tipos fuerte, estático, dinámico
Influido por C, Python
Licencia Licencia Apache, versión 2.0

Cython compila a código en C o C++ desde Python, y el resultado puede ser usado desde Python como un "Modulo de extensión", o como una aplicación embebida en el intérprete CPython.

Historia

Cython es un proyecto derivado de Pyrex, pero implementa más funcionalidades y optimizaciones que este.[1]

Los archivos Cython tienen una extensión .pyx. En su forma más básica, el código Cython se ve exactamente como el código Python.[2][3]​ Sin embargo, mientras que Python estándar se escribe dinámicamente, en Cython, los tipos se pueden proporcionar opcionalmente, lo que permite un rendimiento mejorado, permitiendo que los bucles se conviertan en bucles C siempre que sea posible. Por ejemplo:[4]

def primes(int kmax): # The argument will be converted to int or raise a TypeError. cdef int n, k, i # These variables are declared with C types. cdef int p[1000] # Another C type result = [] # A Python type 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 

Ventajas

La ventaja esencial de este enfoque, es que al entremezclar perfectamente código Python/C (es decir, C usando <python.h>) es que el código Python existente se puede ajustar a casi la velocidad de C con solo añadir unos pocos tipos estáticos a las declaraciones y haciendo algunas adaptaciones en los bucles críticos -sin necesidad de una interfaz complicada o muy invasiva del código. La velocidad de codificación y la legibilidad del código sigue siendo bastante Pythonica.

Debido a reducción del consumo general en las estructuras de control (especialmente los bucles), las optimizaciones optimistas y la (limitada) inferencia de tipos, el código Python compilado con Cython normalmente se ejecuta más rápido que en el intérprete CPython 2.6.x, aunque las mejoras absolutas dependen en gran medida del código. Con las declaraciones de tipos estáticos, la aceleración típica en cálculos numéricos/matriciales es de 100x-1000x[5]​ En comparación a la típica optimización con Psyco (Python JIT compiler) qué es entre 4x-100x.[6]

Compatibilidad

Cython está escrito en Python, así que trabaja en Windows, Linux, y MacOS X.

Usos

  • SageMath, un sistema de álgebra computacional está parcialmente escrito en Cython.

Referencias

  1. Differences between Cython and Pyrex el 25 de julio de 2011 en Wayback Machine.
  2. «Differences between Cython and Pyrex». 
  3. Ewing, Greg (21 March 2011). «Re: VM and Language summit info for those not at Pycon (and those that are!)» (Message to the electronic mailing-list python-dev). Consultado el 5 de mayo de 2011. 
  4. Zed Shaw (2017). Learn Python the hard way. Addison-Wesley Professional. ISBN 978-0134692883. 
  5. . Archivado desde el original el 14 de febrero de 2017. Consultado el 3 de mayo de 2011. 
  6. Psyco - Introduction

Páginas externas

  • Sitio web oficial
  •   Datos: Q975594

cython, lenguaje, programación, para, simplificar, escritura, módulos, extensión, para, python, siendo, estrictos, sintaxis, misma, python, pero, algunos, agregados, pueden, llamar, funciones, funciones, métodos, directamente, desde, código, posible, usar, tip. Cython es un lenguaje de programacion para simplificar la escritura de modulos de extension para Python en C y C Siendo estrictos la sintaxis de Cython es la misma de Python pero con algunos agregados Se pueden llamar funciones en C o funciones metodos de C directamente desde el codigo en Cython Es posible usar tipos estaticos en las variables enteros flotantes o cualquier tipo de dato CythonDesarrollador es Robert Bradshaw Stefan Behnel et al https cython orgInformacion generalParadigmamultiparadigma orientado a objetos imperativo funcional reflexivoAparecio en28 de julio de 2007Sistema de tiposfuerte estatico dinamicoInfluido porC PythonLicenciaLicencia Apache version 2 0 editar datos en Wikidata Cython compila a codigo en C o C desde Python y el resultado puede ser usado desde Python como un Modulo de extension o como una aplicacion embebida en el interprete CPython Indice 1 Historia 2 Ventajas 3 Compatibilidad 4 Usos 5 Referencias 6 Paginas externasHistoria EditarCython es un proyecto derivado de Pyrex pero implementa mas funcionalidades y optimizaciones que este 1 Los archivos Cython tienen una extension pyx En su forma mas basica el codigo Cython se ve exactamente como el codigo Python 2 3 Sin embargo mientras que Python estandar se escribe dinamicamente en Cython los tipos se pueden proporcionar opcionalmente lo que permite un rendimiento mejorado permitiendo que los bucles se conviertan en bucles C siempre que sea posible Por ejemplo 4 def primes int kmax The argument will be converted to int or raise a TypeError cdef int n k i These variables are declared with C types cdef int p 1000 Another C type result A Python type if kmax gt 1000 kmax 1000 k 0 n 2 while k lt kmax i 0 while i lt 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 resultVentajas EditarLa ventaja esencial de este enfoque es que al entremezclar perfectamente codigo Python C es decir C usando lt python h gt es que el codigo Python existente se puede ajustar a casi la velocidad de C con solo anadir unos pocos tipos estaticos a las declaraciones y haciendo algunas adaptaciones en los bucles criticos sin necesidad de una interfaz complicada o muy invasiva del codigo La velocidad de codificacion y la legibilidad del codigo sigue siendo bastante Pythonica Debido a reduccion del consumo general en las estructuras de control especialmente los bucles las optimizaciones optimistas y la limitada inferencia de tipos el codigo Python compilado con Cython normalmente se ejecuta mas rapido que en el interprete CPython 2 6 x aunque las mejoras absolutas dependen en gran medida del codigo Con las declaraciones de tipos estaticos la aceleracion tipica en calculos numericos matriciales es de 100x 1000x 5 En comparacion a la tipica optimizacion con Psyco Python JIT compiler que es entre 4x 100x 6 Compatibilidad EditarCython esta escrito en Python asi que trabaja en Windows Linux y MacOS X Usos EditarSageMath un sistema de algebra computacional esta parcialmente escrito en Cython Referencias Editar Differences between Cython and Pyrex Archivado el 25 de julio de 2011 en Wayback Machine Differences between Cython and Pyrex Ewing Greg 21 March 2011 Re VM and Language summit info for those not at Pycon and those that are Message to the electronic mailing list python dev Consultado el 5 de mayo de 2011 Zed Shaw 2017 Learn Python the hard way Addison Wesley Professional ISBN 978 0134692883 gmane comp python cython devel Passing a pointer from Python Archivado desde el original el 14 de febrero de 2017 Consultado el 3 de mayo de 2011 Psyco IntroductionPaginas externas EditarSitio web oficial Datos Q975594 Obtenido de https es wikipedia org w index php title Cython amp oldid 139225224, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos