Синтаксис
Оригинальное название: syntax
Коротко
Набор правил, которые определяют, как правильно записывать конструкции языка: где ставить скобки, точки с запятой, ключевые слова и как оформлять блоки.
Что такое «Синтаксис»
Как у русского языка есть грамматика, так у языка программирования есть синтаксис. Компилятор или интерпретатор сначала разбирает текст программы по этим правилам и строит из него структуру. Если правило нарушено, разбор останавливается, и код не выполняется вообще — ни одной строки.
Синтаксис отвечает только за форму записи. Он не проверяет, имеет ли код смысл. Строка $total = $price - $discount; синтаксически правильна, даже если по задаче скидку надо было не вычитать, а умножать.
Три вида ошибок
- Синтаксическая — нарушена форма: пропущена скобка или точка с запятой. Обнаруживается до запуска.
- Ошибка выполнения — форма верная, но при работе что-то пошло не так: вызов несуществующей функции, деление на ноль.
- Логическая ошибка — программа работает без сбоев, но делает не то, что нужно.
Пример: проверка синтаксиса PHP перед выкладкой
Одна пропущенная точка с запятой в functions.php темы WordPress выводит вместо сайта сообщение о критической ошибке. Проверить файл до загрузки на сервер можно встроенной командой:
$ php -l functions.php
PHP Parse error: syntax error, unexpected token "}" in functions.php on line 42
$ php -l functions.php
No syntax errors detected in functions.php
Номер строки в сообщении указывает, где разбор споткнулся. Сама ошибка часто находится строкой-двумя выше: например, незакрытая кавычка. Что делать, если сайт уже упал, разобрано в статье о критической ошибке WordPress.
Синтаксический сахар
Так называют конструкции, которые не добавляют языку новых возможностей, а позволяют записать привычное короче. Тернарный оператор заменяет короткий if-else, оператор ?? в PHP — проверку на null, стрелочные функции в JavaScript — объявление функции. Сахар удобен, но при злоупотреблении код становится плотным и трудночитаемым. Поэтому в командах договариваются о стиле, а редакторы с линтерами подсвечивают нарушения ещё до сохранения файла.

