HipHop (транслятор)
HipHop for PHP (HPHPc, букв. HipHop для языка PHP) — транспайлер исходного кода, созданный компанией Meta Platforms и использовавшийся ранее в проектах компании. HipHop программно превращает исходный код, написанный на языке PHP, в оптимизированный код на C++, а затем использует компилятор g++ для его компиляции. HipHop включает в себя транслятор кода, альтернативную реализацию среды выполнения PHP, а также множество наиболее распространённых расширений PHP (англ. PHP Extensions), переписанных на C с целью повышения производительности[7].
HipHop был создан разработчиками социальной сети Facebook для экономии ресурсов их серверов. Код было решено выпустить 2 февраля 2010 года в виде открытого ПО[8]. Однако релиз кода был задержан из-за проблем с очисткой исходного кода от специфичных для Facebook расширений. Исходный код проекта стал доступен 20 февраля 2010 года[9].
Ими же был разработан HPHPi, представляющий собой экспериментальный интерпретатор PHP, предназначенный для отладки и быстрого прототипирования кода, не полностью совместимый с HPHPc. Интерпретатор разрабатывался с целью экономии затрат времени на частую перекомпиляцию программного кода в процессе разработки.
Общие сведения
| HipHop for PHP (HPHPc) | |
|---|---|
| Тип | среда выполнения и транслятор |
| Разработчик | Meta Platforms |
| Написана на | C++, C, PHP |
| Первый выпуск | 2 февраля 2010[1] |
| Последняя версия | Заменён на HHVM[2][3] (2013) |
| Репозиторий | github.com/facebook/hiph… |
| Состояние | Разработка прекращена |
| Лицензия | PHP License |
| Сайт | github.com/facebook/hiph… |
| HipHop Virtual Machine (HHVM) | |
|---|---|
| Тип | среда выполнения и транслятор |
| Разработчик | Meta Platforms |
| Написана на | C++, C |
| Первый выпуск | 9 декабря 2011[4] |
| Последняя версия | 4.167.0[5] (24 августа 2022) |
| Репозиторий | github.com/facebook/hiph… |
| Состояние | активное |
| Лицензия | PHP License and Zend License[6] |
| Сайт | hhvm.com |
HHVM
В 2011-ом году в Meta Platforms (в то время Facebook) была разработана первая версия HHVM — экспериментальной виртуальной машины, на тот момент предназначавшейся для исполнения и JIT оптимизации PHP кода. Наличие HHVM, в частности, позволило отказаться от параллельного использования интерпретатора HPHPi (в процессе разработки) и компилятора HPHPc (при эксплуатации). В 2013-ом году сервера facebook.com были переведены на использование HHVM[10].
20 марта 2014 года Meta Platforms был официально представлен язык программирования Hack[11], близкий к PHP и реализованный поверх HHVM, в котором дополнительно введена статическая типизация[12]. Первый вариант спецификации этого языка[13] опубликован 19 февраля 2015 года[14].
6 января 2015 года был окончен 9-месячный процесс перевода на использование HHVM серверов проекта Wikipedia, в ходе которого была проделана дополнительная работа по доработке HHVM[15][16][17].
В сентябре 2017 года Meta Platforms объявила[18], что более не ставит своей целью обеспечение совместимости HHVM с PHP (в пользу собственного языка Hack). В том же месяце началась миграция проекта Wikipedia на PHP 7[19].
См. также
Примечания
Литература
- Josh Lockhart. Chapter 12 HHVM and Hack // Modern PHP: New Features and Good Practices. — O’Reilly Media. — P. 187—204. — 268 p. — ISBN 978-1-4919-0518-0.
Ссылки
- Репозиторий проекта // Страница Facebook на GitHub (англ.)
- Facebook переписывает PHP (недоступная ссылка) // 3Dnews, 04.02.2010
- Facebook превратил PHP в C++ // Lenta.ru, 3 февраля 2010
- Facebook Technology Tasting — HipHop for PHP Архивная копия от 6 февраля 2010 на Wayback Machine // Ustream.tv — видеолекция, посвящённая проекту (англ.)
- «Хип-хоп» от Facebook превращает PHP в C++ Архивная копия от 11 февраля 2010 на Wayback Machine // 3DNews, 08.02.2010