pitón

2012-01-06 14 views
13

Tengo algunas preguntas con respecto pitónpitón

  1. Por qué no hay compilador de Python para crear código nativo? He encontrado py2exe, etc. pero simplemente empaquetan un intérprete de Python junto con ellos y, por lo tanto, es nuevamente el intérprete que ejecuta el código.

  2. ¿No es posible crear un compilador de python como un compilador LISP y, por lo tanto, el código se ejecutará más rápido (en comparación con C++)?

Gracias, Vinay

+3

Puede encontrar esta pregunta interesante: http://stackoverflow.com/questions/138521/is-it-feasible-to-compile-python-to-machine-code – charlax

Respuesta

15

Nuitka – Python Compiler

Qué es

pensé que debería ser posible utilizar un compilador para Python, una mejor compilador de lo CPython ya cuenta con su código de bytes. Esto es lo que se supone que es Nuitka.

Es mi intento de traducir Python puro no en bytecode, sino en código de máquina (a través del compilador de C++), mientras uso libpython en tiempo de ejecución. Y luego para hacer el tiempo de compilación y también ejecutar análisis de tiempo para ejecutar especulativamente cosas en un modo más rápido si se cumplen ciertas expectativas.

+1

Gracias .. Esta es la primera vez que escucho esto después de buscar por bastante tiempo, y parece muy interesante. Esto era algo que estaba buscando ... :) No he comprobado cómo funciona. – Vinay

2

Los equivalentes más cercanos para Python son cython y pypy.

2

Hay, más o menos.

  1. Ver Cython - No he tenido la oportunidad de explorar a fondo todavía, pero lo mejor que puedo decir, que compila directamente el código Python. También puede usar el tipado estático (opcional): ya no será Python vainilla, pero puede hacer que aumente la velocidad, si lo hace bien. Además, vea esto: Can Cython compile to an EXE?

  2. Puede ser porque no tengo mucha experiencia con Lisp, pero no estoy del todo seguro con lo que quiere decir con 'crear un compilador de Python como un compilador Lisp'.

+0

Leo en algún lugar existe un compilador LISP y el rendimiento del programa LISP es comparable a C++. ¿Me equivoco? ¿Puede el compilador LISP crear un ejecutable nativo? – Vinay

+0

Ah, he entendido mal su pregunta original. Sí, algunos compiladores Lisp pueden crear ejecutables nativos. Cython (que he vinculado anteriormente) hace casi lo mismo. – Michael0x2a

8

Pregunta 1:

  • Nuitka (código directo Python a C++)
  • ShedSkin (compila implícita de tipos estáticos Python a C++, programas independientes o módulos de extensión)
  • Cython (Desde un superconjunto de Python a C extensiones.Cython proviene de Pyrex)

Pregunta 2:
No estoy seguro si lo entiendo correctamente, pero tal vez la respuesta es:

  • psyco (A Justo a tiempo compilador (JIT) para el código Python, el predecesor del PyPy JIT)
1

Numba es un nuevo compilador de Python basado en NumPy & LLVM, que cae de nuevo t o CPython.