Подтвердить что ты не робот

Компилятор python

У меня есть несколько запросов относительно python

  • Почему нет компилятора python для создания собственного кода? Я нашел py2exe и т.д., Но они просто упаковывают интерпретатор python вместе с ними, и, следовательно, это снова интерпретатор, выполняющий код.

  • Невозможно создать компилятор python, как компилятор LISP, и, следовательно, код будет выполняться быстрее (по сравнению с С++)?

Спасибо, Вини

4b9b3361

Ответ 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.