2011-01-29 13 views
11

Anoche encontré el término llamado Jython, que era algo nuevo para mí, así que comencé a leer sobre él solo para agregar más a mi confusión sobre Python en general. Realmente nunca he usado Python. Entonces aquí está lo que estoy confundido.Algunas aclaraciones básicas sobre Python?

  1. Python is implemented in C - ¿Quiere decir que el intérprete fue escrito en C o no convertir el intérprete de código fuente de Python en C?

  2. CPython es nada más que el original de Python & el término fue acuñado para distinguir simplemente después de Jython - verdadero o falso?

  3. Ahora que Python está implementado en C (no muy seguro de lo que eso significa), pero ¿significa pitón puede integrarse con cualquier código C.

  4. ¿Es Jython como un nuevo lenguaje de programación o su sintaxis & otras construcciones de programación son exactamente similares a las de la pitón original? o es solo python que se puede integrar con el código java?

  5. Si ninguna de mis preguntas anteriores responde a la diferencia entre Python & Jython, ¿qué es?

+1

Entender la relación de Jython con Python y CPython puede ser más fácil si nos fijamos en algunas de las otras implementaciones alternativas del lenguaje python. Los otros dos de los que habla la mayoría de la gente son IronPython (Python en .NET) y PyPy (Python en Python ... sí, es truculento). – chmullig

Respuesta

7
  1. La primera.
  2. Supongo que sí. Estrictamente hablando, "Python" se refiere solo al lenguaje (independientemente de la implementación), pero a menos que la distinción sea importante (por ejemplo, cuando se analizan detalles de implementaciones), también puede referirse a implementaciones. "CPython" es un nombre inequívoco para la implementación más antigua y más ampliamente utilizada que es el estándar de facto.
  3. Bueno, no del todo sin problemas. El código C que maneja objetos Python tiene que hacer malabares con PyObject * y usar la función auxiliar proporcionada por CPython para convertir, p. un número entero de Python a C int. Del mismo modo, el código C tiene que estar envuelto con funciones que toman y devuelven PyObject *, exponiendo funciones y metadatos al intérprete, etc. También puede usar p. Ej. ctypes para llamar al código nativo (aunque a menudo es doloroso), SWIG, etc. para automatizar el ajuste o para escribir módulos C en un lenguaje Python-C-crossover.
  4. Es otra implementación de Python, es decir, el mismo lenguaje. La principal diferencia es que el código se ejecuta en la JVM y, por lo tanto, puede integrarse fácilmente con Java (o Scala o Closure o cualquier otro lenguaje JVM).
  5. Python es un idioma. Jython es una implementación de ese lenguaje. ¿Pregunta por la diferencia entre C y GCC?
11

"Python" es el nombre de la propia lengua, no de una aplicación intérprete en particular, simplemente como "C" es el nombre de un lenguaje de programación y no de un compilador en particular.

"CPython" es una implementación de un intérprete del lenguaje Python escrito en C. Compila el código fuente de Python en el código de bytes e interpreta el código de bytes. Es la implementación más antigua y de referencia del lenguaje Python.

"Jython" es otra implementación del lenguaje Python. Traduce el código de Python al código de bytes de Java, que se puede ejecutar en una máquina virtual Java.

3

a) Python es un lenguaje de programación. Los intérpretes del código Python se implementan usando otros lenguajes de programación como C (PyPy incluso utilizando Python para implementar uno, creo).

b) CPython, también conocido como Clásico Python, es la implementación de referencia y está escrito en C Jython es un intérprete de Python escrito en Java.

c) Usar las bibliotecas C en Python es bastante fácil, p. usando el módulo ctypes.

d) ver b.

e) vea a y b.

1

a) La implementación de lenguaje predeterminada y más ampliamente utilizada está escrita en c también llamado CPython. También hay, por ejemplo, Python implementado en Python - http://codespeak.net/pypy/dist/pypy/doc/

b) CPython es la implementación de python por defecto en C. Jython es la implementación en Java.

c) Sí.

d) Jython es la implementación del lenguaje Python escrito en Java.

e) CPython se integra fácilmente con C, Jython se integra fácilmente con Java.

Cuestiones relacionadas