Некоторые основные разъяснения о Python?

Вчера вечером я встретил термин под названием Jython, который был для меня новым, поэтому я начал читать об этом только для того, чтобы добавить больше к моей путанице в отношении Python в целом. Я никогда не использовал Python. Итак, вот что меня смущает.

  • Python is implemented in C - Означает ли это, что интерпретатор был написан на языке C или интерпретатор преобразует исходный код Python в C?

  • CPython - это не что иное, как оригинальный Python, и этот термин был просто придуман, чтобы позже отличить его от Jython - true или false?

  • Теперь, когда Python реализован в C (не совсем уверен, что это значит), но означает ли это, что python может быть легко интегрирован с любым C-кодом.

  • Является ли Jython новым языком программирования или его синтаксис и другие конструкции программирования выглядят точно так же, как исходный питон? или это просто python, который может быть интегрирован с java-кодом?

  • Если ни один из моих вышеуказанных вопросов не отвечает на разницу между Python и Jython, что это такое?

Ответ 1

  • Первый.
  • Полагаю, да. Строго говоря, "Python" относится только к языку (независимо от реализации), но если различие не важно (например, при обсуждении деталей реализации), оно также может ссылаться на реализации. "CPython" - это однозначное имя для самой старой, наиболее широко используемой реализации, которая является стандартом де-факто.
  • Ну, не совсем понятно. C-код, который обрабатывает объекты Python, должен жонглировать с помощью PyObject * и использовать вспомогательную функцию, предоставляемую CPython для преобразования, например. целое число Python для C int. Аналогично, код C должен быть обернут функциями, принимающими и возвращающими PyObject *, выставляя функции и метаданные интерпретатору и т.д. Вы также можете использовать, например. ctypes для вызова собственного кода (хотя это часто бывает больно), SWIG и т.д. для автоматизации обертывания или Cython для написания модулей C в Язык Python-C-crossover.
  • Это еще одна реализация Python, то есть того же языка. Основное отличие состоит в том, что код работает на JVM и может легко интегрироваться с Java (или Scala или Closure или любым другим языком JVM).
  • Python - это язык. Jython - это реализация этого языка. Вы просите разницу между C и GCC?

Ответ 2

"Python" - это имя самого языка, а не конкретной реализации интерпретатора, так же как "C" - это имя языка программирования, а не конкретного компилятора.

"CPython" представляет собой реализацию интерпретатора языка Python, написанного на C. Он компилирует исходный код Python в байтовый код и интерпретирует байтовый код. Это старейшая и эталонная реализация языка Python.

"Jython" - это еще одна реализация языка Python. Он преобразует код Python в байт-код Java, который может быть выполнен на виртуальной машине Java.

Ответ 3

a) Python - это язык программирования. Интерпретаторы кода Python реализованы с использованием других языков программирования, таких как C (PyPy даже с использованием самого Python для реализации, я полагаю).

b) CPython, aka Classic Python, является эталонной реализацией и написан на C. Jython - это интерпретатор Python, написанный на Java.

c) Использование библиотек C в Python довольно просто, например. используя модуль ctypes.

d) см. b.

e) см. a и b.

Ответ 4

a) Стандартная и наиболее широко используемая языковая реализация написана в c, также скопированной CPython. Существует также, например, Python, реализованный в Python - http://codespeak.net/pypy/dist/pypy/doc/

b) CPython - это стандартная реализация python по умолчанию в C. Jython - это реализация в Java.

c) Да.

d) Jython - это реализация письменности языка Python в Java.

e) CPython легко интегрируется с C, Jython легко интегрируется с Java.