Sonata

TypePHP — компилятор PHP в нативный машинный код

TypePHP — компилятор с опережающей компиляцией (AOT), который переводит исходный код PHP сначала в C++, а затем в нативный машинный код. В отличие от байткод-кеша или виртуальной машины, он не интерпретирует опкоды во время выполнения, а создаёт оптимизированные бинарные файлы, работающие напрямую на процессоре.

При этом сохраняется привычный синтаксис PHP, дополненный информацией о типах на этапе компиляции — это позволяет генерировать быстрый статически типизированный C++ код для критичных участков. Динамические значения PHP, встроенные функции, рефлексия и метаданные объектов продолжают взаимодействовать с рантаймом Zend через PHPX.

TypePHP полностью написан на PHP и является самодостаточным: бинарный файл компилятора собирается путём компиляции исходного кода самого компилятора с помощью TypePHP. Цепочка загрузки состоит целиком из PHP — без использования C или C++ в самом компиляторе.

Проект поддерживает три режима сборки: нативный исполняемый файл, PHP-расширение или разделяемую библиотеку из одной кодовой базы. Есть строго типизированные контейнеры, высокоточная арифметика (GMP, MPFR, libmpdec), проверки на этапе компиляции и кроссплатформенная поддержка Linux, Windows, macOS, а также WASM.

GitHub ★ 748

Загрузка страницы