an1s1
Авг. 19, 2012 19:51:58
Надыбал пока только Cython, но он, судя по всему, ориентирован на написание библиотек. Есть что-то для трансляции питоно-подобного языка в Си? Заранее благодарен.
odnochlen
Авг. 19, 2012 20:02:39
А зачем?
Питон в си - это не совсем питон. Питон - динамический высокоуровневый язык, си - платформозависимый статический низкоуровневый.
И ты можешь в принципе написать и всю программу на Cython.
an1s1
Авг. 19, 2012 20:54:07
Тогда, наверно, на нем и остановлюсь. Теперь бы еще пару статеек по преобразованию готового кода на 3 ветке в код, способный компилиться Cython'ом найти… Буду весьма благодарен, если кто подкинет пару ссылок, а я тем временем в гугл.
odnochlen
Авг. 19, 2012 21:54:10
Сомневаюсь, что код можно на 100% преобразовать машиной. Разница между питоном и си огромная.
an1s1
Авг. 19, 2012 22:02:25
Не-а, там все очень хитро: все, что нельзя реализовать чистым Си реализуется с использованием PyAPI(насколько я понял с пары обзоров).
EBFE
Авг. 19, 2012 23:24:22
Может писать на pythone а запускать в PyPy?
В PyPy кстати тоже есть “преобразователь” - правда только под “RPython” (подмножество Pythona).
Еще есть Shedskin (C++).
an1s1
Авг. 20, 2012 11:05:12
Судя по этому посту:
http://habrahabr.ru/post/138537/ любой(ну или почти любой) питоновый код без проблем и изменений компилится cython'ом, PyPY же, насколько я знаю, этим похвастаться не может.
Shedskin посмотрю…
reclosedev
Авг. 20, 2012 11:41:12
an1s1
Авг. 20, 2012 11:50:55
reclosedev
Есть еще Nuitka (C++)
Ему/ей тоже нужен Python API или все необходимое внутри получившегося бинарника?
Судя по этой строчке нуждается, а значит не лучше, чем cython, который компилит мой любимый 3.2:
It translates the Python into a C++ program that then uses “libpython” to execute in the same way as CPython does, in a very compatible way.
EBFE
Авг. 20, 2012 14:49:25
Так вам что именно нужно?
Скорость выполнения (здесь PyPy рулит, ограничения: 2.7, gevent не поддерживается итд), “защита” кода (возможно хватит и обфускатора) или защита от взлома (в этом смысле С++ немного “лучьше”, хотя все упирается в концепцию - что нибудь вроде
“if registered(username, key) == True” ломается на раз, что в Pythone, что в Си) ?