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

HipHop for PHP (HPHPc, букв. HipHop для языка PHP) — транспайлер исходного кода, созданный компанией Facebook и использовавшийся ранее в проектах компании. HipHop программно превращает исходный код, написанный на языке PHP, в оптимизированный код на C++, а затем использует компилятор g++ для его компиляции. HipHop включает в себя транслятор кода, альтернативную реализацию среды выполнения PHP, а также множество наиболее распространённых расширений PHP (англ. PHP Extensions), переписанных на C с целью повышения производительности[7].

HipHop for PHP (HPHPc)
Тип среда выполнения и транслятор
Разработчик Facebook
Написана на C++, C, PHP
Первый выпуск 2 февраля 2010 (2010-02-02)[1]
Последняя версия Заменён на HHVM[2][3] (2013 (2013))
Состояние Разработка прекращена
Лицензия PHP License
Сайт github.com/facebook/hiph…
HipHop Virtual Machine (HHVM)
Тип среда выполнения и транслятор
Разработчик Facebook
Написана на C++, C
Первый выпуск 9 декабря 2011 (2011-12-09)[4]
Последняя версия 3.25.2[5] (30 марта 2018 (2018-03-30))
Состояние Active
Лицензия PHP License and Zend License[6]
Сайт hhvm.com

HipHop был создан разработчиками социальной сети Facebook для экономии ресурсов их серверов. Код было решено выпустить 2 февраля 2010 года в виде открытого ПО[8]. Однако релиз кода был задержан из-за проблем с очисткой исходного кода от специфичных для Facebook расширений. Исходный код проекта стал доступен 20 февраля 2010 года[9].

Ими же был разработан HPHPi, представляющий собой экспериментальный интерпретатор PHP, предназначенный для отладки и быстрого прототипирования кода, не полностью совместимый с HPHPc. Интерпретатор разрабатывался с целью экономии затрат времени на частую перекомпиляцию программного кода в процессе разработки.

HHVM

В 2011-ом году в Facebook была разработана первая версия HHVM — экспериментальной виртуальной машины, на тот момент предназначавшейся для исполнения и JIT оптимизации PHP кода. Наличие HHVM, в частности, позволило отказаться от параллельного использования интерпретатора HPHPi (в процессе разработки) и компилятора HPHPc (при эксплуатации). В 2013-ом году сервера facebook.com были переведены на использование HHVM[10].

20 марта 2014 года Facebook был официально представлен язык программирования Hack[11], близкий к PHP и реализованный поверх HHVM, в котором дополнительно введена статическая типизация[12]. Первый вариант спецификации этого языка[13] опубликован 19 февраля 2015 года[14].

6 января 2015 года был окончен 9-месячный процесс перевода на использование HHVM серверов проекта Wikipedia, в ходе которого была проделана дополнительная работа по доработке HHVM[15][16][17].

В сентябре 2017 года Facebook объявила[18], что более не ставит своей целью обеспечение совместимости HHVM с PHP (в пользу собственного языка Hack). В том же месяце началась миграция проекта Wikipedia на PHP 7[19].

См. также

Примечания

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

Литература

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


Ссылки

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.