~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ A602A43D07E330F8AF6CCE2C226FB11F__1712628300 ✰
Заголовок документа оригинал.:
✰ Value (computer science) - Wikipedia ✰
Заголовок документа перевод.:
✰ Ценность (информатика) — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Value_(computer_science) ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/a6/1f/a602a43d07e330f8af6cce2c226fb11f.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/a6/1f/a602a43d07e330f8af6cce2c226fb11f__translat.html ✰
Дата и время сохранения документа:
✰ 16.06.2024 09:10:06 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 9 April 2024, at 05:05 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Ценность (информатика) — Википедия Jump to content

Ценность (информатика)

Из Википедии, бесплатной энциклопедии

В информатике и программировании значение — это представление некоторой сущности , которой может манипулировать программа. Членами типа являются значения этого типа. [1]

«Значение переменной» задается соответствующим отображением в среде . [2] В языках с назначаемыми переменными становится необходимым различать r-значение (или содержимое) и l-значение (или местоположение) переменной. [3]

В декларативных (высокоуровневых) языках значения должны быть ссылочно прозрачными . Это означает, что результирующее значение не зависит от местоположения выражения, необходимого для вычисления значения. Значимы только содержимое ячейки (биты, равные они 1 или 0) и их интерпретация. [ нужна цитата ]

Категория значения [ править ]

Несмотря на свое название, в стандартах языка C++ эта терминология используется для категоризации выражений, а не значений. [4] : 8.2.1 

Задание: l-значения и r-значения [ править ]

В некоторых языках используется идея l-значений и r-значений , происходящая из типичного способа вычисления в левой и правой части оператора присваивания. L-значение относится к объекту, который сохраняется за пределами одного выражения. R-значение — это временное значение, которое не сохраняется за пределами выражения, в котором оно используется. [5]

Понятие l-значений и r-значений было введено в Комбинированном языке программирования (CPL). Понятия в выражении r-значения, l-значения и r-значения/l-значения аналогичны режимам параметров входного параметра (имеет значение), выходного параметра (может быть назначен) и входного/выходного параметра. (имеет значение и может быть присвоено), хотя технические детали различаются в зависимости от контекста и языка.

R-значения и адреса [ править ]

Во многих языках, особенно в семействе C , l-значения имеют адреса хранения , которые программно доступны для работающей программы (например, через какой-либо оператор адреса, такой как «&» в C/C++), что означает, что они являются переменными или детерминантами. ссылочные ссылки на определенную ячейку памяти. R-значения могут быть l-значениями (см. ниже) или не-l-значениями — этот термин используется только для отличия от l-значений. Рассмотрим выражение C 4 + 9. При выполнении компьютер генерирует целое число 13, но поскольку программа явно не указала, где в компьютере хранится это число 13, выражение не является l-значением. С другой стороны, если программа на языке C объявляет переменную x и присваивает переменной x значение 13, то выражение x имеет значение 13 и является l-значением.

В C термин l-значение первоначально означал что-то, чему можно было присвоить (отсюда и название, указывающее на то, что оно находится слева от оператора присваивания), но поскольку зарезервированное слово const(константа) был добавлен в язык, теперь термин «изменяемое l-значение». В C++11 специальный семантический глиф && существует (не путать с &&оператор, используемый для логических операций), чтобы обозначить использование/доступ к адресу выражения для компилятора только ; т. е. адрес не может быть получен с помощью адреса-из &оператор во время выполнения программы (см. использование семантики перемещения ). Добавление семантики перемещения усложнило таксономию классификации значений, добавив к ней концепцию xvalue (значение с истекающим сроком действия), которое относится к объекту, срок службы которого приближается к концу, ресурсы которого можно использовать повторно (обычно путем их перемещения). Это также привело к созданию категорий glvalue (обобщенное lvalue), которые представляют собой lvalue и xvalues, и prvalues ​​(чистые rvalue), которые представляют собой rvalues, не являющиеся xvalues. [6]

Этот тип ссылки может применяться ко всем r-значениям, включая не-l-значения, а также l-значения. Некоторые процессоры предоставляют одну или несколько инструкций, которые принимают немедленное значение , иногда для краткости называемое «немедленным». Непосредственное значение сохраняется как часть инструкции, которая его использует, обычно для загрузки в регистр, добавления или вычитания из него. Другими частями инструкции являются код операции и пункт назначения. Последнее может быть неявным. (Непрямое значение может находиться в регистре или храниться в другом месте памяти, что требует, чтобы инструкция содержала прямой или косвенный адрес [например, адрес индексного регистра] к значению.)

Выражение l-значения обозначает объект (ссылается на него). Неизменяемое значение l адресно, но не назначаемо. Изменяемое значение l позволяет не только исследовать, но и изменять обозначенный объект. Значение r — это любое выражение, значение, отличное от l, — это любое выражение, которое не является значением l. Одним из примеров является «непосредственное значение» (см. выше), которое, следовательно, не адресуется.

На ассемблере [ править ]

Значением может быть практически любой тип данных заданного типа , например строка, цифра или одна буква.

Процессоры часто поддерживают более одного размера непосредственных данных, например 8 или 16 бит, используя уникальный код операции и мнемонику для каждого варианта инструкции. Если программист предоставляет значение данных, которое не подходит, ассемблер выдает сообщение об ошибке «Вне диапазона». Большинство ассемблеров позволяют выражать непосредственное значение в виде ASCII , десятичных , шестнадцатеричных , восьмеричных или двоичных данных. Таким образом, символ ASCII 'A' такой же как 65 или 0x41. Порядок байтов строк может различаться на разных процессорах в зависимости от ассемблера и архитектуры компьютера.

Примечания [ править ]

  1. ^ Митчелл 1996 , с. 9.
  2. ^ Ахо, Альфред В.; Лам, Моника С.; Сетхи, Рави; Уллман, Джеффри Д. (1986). Составители: принципы, методы и инструменты . Издательство Аддисон-Уэсли. ISBN  0-201-10088-6 .
  3. ^ Митчелл 1996 , стр. 389–390.
  4. ^ «ISO/IEC 14882:2017 Языки программирования — C++» . 2017.
  5. ^ «Lvalues ​​и Rvalues ​​(Visual C++)» . Сеть разработчиков Microsoft . Проверено 3 сентября 2016 г.
  6. ^ Уильям М. Миллер. «Таксономия категорий значений выражений» (PDF) .

Ссылки [ править ]

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: A602A43D07E330F8AF6CCE2C226FB11F__1712628300
URL1:https://en.wikipedia.org/wiki/Value_(computer_science)
Заголовок, (Title) документа по адресу, URL1:
Value (computer science) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)