PHP Получает Формальную Спецификацию


Учитывая, насколько важен PHP с точки зрения его использования, очень удивительно узнать, что он только сейчас получает формальную спецификацию после 20 лет использования. 

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

В случае PHP это был специальный язык, предназначенный для облегчения создания веб-страниц. В результате это немного беспорядок, и тот факт, что он развивался по мере роста сложности, не помог. Спецификация языка была, по сути, его текущей реализацией и документацией о том, как его использовать. 

Теперь группа во главе с Facebook создала проект спецификации, который доступен на GitHub. Определение включает в себя как синтаксис, так и семантику. Группу возглавляет Facebook, потому что компания широко использует PHP и нуждается в том, чтобы он был языком, способным к логической эволюции, отсюда и интерес к формальной спецификации. В группу также входят Расмус Лерндорф, человек, который изобрел этот язык в первую очередь, и Энди Гутманс, генеральный директор Zend, поставщика инструментов PHP. 

Спецификация находится в легко читаемой форме. Например;

Составные утверждения

Синтаксис

составное заявление:

{ оператор-listopt }

ведомость-список:

заявление

заявление-заявление списка

утверждение определено в §§.

Семантика

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

Примеры

если (условие)

{ // фигурные скобки необходимы, так как путь true // содержит более одного оператора

// заявление-1

// заявление-2

}

ещё

{ // фигурные скобки необязательны, так как путь false // содержит только один оператор

// заявление-3

}

// ——————————————

в то время как (условие)

{ // пустой блок эквивалентен // оператору null

}

Это достаточно ясно, чтобы сделать его пригодным для проверки того, что вы поняли более неофициальную документацию. Существует, конечно, вопрос о том, насколько точно он отражает реальный мир реализации. Если вы обнаружите несоответствие в данный момент, это спецификация, которая должна будет измениться. В будущем спецификация может отвечать за то, что должна делать реализация. 

Со следующей основной версией PHP, установленной как версия 7, и с работой над улучшением скорости языка в виде HHVM и PHPng Facebook, наличие фиксированной справочной спецификации очень необходимо для нас, чтобы знать, когда что-то отклоняется от стандарта.


Добавить комментарий