stringtranslate.com

Семантика значений

В информатике наличие семантики значений (также семантики типа значения или семантики копирования по значению ) означает, что для объекта имеет значение только его значение, а не его идентичность. [1] [2] Неизменяемые объекты имеют семантику значений тривиально, [3] и при наличии мутации объект с семантикой значений может иметь только уникальную ссылку в любой точке программы.

Концепции, которые используются для объяснения этой концепции, — это экстенсиональность , определенность, замещаемость тождества, развертываемость и референциальная прозрачность . [4]

Ссылки

  1. ^ "Some Basic QUESTIONS". отзывы о скорости . Получено 2011-06-17 . Важное соображение для семантики значений заключается в том, что имеет значение только значение объекта, а не его идентичность. Поэтому вы можете копировать его (конструктор копирования или присваивание) столько раз, сколько захотите, и любая копия может быть использована вместо оригинала без каких-либо изменений.
  2. ^ Дэниел Элстнер. "Re: extending Gdk::Region". Списки рассылки GTK и GNOME . Получено 17.06.2011 . Что такое семантика значений? [...] Это специальное сокращение для "семантики типа значения" или "семантики копирования по значению".
  3. ^ "Some Basic QUESTIONS". отзывы о скорости . Получено 17 июня 2011 г. Объект представляет неизменяемое значение (в отличие от объекта, представляющего систему с изменяемыми состояниями.) [...] Не обязательно, по крайней мере, в C++. Мне нравится идея, что объект с семантикой значений может быть изменен только операторами присваивания, но это далеко от общего случая --- std::string, например, явно имеет семантику значений, несмотря на большое количество функций-мутаторов. (Можно утверждать, что это ошибка проектирования, но если так, то нам все равно придется с этим жить.)
  4. ^ "Некоторые основные вопросы". обзоры скорости. Важное соображение для семантики значений заключается в том, что значимо только значение объекта, а не его идентичность. Поэтому вы можете копировать его (конструктор копирования или присваивание) столько, сколько захотите, [...] В конечном итоге можно выделить пять различных концепций, которые можно использовать для более точного объяснения этого понятия: экстенсиональность, определенность, подстановочность идентичности, развертываемость и ссылочная прозрачность.