Значение (информатика)

редактировать
Выражение в информатике, которое не может быть оценено дальше

В информатике значение - это представление некоторого объекта, которым может управлять программа. Члены типа являются значениями этого типа.

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

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

Содержание

  • 1 Присвоение: l-значения и r-значения
    • 1.1 R-значения и адреса
  • 2 На языке ассемблера
  • 3 Примечания
  • 4 Ссылки
  • 5 Внешние ссылки

Назначение: l-значения и r-значения

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

Понятие 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 существует специальный семантический глиф (не путать с оператором , используемым для логических операций) для обозначения использования / доступа к выражению адрес только для компилятора; т.е. адрес не может быть получен с помощью оператора address-of во время выполнения программы (см. использование семантики перемещения ).

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

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

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

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

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

Примечания

Ссылки

Внешние ссылки

Последняя правка сделана 2021-06-18 09:10:35
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте