2011-01-29 12 views
11

Ostatniej nocy natknąłem się na termin o nazwie Jython, który był dla mnie nowością, więc zacząłem czytać o nim, aby dodać więcej do mojego zamieszania związanego z Pythonem. Nigdy tak naprawdę nie używałem Pythona. Więc o to mi chodzi.Kilka podstawowych wyjaśnień na temat Pythona?

  1. Python is implemented in C - Czy to znaczy, że interpreter został napisany w języku C lub ma interpreter Pythona konwersji kodu źródłowego w C?

  2. CPython to nic innego jak oryginalny Python & termin został po prostu ukuty, aby później odróżnić go od Jython - prawda czy fałsz?

  3. Teraz, gdy Python jest zaimplementowany w C (nie do końca pewien co to oznacza), ale czy to oznacza, że ​​python może być płynnie zintegrowany z dowolnym C-Code.

  4. Czy Jython jest nowym językiem programowania, czy też jego składnia jest podobna do oryginalnej wersji python? czy jest to po prostu python, który można zintegrować z kodem java?

  5. Jeśli żadne z powyższych pytań nie odpowiada na różnicę między Jythonem w języku Python, to co to jest?

+1

Zrozumienie związku Jythona z Pythonem i CPythonem może być łatwiejsze, jeśli spojrzy się na inne alternatywne implementacje języka Pythona. Pozostałe dwa, o których większość ludzi mówi to IronPython (Python on .NET) i PyPy (Python w Pythonie ... tak, to jest trippy). – chmullig

Odpowiedz

7
  1. Były.
  2. Przypuszczam, że tak. Ściśle mówiąc, "Python" odnosi się tylko do języka (bez względu na implementację) - ale chyba, że ​​rozróżnienie jest ważne (np. Podczas omawiania szczegółów implementacji), może również odnosić się do implementacji. "CPython" to jednoznaczna nazwa najstarszej, najszerzej stosowanej implementacji, która jest de facto standardem.
  3. Cóż, niezupełnie płynnie. Kod C, który obsługuje obiekty Pythona, musi żonglować z PyObject * i użyć funkcji pomocniczej dostarczonej przez CPython do konwersji np. liczba całkowita Python do C int. Podobnie, kod C musi być zawijany z funkcjami pobierającymi i zwracającymi PyObject *, wystawiającymi funkcje i metadane na interpreter, itp. Można również użyć np. ctypes do wywoływania kodu natywnego (choć często bolesne), SWIG itp. W celu zautomatyzowania owijania lub do pisania modułów C w języku Python-C-crossover.
  4. Jest to kolejna implementacja języka Python, tj. Ten sam język. Główną różnicą jest to, że kod działa na JVM i może w ten sposób łatwo zintegrować się z Javą (lub Scala lub Closure lub innym językiem JVM).
  5. Python to język. Jython jest implementacją tego języka. Czy pytasz o różnicę między C i GCC?
11

„Python” to nazwa samego języka, a nie konkretnej implementacji interpretera, tylko jako „C” to nazwa języka programowania, a nie konkretnego kompilatora.

"CPython" to implementacja interpretera języka Python napisanego w języku C. Kompiluje kod źródłowy Pythona do kodu bajtowego i interpretuje kod bajtowy. Jest to najstarsza i referencyjna implementacja języka Python.

"Jython" to kolejna implementacja języka Python. Przetwarza kod Pythona na kod bajtowy Java, który może być wykonany na wirtualnej maszynie Java.

3

a) Python jest językiem programowania. Interpretatorzy kodu Pythona są zaimplementowani przy użyciu innych języków programowania, takich jak C (PyPy, nawet w Pythonie).

b) CPython, znany również jako Klasyczny Python, jest implementacją odniesienia i jest napisany w języku C. Jython to interpreter języka Python napisany w Javie.

c) Używanie bibliotek C w Pythonie jest całkiem łatwe, np. przy użyciu modułu ctypes.

d) patrz b.

e) patrz ai b.

1

a) Domyślna i najczęściej stosowana implementacja językowa jest zapisana w c również caled CPython. Istnieje również na przykład Python zaimplementowany w Pythonie - http://codespeak.net/pypy/dist/pypy/doc/

b) CPython jest domyślną implementacją pytona w C. Jython jest implementacją w języku Java.

c) Tak.

d) Jython jest implementacją języka Python napisanego w języku Java.

e) CPython jest łatwo zintegrowany z odrobiną C, Jython to łatwa integracja z odrobiną Javy.

Powiązane problemy