Теперь вводится формальный и язык выражений (англ. expression)
в программах. Язык выражения it БНФ-нотации описывается следующим образом:
<выражение> ::= <id>||<указатель_функции>|<условное_выражение>| (<выражение>)|
<одноместная_операция><выражение>|
<выражение><двуместная_операция><выражение>|
<секция>
<одноместная_операция>::= -|
<двуместная_операиция>::=+| -| *| /|<| <=| = | >|>= | ^| v| ==>| <==|<==>|
Таким образом, выражение - это идентификатор (id), указатель функции. условное выражение или выражение в инфиксной или префиксной форме записи. Синтаксическая единица <секция> служит для введения локальных объявлений.
БНФ-правила описывают синтаксическую структуру выражений. Помимо этого требуется, еще ряд дальнейших синтаксических условий (контекстных условий). В дальнейшем, кроме всего прочего, будет предполагаться, что каждому выражению рассматриваемого ЯП предписывается точно один тип значений (в общем случае в зависимости от типов, предписанных используемым идентификаторам). Эти типы характеризуют множество элементов, рассматриваемых в качестве значений выражений. ЯП с этим свойством называются также сильно типизированными языками. Благодаря сильной типизации может быть механически обнаружен ряд ошибок программиста, приводящих к выражениям, которым невозможно приписать какой-либо определенный тип значений. Кроме того, типизация поддерживает более сильную структурированность программ. Условия типизации являются примерами контекстных условий.