Некоторые основные разъяснения о Python? - PullRequest
11 голосов
/ 29 января 2011

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

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

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

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

  4. Является ли Jython новым языком программирования или его синтаксис и другое программированиеконструкции выглядят точно так же, как оригинальный питон?или это просто Python, который может быть интегрирован с Java-кодом?

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

Ответы [ 4 ]

11 голосов
/ 29 января 2011

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

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

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

7 голосов
/ 29 января 2011
  1. Бывший.
  2. Полагаю, да. Строго говоря, «Python» относится только к языку (независимо от реализации) - но, если различие не важно (например, при обсуждении деталей реализации), оно также может относиться к реализациям. «CPython» - это однозначное название самой старой и наиболее широко используемой реализации, которая является стандартом де-факто.
  3. Ну, не совсем без проблем. Код C, который обрабатывает объекты Python, должен жонглировать с помощью PyObject * и использовать вспомогательную функцию, предоставляемую CPython, для преобразования, например. целое число Python для C int. Аналогично, код на C должен быть обернут в функции, принимающие и возвращающие PyObject *, предоставляющие функции и метаданные интерпретатору и т. Д. Вы также можете использовать, например, ctypes для вызова нативного кода (хотя это часто бывает болезненно), SWIG и т. Д. Для автоматизации переноса или Cython для написания модулей C на языке пересечения Python-C.
  4. Это еще одна реализация Python, то есть на том же языке. Основное отличие состоит в том, что код работает на JVM и поэтому может легко интегрироваться с Java (или Scala или Closure или любым другим языком JVM).
  5. Python - это язык. Jython является реализацией этого языка. Вы спрашиваете о разнице между C и GCC?
3 голосов
/ 29 января 2011

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

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

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

г) см. Б.

д) см. А и б.

1 голос
/ 29 января 2011

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

b) CPython является реализацией Python по умолчанию на C. Jython является реализацией на Java.* d) Jython является реализацией языка Python, написанного на Java.

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

...