Jump to content

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

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

Описание [ править ]

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

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

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

Примеры [ править ]

Почти все языки программирования являются строгими. широко используемые сегодня [ нужна ссылка ] Примеры включают C# , Java , Perl (все версии, т.е. до версии 5 и версии 7), Python , [2] Ruby , Common Lisp и ML . Некоторые строгие языки программирования включают в себя функции, имитирующие лень. [ нужны разъяснения ] В Raku (ранее известном как Perl 6) есть ленивые списки, [3] В Python есть функции генератора, [4] а Julia предоставляет систему макросов для создания нестрогих функций, [5] как и Схема .

Примерами нестрогих языков являются Haskell , R , Miranda и Clean . [6]

Расширение [ править ]

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

Цитаты [ править ]

  1. ^ Скотт 2006 , с. 541.
  2. ^ Лотт, Стивен (2015). Функциональное программирование на Python . Бирмингем, Великобритания: Packt Publishing. п. 35. ISBN  978-1-78439-699-2 . Python фокусируется на строгой оценке
  3. ^ «Программирование Raku/ленивые списки и каналы — Wikibooks, открытые книги для открытого мира» . ru.wikibooks.org . Проверено 9 февраля 2021 г.
  4. ^ Лотт, Стивен (2015). Функциональное программирование на Python . Бирмингем, Великобритания: Packt Publishing. п. 35. ISBN  978-1-78439-699-2 . функция-генератор нестрогая. [...] мы можем использовать функции генератора для создания ленивых вычислений.
  5. ^ Иннес, Майк Дж. (06 февраля 2021 г.), MikeInnes/Lazy.jl , получено 9 февраля 2021 г.
  6. ^ Cluet & Hull 1998 , стр. 25–26.

Ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 9a6c57928dd44a121020e1aedf3eb398__1712190060
URL1:https://arc.ask3.ru/arc/aa/9a/98/9a6c57928dd44a121020e1aedf3eb398.html
Заголовок, (Title) документа по адресу, URL1:
Strict programming language - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)