Jump to content

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

(Перенаправлен из L-значения (информатика) )

В информатики и программировании программного обеспечения ценностью является представление какой -либо сущности, которой можно манипулировать программой. Члены типа являются значения такого типа. [ 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-значения-термин, используемый только для отличия от L-значений. Рассмотрим выражение C 4 + 9Полем При выполнении компьютер генерирует целочисленное значение 13, но поскольку программа явно не обозначена, где на компьютере сохраняется 13, выражение является не L-значением. С другой стороны, если программа C объявляет переменную x и назначает значение от 13 до x, то выражение x имеет значение 13 и является значением L.

В C термин L-значение изначально означало что-то, на что можно было бы назначить (отсюда и название, указывающее на его левую сторону оператора назначения), но, поскольку зарезервированное слово const (Constant) был добавлен в язык, термин теперь «модифицируемый L-значение». В C ++ 11 специальный семантический глиф && существует (не путать с && оператор, используемый для логических операций), для обозначения использования/доступа адреса выражения для компилятора только ; т.е. адрес не может быть получен с использованием адреса адреса & Оператор во время выполнения программы (см. Использование семантики перемещения ). Добавление семантики перемещения усложнило таксономию классификации стоимости, добавив к нему концепцию xvalue (истекающая стоимость), которая относится к объекту, ближайшего к концу своей жизни, ресурсы которых могут быть использованы (обычно их перемещение). Это также приводит к созданию категорий GLVALUE (генерализованного LVALUE), которые являются LVALUES, XVALUES и PRVALUES (чистыми RVALUE), которые являются RVALUE, которые не являются XVALEUES. [ 6 ]

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

Выражение L-значения обозначает (относится к) объекту. Несмодируемое значение L является адресованным, но не назначает. Модифицируемый L-значение позволяет изменять назначенный объект, а также исследовать. R-значение-это любое выражение, не L-L-значение-это любое выражение, которое не является L-значением. Одним из примеров является «непосредственное значение» (см. Выше) и, следовательно, не обращается.

На языке ассамблеи

[ редактировать ]

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

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

Примечания

[ редактировать ]
  1. ^ Митчелл 1996 , с. 9
  2. ^ Ахо, Альфред В.; Lam, Monica S.; Сети, Рави; Уллман, Джеффри Д. (1986). Компиляторы: принципы, методы и инструменты . Аддисон-Уэсли издательская компания. ISBN  0-201-10088-6 .
  3. ^ Митчелл 1996 , с. 389–390.
  4. ^ «ISO/IEC 14882: 2017 Языки программирования - C ++» . 2017.
  5. ^ «LVALUES и RVALUES (Visual C ++)» . Microsoft Developer Network . Получено 3 сентября 2016 года .
  6. ^ Уильям М. Миллер. «Таксономия категорий стоимости выражения» (PDF) .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 75ff2d9f6e51e8d276288927ca2ef626__1721354160
URL1:https://arc.ask3.ru/arc/aa/75/26/75ff2d9f6e51e8d276288927ca2ef626.html
Заголовок, (Title) документа по адресу, URL1:
Value (computer science) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)