Парадигмы программирования |
---|
|
Выражение-ориентированный язык программирования является языком программирования , где каждый (или почти каждый) строительство представляет собой выражение и , следовательно , дает величину. Типичными исключениями являются определения макросов , команды препроцессора и объявления, которые в языках программирования, ориентированных на выражения, часто рассматриваются как операторы, а не выражения. Некоторые языки, ориентированные на выражения, вводят тип возвращаемого значения void, который должен выдаваться выражениями, которые просто вызывают побочные эффекты .
Алгол 68 и Лисп являются примерами языков, ориентированных на выражения. Паскаль не является языком, ориентированным на выражения. Все языки функционального программирования ориентированы на выражения. [ необходима цитата ]
Критика [ править ]
Критики, в том числе разработчики языков, [1] обвиняют ориентацию на выражения во всем классе ошибок программирования, когда программист вводит выражение присваивания, в котором они намеревались проверить равенство . Например, разработчиков Ada и Java так беспокоил этот тип ошибки, что они ограничили управляющие выражения теми, которые оценивают строго логический тип данных . [2] [3] Разработчики Pythonбыли аналогичные проблемы, но использовали альтернативную стратегию реализации присваивания как оператора, а не выражения, тем самым запрещая вложение присваивания внутри любого другого оператора или выражения. [4]
Примеры [ править ]
Этот раздел нуждается в расширении . Вы можете помочь, добавив к нему . ( Февраль 2018 г. ) |
- АЛГОЛ 68
- Значок
- Лисп
- ML
- Perl
- REBOL
- Рубин
- Haskell
- Ржавчина
- Scala
См. Также [ править ]
- Разделение команд и запросов
- функциональное программирование
Заметки [ править ]
Этот раздел нуждается в расширении . Вы можете помочь, добавив к нему . ( Февраль 2018 г. ) |
Ссылки [ править ]
- ^ Соглашения по коду Java «10.4 Назначение переменных»
- ^ Спецификация языка Java, Java SE 8 Edition "14.9 Оператор if"
- ^ Представляем Аду
- ^ Справочник по языку Python «6.2. Операторы присваивания»