Побочный эффект (программирование)

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Побо́чные эффе́кты (англ. side effects) — любые действия работающей программы, изменяющие среду выполнения (англ. execution environment)[1]. Например, к побочным эффектам относятся[2]:

  • доступ (чтение или запись) к объекту, определённому с модификатором volatile (англ.);
  • изменение (запись) объекта;
  • изменение файла;
  • изменение поведения инструкций процессора, обрабатывающих числа с плавающей точкой (см. floating-point environment (англ.));
  • вызов функции, выполняющей любое из перечисленных выше действий.

Побочный эффект функции — возможность в процессе выполнения своих вычислений: читать и модифицировать значения глобальных переменных, осуществлять операции ввода-вывода, реагировать на исключительные ситуации, вызывать их обработчики. Если вызвать функцию с побочным эффектом дважды с одним и тем же набором значений входных аргументов, может случиться так, что в качестве результата будут возвращены разные значения. Такие функции называются недетерминированными функциями с побочными эффектами.

Примечания[править | править вики-текст]

  1. International standard. ISO/IEC 9899:201x. Information technology — Programming languages — C Committee draft N1570 (англ.) (pdf) Пункт 5.1.2.3, параграф 2. ISO/IEC (April 12, 2011). — Черновик стандарта C11. Проверено 22 ноября 2014.
  2. cppreference.com. «Порядок вычислений» (англ.).

Литература[править | править вики-текст]

  • Себеста Р.У. Основные концепции языков программирования = Concepts of programming languages. — 5-е изд. — М.: Вильямс, 2001. — С. 282—284. — ISBN 5-8459-0192-8.
  • Dowd, M.; McDonald, J.; Schuh, J. Function Side-Effects // The Art of Software Security Assessment: Identifying and Preventing Software Vulnerabilities. — Pearson Education, 2006. — 1200 p. — ISBN 9780132701938.