Лайфхаки

Как сделать Python-код универсальным и быстрым: разработка нового компилятора

Краткое резюме

В статье обсуждается разработка компилятора для Python, который преобразует код в кроссплатформенный машинный код. Цель проекта — повысить скорость и портируемость Python-приложений, сделав их совместимыми с различными платформами.

В этой статье мы расскажем о создании компилятора для Python, который генерирует оптимизированные ядра и сохраняет простоту исходного кода. **Введение** Читатели часто интересуются, как работают интерпретаторы, компиляторы и среды исполнения. Python — популярный язык программирования, который ценят за простоту, но эта простота может привести к снижению производительности при высоких нагрузках. Автор этой статьи вместе с Юсуфом Олокобой, основателем компании Muna, решил рассмотреть, как можно улучшить скорость и портируемость кода Python. Для этого необходимо создать компилятор, который будет преобразовывать обычный код в быстрые и легко переносимые исполняемые файлы. Проект стартовал в начале 2024 года с целью разработки инструмента, способного компилировать исходный код Python в кроссплатформенный машинный код. Ранее предпринимались различные попытки достичь этой цели, включая разработку сред исполнения (Jython, RustPython), предметно-ориентированных языков (Numba, PyTorch) и даже новых языков программирования (Mojo). Однако требовался инструмент, который мог бы: * компилировать Python в полностью опережающем режиме без модификаций; * работать без интерпретатора Python и других интерпретаторов; * иметь минимальные накладные расходы по сравнению с программой, написанной на необработанном C или C++; * быть совместимым с различными платформами, включая серверы, ПК, мобильные устройства и браузеры. В статье подробно рассматривается, как возникла идея проекта, как началась реализация решения, и как оказалось, что ключевым элементом является искусственный интеллект. Также описывается, как удалось достичь обслуживания тысяч уникальных устройств в месяц и как в этом помогают скомпилированные функции, написанные на Python. **Контейнеры не всегда оптимальны для распространения сборок при работе с ИИ** Интерес к искусственному интеллекту возник у автора в 2018 году, когда этот термин ещё был известен как «глубокое обучение». На тот момент автор недавно окончил колледж и набирался опыта в своём первом стартапе, будучи сооснователем технологической компании.

Фильтры и сортировка