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

Перейти к навигацииПерейти к поиску

Побо́чные эффе́кты (англ. 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 (12 апреля 2011). — Черновик стандарта C11. Дата обращения: 22 ноября 2014. Архивировано 25 декабря 2021 года.
  2. cppreference.com. «Порядок вычислений Архивная копия от 15 февраля 2015 на Wayback Machine» (англ.).

Литература

  • Себеста Р.У. Основные концепции языков программирования = 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.