Синтаксис языка программирования или доктрина структуры языка говорит о объединении элементов языка, таких как слова, в более высокие структуры, такие как предложения. Единообразно определяет формат разрешенных выражений на данном языке программирования. Большинство языков программирования текстовые; они используют последовательность текста, которая включает слова, числа и знаки препинания, как и в естественных языках. С другой стороны, есть также некоторые языки программирования, которые являются графическими , что позволяет пользователю определять программу с графическими элементами вместо текста.
Синтаксис языка имеет дело с возможными комбинациями символов и других элементов языка и их отношениями друг к другу, независимо от значения этих комбинаций. Семантика отвечает за значение комбинаций символов. Поскольку большинство языков являются текстовыми, в этой статье обсуждается текстовый синтаксис.
Синтаксис языка программирования обычно задается комбинацией регулярных выражений и метасинтаксического языка, такого как нотация Бэкуса-Наура , которая дает синтаксис языка в форме, показанной в следующем примере:
< сумма > :: = < слагаемое > + < слагаемое >
< слагаемое > :: = < константа > | < переменная >
Круглые скобки «<» и «>» позволяют представлять языковые компоненты с помощью слов или. фразы на естественном языке, знак «|» тем не менее, это позволяет перечислить альтернативы. Такое синтаксическое представление может быть понято как программистом, так и компьютером, который распознает программные операторы с помощью компилятора.
Ниже приведен простой пример синтаксиса, основанный на языке программирования Lisp :
- выражение :: = атом | список
- атом :: = число | условное обозначение
- число :: = [+ -]? [‘0’ — ‘9’] +
- символ :: = [‘A’ — ‘Z»a’ — ‘z’]. *
- список :: = ‘(‘ выражение * ‘)’
В этой грамматике указывается следующее:
термин — либо атом, либо лист ;
атом — это либо число, либо символ ;
число представляет собой непрерывную последовательность из одной или нескольких десятичных цифр с возможным предшествующим знаком плюс или минус;
символ — это буква, за которой следует ноль или более любых символов (пробелы исключены); в
список связан с парой круглых скобок, с нулевым или большим количеством выражений внутри скобок.
Примеры правильно сформированной последовательности токенов в этом синтаксисе: ‘ 12345’, ‘ ()’, ‘ (a b c232 (1))’
Не все синтаксически правильные программы также семантически правильны. Многие синтаксически правильные программы плохо написаны и могут (в зависимости от языковых спецификаций и силы реализации) вызвать ошибку перевода или выполнения. В некоторых случаях такие программы могут вести себя неожиданно.
Грамматика, необходимая для определения языка программирования, может быть классифицирована в соответствии с ее положением в иерархии Хомского . Синтаксис большинства языков программирования можно определить как использование грамматики типа 2, т.е. Контекстно-свободной грамматики. Некоторые языки, включая Perl и Lisp конструкции vsbujejo, которые позволяют реализовать фазу синтаксического анализа ( синтаксический анализатор ). Языки, содержащие конструкции, позволяющие программисту изменять поведение парсера кода, выполняют синтаксический анализ для неопределимой проблемы и, как правило, стирают различие между синтаксическим анализом и выполнением кода.