Язык программирования, ориентированный на выражения, — это язык программирования , в котором каждая (или почти каждая) конструкция является выражением и, таким образом, возвращает значение. [1] Типичными исключениями являются определения макросов , команды препроцессора и объявления , которые языки, ориентированные на выражения, часто рассматривают как операторы .
Лисп [2] и АЛГОЛ 68 — языки, ориентированные на выражения. Паскаль не является языком, ориентированным на выражения.
Все функциональные языки программирования ориентированы на выражения. [3]
Критики, в том числе разработчики языка, [4] [ неудачная проверка ] обвиняют ориентацию выражений в целом классе ошибок программирования , когда программист случайно кодирует выражение присваивания , которое заменяет переменную выражением, а не проверяет ее на равенство с этим выражением.
Разработчики Ada и Java предотвращают ошибки такого типа, ограничивая управляющие выражения теми, которые оцениваются строго по логическому типу данных . [5] [6]
Разработчики Python реализовали присваивание как оператор, а не как выражение, тем самым запрещая вложение присваивания в любой другой оператор или выражение. [7] (До версии 3.8 добавлялись «выражения присваивания» с другим синтаксисом. [8] )
В некоторых языках, ориентированных на выражения, выражения, которые просто вызывают побочные эффекты, возвращают типы void .