Возможна ли конвертация php скрипта - программы в програму на языке с или с++ ?

ONK

Пассивист PHPСluba
fixxxer, расскажи чуть поподробнее. ;)
Я бы с удовольствием послушал о том, как это можно сделать. :)
 

Screjet

Новичок
В ПХП реально один недостаток: mod_php
Неясно: зачем постоянно таскать с собой парсер,
неясно: зачем каждый раз пхп-код компилить в байт-код,
неясно: для чего постоянно таскать с собой метаданные.
== это все зазря потраченная память и время.

Было бы просто здорово, если бы эти все этапы были готовы до HTTP-запроса.
 

neko

tеam neko
ONK
neko, я не считаю ПХП экзекутор ВМ. У него другой принцип работы. У нас видимо разное понимание что такое ВМ.
не считай
я тебе рассказал, что это такое, в общепринятом смысле.
можешь думать дальше все что угодно.

Автор оригинала: ONK
fixxxer, расскажи чуть поподробнее. ;)
Я бы с удовольствием послушал о том, как это можно сделать. :)
это очень показательный юмор.
показательный в том, смысле что дискуссия свернулась куда она у вас обычно сворачивается.
в дебри невежества.

если тебе действительно это интересно сходи прочитай про symbiotic lisp machines и java чипы.

Автор оригинала: Screjet
В ПХП реально один недостаток: mod_php
Неясно: зачем постоянно таскать с собой парсер,
неясно: зачем каждый раз пхп-код компилить в байт-код,
неясно: для чего постоянно таскать с собой метаданные.
== это все зазря потраченная память и время.

Было бы просто здорово, если бы эти все этапы были готовы до HTTP-запроса.
я бы это с радостью прокомментировал
но ты облададаешь просто уникальной способностью из знакомых, вроде бы всем слов, строить абсолютно бессмыслнные фразы.
но главное ты что-то там веское про память сказал.
молодец, отметился.
если ты путаешь пхп, с организацией веб-сервера ранее известного как apache.
мне нечего, право, сюда добавить.

короче стало скучно.

-~{}~ 09.06.05 15:21:

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

крейзи. почему ты бездействуешь ;-)
 

ONK

Пассивист PHPСluba
Screjet, всё что тебе неясно проистекат от того что в ПХП просто нет байткода.

neko, java чипы исполняю Java байт код, в чём нет ничего странного так как это поток полноценных инструкций, поэтому не надо показывать своё невежество. ;) Совсем другое дело аппаратное исполнение языка типа ПХП, хотя чисто теоретически и это возможно, всего-то надо засунуть аппаратный компилятор ПХП кода в некий байт код (например в тот же Java байткод).

-~{}~ 09.06.05 15:45:

neko, и не надо никого призывать, у людей есть своя голова на плечах, чтобы обойтись без твоих подсказок.
 

ONK

Пассивист PHPСluba
Screjet, В ПХП нет потока инструкций виртуально процессора аналогичного Java байткоду. В ПХП есть так называемый "опкод", который, если упрощённо говорить, представляет собой структуру данных и инструкций, которые обрабатываются экзекутором. Экзекутор вызывает в соответствии с инструкциями опкода заранее откомпилированные процедуры. Весь набор необходимых процедур есть в откомпилированном и пригодном для исполнения на текущем физическом процессоре виде.

Заодно поясню, что я считаю ВМ. ВМ это программа, преобразующая поток инструкций абстрактного процессора в поток инструкций физического процессора, на котором этот поток инструкций и исполняется. В ПХП такого нет (не только в нём). Если считать экзекутор ПХП ВМ, то под ВМ можно подвести, и интерпретаторы командных строк, и даже калькуляторы... ;) (в этом случае могу похвастаться что написал несколько разных ВМ).
 

texrdcom

Новичок
Этож надо как людям делать не чего а всего на всего был вопрос видел кто то соответствующею программу или нет.
:) возмоно или не раельно? вот и все !
 

Screjet

Новичок
ONK
представляет собой структуру данных и инструкций
Может, правильней назвать: структурированный набор инструкций?

Так чем же тогда принципиально отличается обработчик инструкций CPU от ПХП-экзекутера, не учитывая метаданные и разный уровень абстрагирования?

-~{}~ 09.06.05 17:28:

texrdcom
Тебе уже дали ссылку
http://binaryphp.sourceforge.net/wakka.php?wakka=HomePage
Скачивай, пробуй.
 

texrdcom

Новичок
-- спасибо хоть и прочитал несколько раз топик пропустил!!!!
Если посмотреть топик то люди в шоке зачем это надо фигня,
а я скажу не фигня хто пробовал когдато написать что то на с или
на с++ для веба поймет меня, (попробуй сделать обработку на подобие регулярных выражений на с или с++ ну и так далее)
На php пишеться легко (мне :) )
Но иногда нужна скорость с например для обработки больших масивов данных или чего то еще не обезательно через сервер - через cron ну и начинаеться!
Кому будет интерестно вот ссылка на не которые программы которые я искал - есть даже комерчиский проэкт - значит все таки есть спрос на данный продукты и не я токой уникальный что
задал такой вопрос!
http://www.sevsky.net/index.php?option=content&task=view&id=31&Itemid=44
 

ONK

Пассивист PHPСluba
Screjet,
Может, правильней назвать: структурированный набор инструкций?
Это игра слов, назвать можно как угодно, но надо ввести в название отличие от байткода, сущность этих отличий я уже описал.

Так чем же тогда принципиально отличается обработчик инструкций CPU от ПХП-экзекутера, не учитывая метаданные и разный уровень абстрагирования?
Отличается тем, что для каждого элементарного действия в контексте экзекутора вызывается подпрограмма, которая и выполняет эти действия, надеюсь ненужно объяснять почему это значительно менее эффективно чем исполнение инструкций процессором? Кто тому-же если посмотреть исходники, то можно заметить что даже самые элементарные операции (например сравнение) реализуются весьма не тривиально, с динамическим выбором метода сравнения и привидения к необходимому типу, в результате скорость исполнения на 2 порядка ниже.

ПС. Теоретически можно разработать комплекс из компилятора ПХП - байткод и виртуальной машины, но эта штука будет не пригодна для классического применения, так как процесс компилирования в байт код задача несравнимо более сложная, чем парсировка в опкод. Такой программный комплекс имеет смысл в тандеме со средством кэширования байткода и совершенно неприемлем для шаредхостинга. К тому же есть проблемы если include* и require* легко откомпилировать и кэшировать, то что делать с eval()? Предполагаю что придётся сохранять и классический ПХП экзекутер, в общем получается какой-то монстр. Не знаю, может в Zend-e и работают над такой «штуковиной».

texrdcom, если у тебя возникли проблемы с регулярными выражениями, значит ты плохо изучал вопрос, их не в ПХП изобрели, это С-ишные библиотеки. Другое дело что на ПХП писать в 10 раз легче.
 

AnToXa

prodigy-одаренный ребенок
texrdcom
а я скажу не фигня хто пробовал когдато написать что то на с или
на с++ для веба поймет меня, (попробуй сделать обработку на подобие регулярных выражений на с или с++ ну и так далее)
мой юный друг.
обработка регулярных выражений в php построена (сюрприз!) на библиотеке pcre в частности, которая написана на C.

на C++ написано несколько разных библиотек для всех этих дел, некоторые просто обертки вокруг pcre, некоторые - полностью самостоятельные.
причем на C++ у меня даже синтаксис буддет такой же почти как на php, даже чуть удобнее в некоторых местах.

вы просто не умеете их готовить.
 

Screjet

Новичок
Отличается тем, что для каждого элементарного действия в контексте экзекутора вызывается подпрограмма, которая и выполняет эти действия, надеюсь ненужно объяснять почему это значительно менее эффективно чем исполнение инструкций процессором?
Что же тогда делает процессор, когда получает очередную инструкцию? Не то же самое?

Насчет эффективности: разве процессор умеет сравнивать, скажем, строки? или списки? или объекты? Если бы процессор был бы эффективнее всякого рода ВМ, то смысл было бы изобретать и реализовывать последние?
 

AnToXa

prodigy-одаренный ребенок
Насчет эффективности: разве процессор умеет сравнивать, скажем, строки? или списки? или объекты? Если бы процессор был бы эффективнее всякого рода ВМ, то смысл было бы изобретать и реализовывать последние?
это очевидно - платформонезависимость + возможность runtime компиляции в нативный код, совмещая достоинства скорости процессора и независимости от него самой программы и даже байткода.

-~{}~ 09.06.05 18:32:

+ возможность динамически этот код оптимизировать.
 

ONK

Пассивист PHPСluba
Screjet,
Что же тогда делает процессор, когда получает очередную инструкцию? Не то же самое?
Нет, не тоже самое, т.к. инструкция выполняется обычно за один такт.

Для выполнения каждой операции ПХП экзекутор делает вызов подпрограммы, а для этого процессору потребуется выполнить целый набор инструкций, дальше он будет выполнять все инструкции в данной подпрограмме, а так как подпрограмма скомпилирована заранее, она содержит все возможные операции, которые могут потребоваться для поддерживаемых ею типов данных + операции приведения. Есть множество операций, которые процессор будет делать за один такт, а ПХП экзекутор заставит исполнить процессор до ~1000 инструкций (большинство операций с целыми числами и числами с плавающей точкой). На таком коде проигрыш будет самым большим.
Разница уменьшается с ростом сложности исполняемой экзекутором заранее скомпилированной подпрограммы.

Теоретически ВМ может порождать из инструкций байткода более эффективный набор процессорных инструкций, чем скомпилированная неизвестно где, неизвестно на каком компиляторе с неизвестно какими опциями программа. Ведь ВМ доступна вся информация о текущем процессоре, в том числе и поддерживаемых наборах сложных инструкций, каждая из которых заменяет множество простых (MMX SSE 3Dnow!) . При этом байт код полностью платформенно независим и переносим. Но это опять же не о ПХП.
 

snaiper

Guest
Смысл есть !!! И те кто говорят "накой?", пусть знают !!
Это нужно для того, что бы увидеть как те или иные функции выглядят в нормальном сишном коде, +есть возможность откомпилить получишвийся сишник в запускаемый файл под любую ОС! И присутствует элемент закрытия кода !
 

phprus

Moderator
Команда форума
snaiper
Вот тут ты сильно заблуждаешся. как раз таки php скрипт можно запустить на любой ОС где есть интерпритатор Php, а вот С-программы нужно будет каждый раз перекомпилировать и еще могут возникать ошибки из-за несовместимости различных ОС.
 

snaiper

Guest
phprus
Вот у меня например стоит проблема спрятать пхп код.
Скомпилировав пхп файл,у меня получается готовый продукт, за который я уверен :)
И без всяческих проблем можно использовать програму.

А про вопрос с ОС - это не принципиально... Нужна винда :)
 
Сверху