Выражение (информатика) - Expression (computer science)

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

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

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

Примеры

Например, 2 + 3 является как арифметическим, так и программным выражением, которое оценивается как 5. Переменная - это выражение, потому что она обозначает значение в памяти, поэтому г + 6 тоже выражение. Пример реляционное выражение является 4 ≠ 4, который оценивается как ложный.[2][3]

Пустота как результат типа

В C и для большинства языков, производных от C, вызов функции с пустота Тип возвращаемого значения - допустимое выражение типа void.[4]Значения типа void использовать нельзя, поэтому значение такого выражения всегда выбрасывается.

Побочные эффекты и устранение

Во многих языках программирования функция и, следовательно, выражение, содержащее функцию, могут иметь побочные эффекты. Выражение с побочными эффектами обычно не обладает свойством ссылочная прозрачность. Во многих языках (например, C ++) выражения могут заканчиваться точкой с запятой (;), чтобы превратить выражение в выражение утверждение. Это просит реализацию оценить выражение только для его побочных эффектов и игнорировать результат выражения (например, «x + 1;»), если он не является частью оператора выражения, который вызывает побочные эффекты (например, «y = x + 1; "или" func1 (func2 ()); ").

Предостережения

Обратите внимание, что формальное понятие побочного эффекта - это изменение абстрактного состояния выполняющейся программы.

Другой класс побочных эффектов - это изменения конкретного состояния вычислительной системы, такие как загрузка данных в кэш-память. Языки, которые часто описываются как «свободные от побочных эффектов», обычно все же имеют конкретные побочные эффекты, которые можно использовать, например, в атаки по побочным каналам.

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

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

Смотрите также

Рекомендации

  1. ^ Митчелл, Дж.. (2002). Концепции языков программирования. Кембридж: Издательство Кембриджского университета, 3.4.1 Утверждения и выражения, п. 26
  2. ^ Выражения Javascript, Mozilla Доступ 6 июля 2009 г.
  3. ^ Программирование на C В архиве 2015-01-09 в Wayback Machine Доступ 6 июля 2009 г.
  4. ^ ISO / IEC 9899: 1999 раздел 6.3.2.2, по состоянию на 31 августа 2009 г.

внешняя ссылка