Это сайт — моя персональная записная книжка. Интересна мне, по большей части, история, своя жизнь и немного программирование.

HipHop PHP

Как я и думал, HipHop for PHP, о котором все говорят, оказался транслятором PHP на компилируемый язык, со всеми вытекающими:

ipHop for PHP isn’t technically a compiler itself. Rather it is a source code transformer. HipHop programmatically transforms your PHP source code into highly optimized C++ and then uses g++ to compile it. HipHop executes the source code in a semantically equivalent manner and sacrifices some rarely used features — such as eval() — in exchange for improved performance.

В данном случае, трансляция идёт в C++. Вытекает из этого то, что вещи, которые трудно компилировать, просто выкинут из языка. В тексте упоминается eval, но наверняка из языка исключили create_function, переменные переменные ($$var, $$$var и так далее), возможно — вызов метода через переменную ($obj->$method), может что-то ещё, сходу трудно сообразить. Различные тонкости тоже вряд ли учтут.

Но даже в таком варианте это неплохо.

Кстати, ничего не ново под луной, семь лет назад какие-то ребята уже делали транслятор из PHP в C++, проект благополучно помер. Я, кстати, думаю, может проект и не помер, может это он и есть и его только-только до ума довели?

4 комментария
dr_vlat.livejournal.com 2010

Мммм, а зачем может понадобиться транслировать php в плюсы ? Разве что для придания php коду скорости, но так оно уже (АФАИК) хранится в байткоде в памяти благодаря Zend-у. Да и вряд ли грамотно написаный на php код сильно уступит по быстродействию автоматически-транслированному.

Есть идеи где можно такой транслятор заюзать ?

Евгений Степанищев (bolknote.ru) 2010

Комментарий для dr_vlat.livejournal.com:

Есть идеи где можно такой транслятор заюзать?

Для придания коду скорости, конечно же.

вряд ли грамотно написаный на php код сильно уступит по быстродействию автоматически-транслированному.

Уступит очень сильно. Я думаю, речь идёт, местами, об ускорении в десятки, а то и сотни раз.

Глеб Арестов (gleb-arestov.moikrug.ru) 2010

http://alexmoskalyuk.livejournal.com/1008927.html
вот тут ещё подробности + комментарии от русскоговорящего сотрудника фсбука

Евгений Степанищев (bolknote.ru) 2010

Комментарий для gleb-arestov.moikrug.ru:

В исходной статье подробностей больше, но спасибо за ссылку!