stringtranslate.com

Язык программирования, ориентированный на выражения

Язык программирования, ориентированный на выражения, — это язык программирования , в котором каждая (или почти каждая) конструкция является выражением и, таким образом, возвращает значение. [1] Типичными исключениями являются определения макросов , команды препроцессора и объявления , которые языки, ориентированные на выражения, часто рассматривают как операторы .

Лисп [2] и АЛГОЛ 68 — языки, ориентированные на выражения. Паскаль не является языком, ориентированным на выражения.

Все функциональные языки программирования ориентированы на выражения. [3]

Критика и профилактика

Критики, в том числе разработчики языка, [4] [ неудачная проверка ] обвиняют ориентацию выражений в целом классе ошибок программирования , когда программист случайно кодирует выражение присваивания , которое заменяет переменную выражением, а не проверяет ее на равенство с этим выражением.

Разработчики Ada и Java предотвращают ошибки такого типа, ограничивая управляющие выражения теми, которые оцениваются строго по логическому типу данных . [5] [6]

Разработчики Python реализовали присваивание как оператор, а не как выражение, тем самым запрещая вложение присваивания в любой другой оператор или выражение. [7] (До версии 3.8 добавлялись «выражения присваивания» с другим синтаксисом. [8] )

В некоторых языках, ориентированных на выражения, выражения, которые просто вызывают побочные эффекты, возвращают типы void .

Примеры

Смотрите также

Рекомендации

  1. ^ «Глоссарий - Язык программирования Rust» . web.mit.edu . Проверено 6 июля 2022 г.
  2. ^ Аб Сайм, Дон (14 июня 2020 г.). «Ранняя история F #». Труды ACM по языкам программирования . 4 (ХОПЛ): 1–58. дои : 10.1145/3386325 . ISSN  2475-1421.
  3. ^ «Программирование, ориентированное на выражения». Кнольдус — Техническая информация . 08 февраля 2018 г. Проверено 7 августа 2023 г.
  4. ^ Соглашения о коде Java «10.4 Присвоение переменных»
  5. ^ Спецификация языка Java, Java SE 8 Edition «14.9 Оператор if»
  6. ^ Представляем Аду
  7. ^ Справочник по языку Python «6.2. Операторы присваивания»
  8. ^ "PEP 572: Выражения присваивания"
  9. ^ «Функции — язык программирования Rust» . web.mit.edu . Проверено 6 июля 2022 г.
  10. ^ «COS 326: Функциональное программирование». www.cs.princeton.edu . Проверено 6 июля 2022 г.