Нуитка - Nuitka

Нуитка
Разработчики)Кей Хайен и другие
Стабильный выпуск
0.6.8 / 10 мая 2020; 6 месяцев назад (2020-05-10)
Репозиторийgithub.com/ Нуйтка/ Нуйтка
Написано вC, Python
Доступно ванглийский
Типкомпилятор исходного кода
ЛицензияЛицензия Apache 2.0
Интернет сайтhttps://nuitka.net/

Нуитка это источник в исходный компилятор который компилирует Python код для C исходный код, применяя некоторые оптимизации во время компиляции в процессе, такие как сворачивание и распространение констант, встроенное прогнозирование вызовов, вывод типов и выполнение условных операторов.[1][2] Первоначально Nuitka была разработана для создания кода C ++, но текущие версии создают исходный код C, используя только те функции C11 которые разделяют С ++ 03, что позволяет производить дальнейшую компиляцию в двоичный исполняемый формат современными компиляторами C и C ++, включая gcc, лязгать, MinGW, или же Microsoft Visual C ++. Он принимает код Python, совместимый с несколькими различными версиями Python (в настоящее время поддерживая версии 2.6, 2.7 и 3.3–3.8), и дополнительно позволяет создавать автономные программы, для которых не требуется установка Python на целевой компьютер.

Nuitka обсуждалась на конференции EuroPython 2012, и в конце того же года началась серьезная разработка. Теперь он поддерживает практически все функции языка Python.[3] В будущих выпусках запланированы дополнительные оптимизации времени компиляции, в том числе отказ от использования объектов Python для дополнительных переменных, тип которых может быть определен во время компиляции, особенно при использовании итераторов, что, как ожидается, приведет к значительному увеличению производительности.[4]

Ограничения

В настоящее время невозможно кросс-компиляция двоичные файлы (например, создание исполняемого файла в Windows и отправка его в Mac OS X).

Автономные двоичные файлы, созданные с использованием - автономный параметр командной строки включает встроенный CPython интерпретатор для обработки аспектов языка, которые не определяются при компиляции программы и должны интерпретироваться во время выполнения, например утка печатать, Обработка исключений, и динамическое выполнение кода ( оценка функция и exec функция или оператор) вместе с теми Python и собственными библиотеками, которые необходимы для выполнения, что приводит к довольно большим размерам файлов.

Дизайн Nuitka в значительной степени опирается на внутреннее устройство интерпретатора CPython и, как следствие, на другие реализации языка Python, такие как PyPy, Jython, и IronPython не может использоваться вместо CPython для интерпретатора и библиотеки времени выполнения.[1]

использование

Nuitka можно установить из репозиториев многих дистрибутивов Linux. Его также можно установить через пип и pip3, соответственно. Компиляция выполняется с помощью nuitka program.py или с самим Python (python -m nuitka program.py).

веб ссылки

Источники

  1. ^ а б Хайен, Кей (21.06.2012). "Руководство пользователя". Nuitka Home. Получено 2020-05-14.
  2. ^ Егулалп, Сердар (2018-10-02). «Компилятор Nuitka Python-to-C дает большой прирост производительности». InfoWorld. Получено 2020-05-14.
  3. ^ Егулалп, Сердар (19 декабря 2014 г.). «Компилятор Python в C ++ обещает более быстрое выполнение». InfoWorld. Получено 2020-05-14.
  4. ^ "Nuitka Changelog". GitHub. 2020-05-10. Получено 2020-05-14.