HipHop (транслятор)

У этого термина существуют и другие значения, см. Хип-хоп (значения).
Запрос «HHVM»[d] перенаправляется сюда. На эту тему нужно создать отдельную статью.
HipHop for PHP (HPHPc)
Логотип программы HipHop for PHP (HPHPc)
Тип среда выполнения и транслятор
Разработчик Meta Platforms
Написана на C++, C, PHP
Первый выпуск 2 февраля 2010; 14 лет назад (2010-02-02)[1]
Последняя версия Заменён на HHVM[2][3] (2013; 11 лет назад (2013))
Репозиторий github.com/facebook/hiph…
Состояние Разработка прекращена
Лицензия PHP License
Сайт github.com/facebook/hiph…
HipHop Virtual Machine (HHVM)
Логотип программы HipHop Virtual Machine (HHVM)
Тип среда выполнения и транслятор
Разработчик Meta Platforms
Написана на C++, C
Первый выпуск 9 декабря 2011; 12 лет назад (2011-12-09)[4]
Последняя версия 4.172.3[5] (3 мая 2023; 12 месяцев назад (2023-05-03))
Репозиторий github.com/facebook/hiph…
Состояние активное
Лицензия PHP License and Zend License[6]
Сайт hhvm.com

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. Интерпретатор разрабатывался с целью экономии затрат времени на частую перекомпиляцию программного кода в процессе разработки.

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].

См. также

Примечания

  1. Haiping Zhao. HipHop for PHP: Move Fast  (неопр.). Facebook (2 февраля 2010). Дата обращения: 2 августа 2014. Архивировано 8 января 2015 года.
  2. Drew Paroski. Speeding up PHP-based development with HHVM  (неопр.). Facebook (29 ноября 2012). Дата обращения: 2 августа 2014. Архивировано 16 января 2013 года.
  3. Paul Tarjan. Joining, Retirement, Testing, and Bankruptcy  (неопр.). hhvm.com (13 мая 2013). Дата обращения: 2 августа 2014. Архивировано 8 августа 2014 года.
  4. Jason Evans. The HipHop Virtual Machine  (неопр.). Facebook (9 декабря 2011). Дата обращения: 2 августа 2014. Архивировано 30 ноября 2015 года.
  5. HHVM-4.172.3  (неопр.). Дата обращения: 18 сентября 2023. Архивировано 18 сентября 2023 года.
  6. facebook/hhvm: License  (неопр.). github.com. Facebook. Дата обращения: 2 августа 2014. Архивировано 23 мая 2021 года.
  7. HipHop for PHP: Move Fast Архивная копия от 4 декабря 2020 на Wayback Machine (англ.)
  8. PHP Creator Asks, Is Facebook’s HipHop Just a 'Nifty Trick'? (англ.)
  9. Сборка и запуск HipHop-PHP  (неопр.). Дата обращения: 20 июля 2013. Архивировано 23 июля 2013 года.
  10. Joining, Retirement, Testing, and Bankruptcy | HHVM  (неопр.). Дата обращения: 22 февраля 2015. Архивировано 28 февраля 2015 года.
  11. Julien Verlaguet, Alok Menghrajani (2014-03-20). "Hack: a new programming language for HHVM". facebook code. Архивировано 7 января 2019. Дата обращения: 24 марта 2014.
  12. hacklang.org — официальный сайт языка Hack
  13. Specification for Hack  (неопр.). github. Дата обращения: 22 февраля 2015.
  14. Joel Marcey (February 19, 2015). "Announcing a Specification for Hack". HHVM Blog. Архивировано 21 февраля 2015. Дата обращения: 22 февраля 2015.
  15. "Проект Wikipedia перешёл на использование HHVM для выполнения PHP-кода". OpenNET. 07.01.2015. Архивировано 22 февраля 2015. Дата обращения: 22 февраля 2015. {{cite news}}: Проверьте значение даты: |date= (справка)
  16. Brett Simmers (January 6, 2015). "Wikipedia on HHVM". HHVM Blog. Архивировано 22 февраля 2015. Дата обращения: 22 февраля 2015.
  17. HHVM — MediaWiki  (неопр.). Дата обращения: 22 февраля 2015. Архивировано 23 июня 2016 года.
  18. The Future of HHVM | HHVM  (неопр.). Дата обращения: 23 марта 2019. Архивировано 28 апреля 2019 года.
  19. Migrate to PHP 7 in WMF production  (неопр.). Дата обращения: 24 марта 2019. Архивировано 21 октября 2020 года.

Литература

  • 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
Перейти к шаблону «PHP»
Люди
Ресурсы
Реализации
Фреймворки
Тестирование
  • PHPUnit[англ.]
  • PHP Unit Testing Framework[англ.]
  • SimpleTest
  • lime[англ.]
  • Behat[англ.]
ORM
IDE
Компилятор
Widget toolkit[англ.]
Категория Категория
Перейти к шаблону «FOSS»
Главное
Сообщество
Организации
Лицензии
Проблемы
Прочее
  • Категория
  • Викисклад
  • Портал
Перейти к шаблону «Facebook navbox»
Сервисы
Facebook
Другие
Meta Quest
Закрытые
Люди
Основатели
Совет директоров
Руководство
Текущее
  • Марк Цукерберг (генеральный директор)
  • Крис Кокс[англ.] (вице-президент по продуктам)
  • Шерил Сэндберг (COO)
  • Эллиот Шрадж[англ.] (вице-президент по глобальным коммуникациям, маркетингу и публичной политике)
  • Майк Шрепфер (CTO)
  • Тед Улиот[англ.] (вице-президент и генеральный советник)
Бывшее
  • Шон Паркер (президент)
  • Оуэн Ван Натта[англ.] (COO)
  • Гидеон Ю[англ.] (финансовый директор)
  • Адам д'Анджело[англ.] (CTO)
  • Крис Келли[англ.] (директор по конфиденциальности)
  • Мэтт Коулер[англ.] (вице-президент по управлению продуктами)
  • Брет Тейлор[англ.] (CTO)
Известные
сотрудники
Текущие
  • Рэнди Цукерберг[англ.] (директор по маркетингу)
Бывшие
ПО
СМИ
Концепции
Бизнес
  • История Facebook[англ.]
  • Список слияний и поглощений Meta Platforms[англ.]
  • Facebook F8[англ.]
  • Первичное публичное размещение акций Facebook[англ.]
  • Цензура Facebook[англ.]
  • Критика Facebook
    • Скандал с Facebook и Cambridge Analytica[англ.]
    • Facebook Papers[англ.]
    • Вопросы конфиденциальности Facebook[англ.]
  • Иски с участием Meta Platforms[англ.]
Связанное