Введение

Выражение в компьютерной программе. В информатике булево выражение — это выражение, используемое в языках программирования, которое при вычислении возвращает булево значение. Булево значение может быть истинным или ложным. Булево выражение может состоять из комбинации булевых констант «Истина»/«Да» или «Ложь»/«Нет», переменных булевого типа, операторов, возвращающих булевы значения, и функций, возвращающих булевы значения. Булевы выражения соответствуют пропозициональным формулам в логике и являются частным случаем булевых схем.

Булевые операторы

Большинство языков программирования имеют булевы операторы OR, AND и NOT; в C и некоторых языках, вдохновленных им, они представлены символами "||" (двойная вертикальная черта), "&&" (двойной амперсанд) и "!" (восклицательный знак) соответственно, в то время как соответствующие побитовые операции представлены символами "|", "&" и "~" (тильда). В математической литературе для этих целей часто используются символы "+", "·" (точка) и надчеркивание, или "∨" (vel), "∧" (et) и "¬" (not) или "′" (штрих). Некоторые языки, например, Perl и Ruby, имеют два набора булевых операторов с идентичными функциями, но разным приоритетом. Обычно в этих языках для операторов с более низким приоритетом используются слова and, or и not. Некоторые языки программирования, произошедшие от PL/I, имеют тип битовой строки и используют BIT(1) вместо отдельного булева типа. В этих языках одни и те же операторы используются как для булевых, так и для побитовых операций. Эти языки представляют OR, AND, NOT и ИСКЛЮЧАЮЩЕЕ ИЛИ символами "|", "&", "¬" (инфиксный оператор) и "¬" (префиксный оператор).

Операторы короткого замыкания

Некоторые языки программирования, например, Ada, имеют операторы логического ИЛИ и И с коротким замыканием. Эти операторы используют отложенное вычисление, то есть, если значение выражения можно определить по левому операнду, то правый операнд вычисляться не будет. В результате могут возникать побочные эффекты, которые происходят только при определенном значении левого операнда.