На чем написан php?
вот в репозитории php вижу файлы C и тесты php, это интерпретатор сам себя выполняет или ядро на другом языке, смотрю ветку 8
Пока нет лидеров с лучшими ответами.
Ваш вопрос
вот в репозитории php вижу файлы C и тесты php, это интерпретатор сам себя выполняет или ядро на другом языке, смотрю ветку 8
Основная реализация PHP в репозитории php/php-src написана на C. В ней находятся движок Zend, встроенные расширения и слои взаимодействия с различными способами запуска. Репозиторий при этом содержит не только код интерпретатора: там есть тесты, сценарии сборки, документация и служебные инструменты.
Поэтому PHP-код в тестах не доказывает, что интерпретатор целиком реализован на самом PHP. Тестовая программа является входом для проверяемого интерпретатора и описывает ожидаемое поведение.
Различайте язык приложения и язык его реализации. Ваш сайт написан на PHP, а программа, выполняющая его инструкции, может быть собрана из C. Чтобы менять обычный сайт, изучение устройства сборки движка не обязательно.
Основная реализация интерпретатора PHP написана на C, включая значительную часть Zend Engine. PHP-файлы в репозитории могут быть тестами, инструментами и примерами, поэтому их наличие не означает, что всё ядро написано на PHP. Например, изменение теста проверяет поведение языка, а изменение C-кода движка требует сборки интерпретатора. В репозитории встречаются и другие языки для вспомогательных задач.
Пока нет премиум-вопросов в подборке
Не нашли то, что искали?
Задайте свой вопрос
Лучший ответ
v4-pro
v4-pro
На чем написан php?
Основная реализация
Интерпретатор PHP в официальном репозитории преимущественно реализован на C. Zend Engine отвечает за существенную часть обработки языка и выполнения программы. Но весь репозиторий нельзя свести к одному типу файлов: в нём присутствуют расширения, платформенные части, инструменты и проверочные материалы.
Почему есть PHP-файлы
Разработчикам языка нужны программы, которые проверяют его поведение. Поэтому тест может содержать PHP-код и ожидаемый результат. Интерпретатор запускает этот тест, после чего инструменты сравнивают поведение с ожидаемым. Такой файл является проверкой реализации, а не обязательно частью самой реализации.
Что означают каталоги
По структуре репозитория можно увидеть разные уровни:
Zendсвязан с движком,ext— с расширениями,sapi— со способами интеграции и запуска. Название каталога помогает ориентироваться, но конкретную роль файла лучше выяснять по коду и документации, а не только по расширению.Как меняется программа
Изменение PHP-кода обычного сайта и изменение C-кода интерпретатора имеют разный цикл работы. В первом случае вы запускаете приложение имеющейся средой. Во втором требуется собрать изменённый интерпретатор и проверить, что он правильно выполняет программы. Простое редактирование C-файла в скачанном архиве не меняет уже установленный php.exe.
Что учить для проекта
Для разработки сайта начинайте с самого PHP, HTTP, данных и устройства приложения. Знание C становится полезным, если вы хотите исследовать внутренности языка, писать нативное расширение или исправлять движок. Ваше наблюдение о смешанных файлах в репозитории нормально: большой системный проект содержит и реализацию, и средства её разработки.