本文へ移動

ブール式(論理学とプログラミング)

ブール式は、真または偽に評価される数式です。論理学、数学、プログラミング、デジタル回路で用いられ、変数と演算子を組み合わせて判断を行い、条件を記述します。

概要

ブール式とは、真または偽の二つの真理値のいずれかを生成する構文上の構成要素である。コンピュータサイエンスおよび形式論理学では、この用語はブール変数、定数、演算子から構成される数式を指す。実用的なプログラミングの文脈では、プログラミング言語において、このような式は実行時に評価され、分岐、ループ、その他の意思決定の動作を制御する。

基本構成要素

ブール式の典型的な要素には、次のものがある。

  • 変数または述語(例:X > 3、isEmpty(list))
  • AND、OR、NOTなどの論理演算子(しばしば &&、||、! と表記される)
  • trueおよびfalseの定数
  • 部分式をグループ化するための括弧

複合式ではこれらの要素を組み合わせる。たとえば、(X > 3) && (Y <= 10) は、二つの部分条件がともに成り立つ場合にのみtrueとなる。

動作と評価

評価規則は、式がどのように真理値へと還元されるかを定める。多くの言語は短絡評価を実装している。A || BではAがすでにtrueであればBは評価されず、A && BではAがfalseならBは評価されない。一部の演算子(ビット単位の & と |)およびカスタム述語は、すべてのオペランドを評価することがあり、副作用を生じる可能性がある。ブール式は、可換律、結合律、分配律などの代数法則によって変形できる。また、式の簡略化や否定への変換にはド・モルガンの法則がよく用いられる。

歴史と理論

ブール式の数学的枠組みは、論理的推論を形式化する方法として19世紀に発展したブール代数にさかのぼる。時代を経て、これらの考え方はデジタル回路設計と、プログラミング言語における条件付き計算の意味論の基盤となった。

用途と例

ブール式は、条件文(if、while)、アサーション、フィルタークエリや検索エンジン、ならびにハードウェアの論理ゲートに現れる。一般的な例には、X > Y、!(flag)、(A && (B || !C)) がある。A AND Bの簡単な真理値表は、A=true、B=true → true、A=true、B=false → false、A=false、B=true → false、A=false、B=false → falseと表せる。

重要な区別

ブール式(評価可能な数式)と、true/falseを表すための記憶型であるブールデータ型とは区別すると有用である。さらに、真理値を対象とする論理演算子と、二進表現を対象とするビット演算子も異なる。連言標準形(CNF)と選言標準形(DNF)は、分析や自動推論のために式を書き換える標準的な形式である。

ブール式を理解することは、正しい制御フローの記述、クエリの最適化、信頼性の高いハードウェアおよびソフトウェアシステムの設計に不可欠である。

関連項目

著者

AlegsaOnline.com ブール式(論理学とプログラミング)

URL: https://ja.alegsaonline.com/art/13014

共有