Python, Cython, Jython, RPython

Odpowiedz Nowy wątek
2020-03-13 14:35

Rejestracja: 1 rok temu

Ostatnio: 2 tygodnie temu

0

Cześć, czy jest tu ktoś, kto mógłby w miarę zwięźle wytłumaczyć charakterystykę języków/technologii podanych w temacie? Jak wygląda "przepisanie" języka python na C(Cython)?

Pozostało 580 znaków

2020-03-13 14:48

Rejestracja: 2 lata temu

Ostatnio: 1 minuta temu

2

Teoretycznie Python to jezyk programowania, czy inaczej: specyfikacja jezyka programowania. Najpopularniejsza implementacja (na ktora zwyczajowo tez sie mowi Python) to CPython, czyli interpreter napisany w C.

Jython to interpreter napisany w Javie.

Cython to kompilowany superset Pythona, czyli Python ze sterydami - mozna w nim pisac jak w C uzywajac skladni Pythona. Teoretycznie kazdy kod napisany w Pythonie powinien bez zmian przejsc przez kompilator Cythona.

RPython to podzbior Pythona, z tego co kojarze celem ograniczenia pewnych funkcji bylo wycisniecie jak najlepszego performance'u, poniewaz RPython to narzedzie stworzone z mysla o pisaniu interpreterow. PyPy jest napisany w RPythonie - czyli jest interpreterem Pythona napisanym w Pythonie :)

Pozostało 580 znaków

2020-03-13 14:53

Rejestracja: 14 lat temu

Ostatnio: 2 minuty temu

1

Można jeszcze dołożyć https://github.com/graalvm/graalpython - na razie mocno w powijakach, więc kompatybilność i wydajność pozostawiają wiele do życzenia, ale już (oprócz uruchamiania stanardowego kodu Pythonowego) umożliwia polyglot programming: https://github.com/graalvm/gr[...]/master/docs/user/POLYGLOT.md


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.

Pozostało 580 znaków

2020-03-13 15:06

Rejestracja: 3 lata temu

Ostatnio: 3 minuty temu

0

Jak wygląda "przepisanie" języka python na C(Cython)?

Zobacz na przykład tutaj:
https://pythonprogramming.net[...]n-and-basics-cython-tutorial/
A jak to działa w praktyce, np., tutaj:
https://lion137.blogspot.com/[...]-up-python-edit-distance.html


Pozostało 580 znaków

2020-03-13 17:52

Rejestracja: 1 rok temu

Ostatnio: 26 sekund temu

0
  1. Warto zerknąć na C-API zwykłego Pythona, choćby pobieżnie, by zrozumieć "jak to chodzi". Bogato opisane w oficjalnej dokumentacji "Extending and Embedding"
  2. Był/jest jeszcze dotnetowy Python zwany IronPython, chyba już odstawiony na bok i coś się robi na Graalu (informacja nieoficjalna)
edytowany 1x, ostatnio: AnyKtokolwiek, 2020-03-13 17:53
coś się robi na Graalu - no przecież napisałem o co dokładnie chodzi - Wibowit 2020-03-13 18:06

Pozostało 580 znaków

2020-03-21 22:11

Rejestracja: 12 lat temu

Ostatnio: 2 dni temu

0

CPython jest napisany w C, źródła są na GitHubie. Mi jako elektronikowi z wykształcenia bardzo przyjemnie jest przejść z C na Pythona, bardzo upraszcza wiele procesów, zarządza dobrze pamięcią (zainteresuj się porównaniem zarządzaniem pamięcią w Pythonie i w Javie albo C#, jakie są różnice). Można wyróżniać mnóstwo zalet tego języka, żałuję że wcześniej się nim nie zainteresowałem.

zainteresuj się porównaniem zarządzaniem pamięcią w Pythonie i w Javie albo C#, jakie są różnice - takie, że w Javie i C# mamy tylko tracing GC, a w CPythonie hybrydę tracing GC + reference counting, bo samo zliczanie referencji w ogólności zawodzi (prowadzi do wycieków pamięci). - Wibowit 2020-03-22 06:40

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0