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

Поделись знанием:
Перейти к: навигация, поиск

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

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

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

Напишите отзыв о статье "Побочный эффект (программирование)"



Примечания

  1. [www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf 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. «[en.cppreference.com/w/c/language/eval_order Порядок вычислений]» (англ.).

Литература

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


Отрывок, характеризующий Побочный эффект (программирование)

Долохов, как будто напоминая ему, что ему неприлично было шутить, перебил его: Когда прикажете получить деньги, граф?
Ростов вспыхнув, вызвал Долохова в другую комнату.
– Я не могу вдруг заплатить всё, ты возьмешь вексель, – сказал он.
– Послушай, Ростов, – сказал Долохов, ясно улыбаясь и глядя в глаза Николаю, – ты знаешь поговорку: «Счастлив в любви, несчастлив в картах». Кузина твоя влюблена в тебя. Я знаю.
«О! это ужасно чувствовать себя так во власти этого человека», – думал Ростов. Ростов понимал, какой удар он нанесет отцу, матери объявлением этого проигрыша; он понимал, какое бы было счастье избавиться от всего этого, и понимал, что Долохов знает, что может избавить его от этого стыда и горя, и теперь хочет еще играть с ним, как кошка с мышью.
– Твоя кузина… – хотел сказать Долохов; но Николай перебил его.
– Моя кузина тут ни при чем, и о ней говорить нечего! – крикнул он с бешенством.
– Так когда получить? – спросил Долохов.
– Завтра, – сказал Ростов, и вышел из комнаты.


Сказать «завтра» и выдержать тон приличия было не трудно; но приехать одному домой, увидать сестер, брата, мать, отца, признаваться и просить денег, на которые не имеешь права после данного честного слова, было ужасно.
Дома еще не спали. Молодежь дома Ростовых, воротившись из театра, поужинав, сидела у клавикорд. Как только Николай вошел в залу, его охватила та любовная, поэтическая атмосфера, которая царствовала в эту зиму в их доме и которая теперь, после предложения Долохова и бала Иогеля, казалось, еще более сгустилась, как воздух перед грозой, над Соней и Наташей. Соня и Наташа в голубых платьях, в которых они были в театре, хорошенькие и знающие это, счастливые, улыбаясь, стояли у клавикорд. Вера с Шиншиным играла в шахматы в гостиной. Старая графиня, ожидая сына и мужа, раскладывала пасьянс с старушкой дворянкой, жившей у них в доме. Денисов с блестящими глазами и взъерошенными волосами сидел, откинув ножку назад, у клавикорд, и хлопая по ним своими коротенькими пальцами, брал аккорды, и закатывая глаза, своим маленьким, хриплым, но верным голосом, пел сочиненное им стихотворение «Волшебница», к которому он пытался найти музыку.