|
|
|
| где его можно посмотреть раз он открытый? | |
|
|
|
|
|
|
|
для: lightning.say
(09.01.2011 в 21:20)
| | На странице http://www.php.net/downloads.php в разделе Complete Source Code приведены ссылки на исходные коды PHP, в разделе Windows Binaries - исполняемые модули для Windows. | |
|
|
|
|
|
|
|
для: cheops
(09.01.2011 в 21:22)
| | спасибо, а описание к нему есть? так для общего развития, как-то в книгах этому особого внимания никто не уделяет... | |
|
|
|
|
|
|
|
для: lightning.say
(10.01.2011 в 05:54)
| | А какое описание вам нужно? Там в коде есть комментарии. Мало, но есть. Поверьте, ничего такого особенного в исходниках РНР нету.
А вообще, исходный код выкладывают для других целей. Вот я залазил в исходники только один раз за всю жизнь. Нужно было срочно поправить баг в .NET коннекторе для mysql под линукс. Вот тут исходники сэкономили мне кучу времени, так как баг стопорил всю разработку и ждать новую версию коннектора было некогда. | |
|
|
|
|
|
|
|
для: Саня
(10.01.2011 в 07:28)
| | ну как ничего особенного нет? это ведь то на чем все работает... я хочу понять хотя бы основные принципы работы интерпретатора, структуру, пусть не вдаваться в подробности, но где-то ведь должна быть информация об этом.. на мой взгляд, программировать на php и не знать что у него внутри, хотя бы в общих чертах, это все равно что пользоваться компьютером и никогда не заглядывать в системный блок или ездить на машине но не заглядывать под капот.... | |
|
|
|
|
|
|
|
для: lightning.say
(10.01.2011 в 08:52)
| | для начала тогда стоит понять С/C++ | |
|
|
|
|
|
|
|
для: lightning.say
(10.01.2011 в 08:52)
| | Тогда лучше начать с книг, посвященных интерпретаторам и комплияторам - пользы будет больше. Кроме того, для этого потребуется знание С++ (для чтения книг тоже). Кстати, от тщательного изучения этого языка - пользы будет еще больше и в PHP-разработке тоже, так как C++ по сути самый сложный язык из языков высокого уровня, его изучение - это важная веха в жизни программиста, которая открывает сокращенные дороги в другие языки. Времени на него можете потратить много, но потом много съэкономите в будущем.
PS Собственно языки для того и изобретаются, чтобы не лазить под капот, а ехать вперед. В случае PHP - под капот Web-протоколам, поэтому может быть гораздо полезнее изучить Web-протоколы и устройство сети Интернет. Так как устройство интерпретатора - это уже сильно смахивает на сталеварение, а не на заглядывание под капот. | |
|
|
|
|
|
|
|
для: cheops
(10.01.2011 в 10:57)
| | А книги посвященные интерпретатору php существуют? в частности? | |
|
|
|
|
|
|
|
для: lightning.say
(10.01.2011 в 11:06)
| | Насколько мне известно нет, по крайней мере на русском языке. Интерпретаторы штука довольно специфичная и конкретным языкам книги редко посвящаяют. Собственно, я не удивлюсь, если большая часть кода PHP-интерпретатора утащена из какого-то другого или построена автоматически. В любом случае не получится изучить интерпретатор PHP, не изучив как вообще строятся интерпретаторы, компиляторы, С/С++. Причем времени на это придется потратить много больше, чем на изучение PHP. | |
|
|
|
|
|
|
|
для: cheops
(10.01.2011 в 11:11)
| | т.е. вы сводите понимание принципов работы компилятора php к пониманию языка на котором он написан... я думал существует множество способов описания работы алгоритмов... | |
|
|
|
|
|
|
|
для: lightning.say
(10.01.2011 в 12:11)
| | Нет, ну что вы... Вы совсем не те выводы делаете. Так сложилось, что все книги, посвященные интерпретаторам и компиляторам используют C/C++. Т.е. либо чистая математика, если книга теоретическая, либо C/C++, если книга прикладная. Прикладные книги, посвященные конкретным реализациям более наглядны и понятны, чтобы их читать нужно знать C/C++. | |
|
|
|
|
|
|
|
для: lightning.say
(10.01.2011 в 11:06)
| | Невыгодно писать книги по какой-то очень узкой области, так как этим интересуется очень мало людей. Тем более нужны знания о языке, на котором написан интерпретатор. А раз есть эти знания, то и книга не нужна. | |
|
|
|
|
|
|
|
для: Саня
(10.01.2011 в 11:14)
| | Ну почему же, некоторые книги как раз и пользуются спросом из за своей индивидуальности в каком-либо направлении, если нет аналогов. К тому же язык не так малоизвестен... думаю, если у отдельных личностей, в частности, я имею себя, возникают такие вопросы, то не факт, что они не возникнут еще у кого-либо среди населения, следствием чего будет приобретена книга. Не думаю, что она пользовалась бы спросом меньше какого-либо романа или детектива которыми в магазинах переполнены полки и которые никто не читает. | |
|
|
|
|
|
|
|
для: lightning.say
(10.01.2011 в 12:32)
| | >я хочу понять хотя бы основные принципы работы интерпретатора....
Дотачтоно тогда почитать в сети, что такое интерпретатор. | |
|
|
|
|
|
|
|
для: sim5
(10.01.2011 в 12:44)
| | тема шла об интерпретаторе php, если вы не заметили, если бы вопрос был поставлен так, я бы уже давно так и сделал.... | |
|
|
|
|
|
|
|
для: lightning.say
(10.01.2011 в 12:56)
| | А вы думаете, что другой интерпретатор принципиально по иному работает? | |
|
|
|
|
|
|
|
для: sim5
(10.01.2011 в 13:00)
| | думаю, каждый работает по принципу интерпретатора но у каждого есть свои принципиальные отличия связанные со спецификацией языка | |
|
|
|
|
|
|
|
для: lightning.say
(10.01.2011 в 13:17)
| | Отличия, это уже спецификация языка, а вот принцип работы интерпретатора одинаков у всех. | |
|
|
|
|
|
|
|
для: sim5
(10.01.2011 в 13:24)
| | так а разве интерпретатор не разрабатывается в соответствии со спецификацией? в соответствии с набором требований и параметров, которым он должен удовлетворять?
Возьмите жигули и болид формулы1, вроде и то и другое автомобиль и у того и другого есть двигатель, и у обоих его так можно назвать (двигателем) но спецификация ведь у них разная, один предназначен для скоростных гонок по кольцевым трассам а другой для езды по разбитым русским дорогам, и в соответствии с этим его разрабатывают инженеры, если я найду в нете информацию о двигателях, в частности жигулей, я ни в коем образе не пойму как работает двигатель болида формулы1, потому что по отношению к жигули он как небо и земля хотя основополагающие принципы одинаковые и предназначение вроде бы одно - для передвижения в пространстве, но есть принципиальные особенности связанные со спецификацией на которых и строится разработка двигателя.... так же и тут, я считаю. Я найду, что такое интерпретатор, но я не пойму как работает интерпретатор php, потому что у меня нет информации конкретно об этом интерпретаторе и мне не известны требования и параметры в соответствии с которыми разрабатывался данный интерпретатор. | |
|
|
|
|
|
|
|
для: lightning.say
(10.01.2011 в 14:47)
| | >так а разве интерпретатор не разрабатывается в соответствии со спецификацией? в
>соответствии с набором требований и параметров, которым он должен удовлетворять?
Какая спецификация имеется в виду? Для построения самих интерпретаторов спецификаций нет. Если имеется в виду PHP, то у него у самого нет спецификации - он не стандартизирован. То, что у разработчиков получается, то и получается. Есть некий план развития языка, которого разработчики придерживаются, но не очень сильно. Это если какой-то компилятор Fortran или C++ будут разрабатывать - там да, имеется спецификация, очень четкая и выпущенная в виде отдельного издания. Если ей не следовать - это не будет компилятором Fortran или C++. В PHP такого нет - молод слишком еще. | |
|
|
|
|
|
|
|
для: cheops
(10.01.2011 в 14:52)
| | не стандартизирован? а это что по вашему?
http://ru.php.net/results.php?q=standards+php&l=en&p=wholesite
а разработка web-приложений не является его спецификацией? | |
|
|
|
|
|
|
|
для: lightning.say
(10.01.2011 в 16:36)
| | Это результаты поиска по фразе "standards".
PS Спецификация - это набор правил, которые могут действовать хоть в отрасли, например, спецификации Sun (да будет земля им пухом), или спецификации кодирования в отдельно взятой группе, когда договариваются об именовании переменных, функций, классов. Стандарт - это международнопризнанный документ (который готовится и утверждается годами). В PHP помоему еще рано говорить об этой процедуре - язык слишком еще эволюционирует. Вот устаканится, получит несколько реализаций, тогда, да, можно начинать. Тогда потребуется согласовывать действия нескольких групп разработчиков. Пока такая группа по сути одна - зачем им стандарт? С кем они будут обеспечивать совместимость? Сами с собой? | |
|
|
|
|
|
|
|
для: cheops
(10.01.2011 в 16:44)
| | Ну, им бы не помешали стандарты на самом деле.
Думаю, вы и без меня это не раз уже продумывали, когда в очередной раз приходилось лезть в документацию, чтобы уточнить, что сначала - стог сена или игла?
Правда, это уже немножко другой вопрос - исходники у них, возможно, написаны иначе.
Однако по поводу "сами с собой" - я для себя сделал стандарт (взяв за основу, конечно, существующие), чтобы самого себя по пальцам бить - иначе и правда далеко от говнокода не уйти. | |
|
|
|
|
|
|
|
для: neadekvat
(10.01.2011 в 17:03)
| | Сейчас уже этого не поменять, им стандарты кодирования были нужны были с самого начала. Но так как язык создавался стихийно, а потом от этой глыбы отсекались лишние куски, то поделать уже ничего нельзя. Иначе не будет обратной совместимости. | |
|
|
|
|
|
|
|
для: lightning.say
(10.01.2011 в 14:47)
| | Интерпретатор, это не язык, это, грубо говоря, способ общения языка с системой команд центрального процессора и устройствами системы, что его разрабатывать. Данный способ интерпретирует строку вашего кода, превращая его в инструкции для процессора, сразу нагружая его работой, затем следующую строку, и так пока не выполнит то, чего вы там накодили.
Есть другие языки, компилируемые, в которых код компилируется в исполняемый файл, который уже сам, в "автономном" режиме, будет разбираться с процессором. )
Если бы для того чтобы проехать на жигулях, нужно было протащить сперва колеса на нное расстояние, затем двигатель, потом кузов, а на болиде просто нажать педаль и проехать, тогда бы пример был схожим, а так нет.
В общем спецификация того или иного языка к собственно понятию "интерпретатор" отношения как такового не имеет, РНР мог быть и компилируемым языком, но для веб разработчика это было бы неудобным. Если вас интересует, к примеру, как и именно РНР "общается" с портом 80 компьютера, то вам не о принципах работы интерпретатора нужно читать, а исходный код РНР, о чем вам уже говорили ранее. | |
|
|
|
|
|
|
|
для: lightning.say
(10.01.2011 в 13:17)
| | >думаю, каждый работает по принципу интерпретатора но у каждого есть свои принципиальные
>отличия связанные со спецификацией языка
Если интересна спецификация языка, гораздо более полезнее изучать её. К сожалению, для PHP её нет - язык не стандартизирован (собственно в этом не было необходимости, так как реализация по сути одна), поэтому приходится изучать документацию. А в интерпретаторе 99% к спецификации языка не имеет отношения, в этом плане гораздо полезнее изучить Perl, Web-протоколы, устройство сети Интернет, другие языки программирования - в этих областях тонкостей, проливающих свет на PHP гораздо больше, чем в интерпретаторе, который эти тонкости кодирует (и из кода которого обратно эти тонкости извлечь очень и очень не просто, а то и невозможно). | |
|
|
|
|
|
|
|
для: lightning.say
(10.01.2011 в 12:32)
| | На самом деле людям которые книги пишут и издают, доподлино известно, что пользуется спросом, а что нет. У них имеется статистика по направлениям за десятки лет. Я эту статистику видел и она идет в разрез тому, что вы называете "спросом из за своей индивидуальности в каком-либо направлении". На самом деле этот индивидуальный спрос заключается вот в чем. Если я узнаю, что существует книга описывающая ядро PHP, я вывернусь на изнанку и достану её, даже если мне придется проехать за ней несколько сот киломметров. Это действительно очень серьезный спрос и таких человек в стране наберется штук 20. После того, как эти 20 книг будут распроданы тысячи оставших ложаться мертвым грузом на складе, потому что обычные люди хотят деньги зарабатывать и решать свои проблемы, а не разбираться в том, как за бесплатно создавать расширения для PHP, исправлять ошибки в ядре и решать чужие проблемы. На английском книги по ядру PHP найти можно, на русском - нет.
Таких примеров можно набрать огромное количество - попробуйте найти монитор на PVA-матрице - не найдете, все сняты с производства, так как TNfilm - дешевле, а следовательно имеет больший спрос. Те, кому нужна PVA-матрица, могут головой об стену разбиться, но не развернут миллиардные потоки и заводы в нужные им стороны. Рынком управляет не просто спрос, а массовый спрос. | |
|
|
|
|