Строгий язык программирования
-
Определение строгого и нестрогого языков программирования
- Строгий язык программирования требует полного вычисления параметров перед вызовом функции.
- Нестрогий язык допускает отложенное вычисление параметров функций.
-
Недостатки нестрогих языков
- Неопределенность относительно времени вычисления выражений затрудняет их использование.
- Аппаратные архитектуры оптимизированы под строгие языки, что замедляет компиляцию нестрогих языков.
- Пространственная сложность нестрогих программ сложно предсказать.
- Некоторые преимущества нестрогих функций могут быть достигнуты с помощью макросов или thunks в строгих языках.
-
Примеры языков программирования
- Большинство широко используемых языков программирования являются строгими, включая C#, Java, Perl, Python, Ruby, Common Lisp и ML.
- Некоторые строгие языки имеют функции, имитирующие лень, например, ленивые списки в Raku, генераторы в Python и макросы в Julia.
- Примеры нестрогих языков включают Haskell, R, Miranda и Clean.
-
Расширение нестрогих языков
- В нестрогих языках нестрогость распространяется на конструкторы данных, что позволяет работать с бесконечными структурами данных и большими конечными структурами.
Полный текст статьи: