чистота языка программирования
Sign in to saveAlso known as pure functional programming
programming paradigm that treats all computation as the evaluation of mathematical functions
Wikidata facts
- Instance of
- programming paradigm
- Subclass of
- declarative programming
Show 1 more fact
- opposite of
- imperative programming
via Wikidata · CC0
Article · Русский
Чистота́ (в отношении языка программирования) — отсутствие побочных эффектов. Язык программирования является чистым в том случае, если все функции в программах этого языка являются чистыми. Программы, написанные на чистых языках программирования, проще отлаживать, верифицировать,в них проще обнаруживать ошибки, которые не удалось обнаружить с помощью тестирования.Программы на чистом языке программирования проще переписывать, избегая внесения ошибок.В то же время, сам процесс планирования программы с расчётом на чистоту сложнее. Ещё одним важным преимуществом чистых функциональных языков является параллелизм. Поскольку все функции для вычислений используют только свои параметры, можно организовать вычисление независимых функций в произвольном порядке или параллельно, на результат вычислений это не повлияет. Параллелизм может быть организован не только на уровне компилятора языка, но и на уровне архитектуры технических средств. Существуют экспериментальные компьютеры, основанные на подобных архитектурах, например Lisp-машина. Чистые функциональные языки временами называют «детерминированными» в том смысле, что для всякой функции каждый вызов всегда даёт один и тот же эффект (в императивных языках это, вообще говоря, не верно). В то же время, такие языки называют «недетерминированными» в том смысле, что порядок действительного исполнения программы может сильно меняться в зависимости от конкретной реализации языка: алгоритмы могут неявно распараллеливаться, промежуточные данные могут исключаться из цепочки преобразований, представление одних и тех же типов может варьироваться даже в рамках одной программы, и т. д. (для императивных языков это попросту невозможно). Проще говоря, чистые языки детерминированы на уровне исходных кодов и недетерминированы на уровне реализации (императивные — наоборот).
Abstract from DBpedia / Wikipedia · CC BY-SA