Jump to content

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

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

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

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

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

[ редактировать ]

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

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

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

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

См. также

[ редактировать ]
  1. ^ «Глоссарий — язык программирования Rust» . web.mit.edu . Проверено 6 июля 2022 г.
  2. ^ Jump up to: а б Сайм, Дон (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 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: f48188963261a27200493aad47e0450d__1720543500
URL1:https://arc.ask3.ru/arc/aa/f4/0d/f48188963261a27200493aad47e0450d.html
Заголовок, (Title) документа по адресу, URL1:
Expression-oriented programming language - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)