Строгий язык программирования

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

Строгий язык программирования является языком программирования, который использует строгую парадигму программирования, что позволяет только строгие функции (функции, параметры должны быть оценены полностью, прежде чем они могут быть названы) должны быть определены пользователем. Нестрогий язык программирования позволяет пользователю определять нестрогие функции, и, следовательно, может позволить ленивым вычисления.

Содержание

  • 1 Примеры
  • 2 Объяснение
  • 3 цитаты
  • 4 ссылки

Примеры

Почти все языки программирования общего пользования сегодня строги. Примеры включают C #, Java, Perl (все версии, то есть до версии 5 и версии 7; Raku, ранее известный как Perl 6, имеет ленивые списки), Python, Ruby, Common Lisp и ML. Примеры нестрогих языков - Haskell, Miranda и Clean. Языки, чьи обычные функции являются строгими, но которые предоставляют макросистему для создания нестрогих функций, включают Julia и Scheme. Ленивые списки также могут быть созданы на C и C ++.

Объяснение

В большинстве нестрогих языков нестрогость распространяется на конструкторы данных. Это позволяет манипулировать концептуально бесконечными структурами данных (такими как список всех простых чисел ) так же, как и обычными конечными структурами данных. Он также позволяет использовать очень большие, но конечные структуры данных, такие как полное дерево игры в шахматы.

У нестрогости есть несколько недостатков, которые препятствуют широкому распространению:

  • Из-за неопределенности относительно того, будут ли выражения оцениваться и когда, нестрогие языки обычно должны быть чисто функциональными, чтобы быть полезными.
  • Все широко используемые аппаратные архитектуры оптимизированы для строгих языков, поэтому лучшие компиляторы для нестрогих языков производят более медленный код, чем лучшие компиляторы для строгих языков.
  • Пространственная сложность нестрогих программ трудно понять и предсказать.

Строгие языки программирования часто связаны с нетерпеливым вычислением, а нестрогие языки - с ленивым вычислением, но в каждом случае возможны другие стратегии оценки. Термины «энергичный язык программирования» и «ленивый язык программирования» часто используются как синонимы для «строгого языка программирования» и «нестрогого языка программирования» соответственно.

Во многих строгих языках некоторые преимущества нестрогих функций могут быть получены за счет использования макросов или переходов.

Цитаты

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

Последняя правка сделана 2023-08-08 08:52:20
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте