Jump to content

Выражение (информатика)

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

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

Примеры [ править ]

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

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

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

Побочные эффекты и устранение [ править ]

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

Предостережения [ править ]

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

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

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

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

См. также [ править ]

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

  1. ^ Митчелл, Дж. (2002). Концепции языков программирования. Кембридж: Издательство Кембриджского университета, 3.4.1 Утверждения и выражения , стр. 26
  2. ^ Маурицио Габбриелли, Симоне Мартини (2010). Языки программирования – принципы и парадигмы. Springer London, 6.1 Выражения , с. 120
  3. ^ Выражения Javascript, Mozilla. Архивировано 9 марта 2012 г. на Wayback Machine, доступ 6 июля 2009 г.
  4. ^ Программирование на C. Архивировано 9 января 2015 г. на Wayback Machine, доступ 6 июля 2009 г.
  5. ^ ISO/IEC 9899:1999, раздел 6.3.2.2, по состоянию на 31 августа 2009 г.

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

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: a0685593e714aaa2ad180f2e0b295699__1715617320
URL1:https://arc.ask3.ru/arc/aa/a0/99/a0685593e714aaa2ad180f2e0b295699.html
Заголовок, (Title) документа по адресу, URL1:
Expression (computer science) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)