Компилятор python
У меня есть несколько запросов относительно python
-
Почему нет компилятора python для создания собственного кода? Я нашел py2exe и т.д., Но они просто упаковывают интерпретатор python вместе с ними, и, следовательно, это снова интерпретатор, выполняющий код.
-
Невозможно создать компилятор python, как компилятор LISP, и, следовательно, код будет выполняться быстрее (по сравнению с С++)?
Спасибо,
Вини
Ответы
Ответ 1
Nuitka - Компилятор Python
Что это такое
Я думал, что должно быть возможно использовать компилятор для Python, лучшего компилятора, чем тот, который уже имеет CPython с его байт-кодом. Это то, что должно быть Nuitka.
Это моя попытка перевести чистый Python не в байт-код, а в машинный код (через компилятор С++), при использовании libpython во время выполнения. А затем выполнить время компиляции, а также запустить анализ времени, чтобы спекулятивно выполнять вещи в более быстром режиме, если будут выполнены определенные ожидания.
Ответ 2
Вопрос 1:
- Nuitka (код прямого Python для С++)
- ShedSkin (компилирует неявно статически типизированный Python на С++, автономные программы или
модули расширения)
- Cython (от надмножества Python до C
расширения. Cython происходит от Pyrex)
Вопрос 2:
Не уверен, если я получу это правильно, но, возможно, ответ:
- psyco (A Just in time compiler (JIT) для кода Python,
предшественник PyPy JIT)
Ответ 3
Ближайшими эквивалентами для Python являются cython и pypy.
Ответ 4
Есть, вроде.
-
См. Cython - у меня не было возможности полностью изучить его, но как лучше, чем я может сказать, он напрямую компилирует код Python. Вы также можете использовать (необязательный) статический ввод - это больше не будет ванильный Python, но это может привести к ускорению скорости, если вы сделаете это правильно. Также см. Это: Может ли Cython скомпилировать EXE?
-
Возможно, это связано с тем, что у меня нет большого опыта работы с Lisp, но я не совсем уверен в том, что вы подразумеваете под "созданием компилятора Python, как компилятор Lisp".
Ответ 5
Numba - это новый компилятор Python, основанный на NumPy и LLVM, который возвращается на CPython.