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