괄호 및 우선순위 규칙과 함께 이 연산자들을 활용하면 상당히 복잡한 표현식을 만들 수 있으며, 이 표현식은 하나의 불형 함수를 나타낸다. not
연산자는 and
보다 우선순위가 높고, and
연산자는 or
보다 우선순위가 높다.
논리식에서는 같은 연산을 수행하는 함수가 다른 모습으로 나타나는 경우가 종종 있다. 예를 들어 표현식 (a and b)
와 not (not a or not b)
는 대등하다. [표 1.2.11]과 같은 진리표 검증(truth-table proof) 기법을 이용해 모든 경우에 동일한 값으로 평가되는지 확인하면 두 표현식이 대등한지 검증할 수 있다.
▼ 표 1.2.11 a and b와 not (not a or not b)가 동일함을 입증하는 진리표
a |
b |
a and b |
not a |
not b |
not a or not b |
not (not a or not b) |
False |
False |
False |
True |
True |
True |
False |
False |
True |
False |
True |
False |
True |
False |
True |
False |
False |
False |
True |
True |
False |
True |
True |
True |
False |
False |
False |
True |
이렇게 표현식을 조작하는 것에 대해 수학적으로 연구하는 것을 불 논리(Boolean logic)라고 하며, 컴퓨터 과학의 기반이 된다. 불 논리는 컴퓨터 하드웨어 자체의 설계 및 연산에 있어서 핵심적인 역할을 하며, 컴퓨터 과학에 있어서 이론적 기반의 출발점이기도 하다. bool
표현식이 프로그램의 작동을 제어하는 데 사용되므로 여기에서는 일단 bool
표현식을 살펴보자. 일반적으로 관심의 대상이 되는 조건은 불 표현식으로 지정된다. 그러고 나서 표현식이 참으로 평가될 때 실행할 일련의 문장들과 표현식이 거짓으로 평가될 때 실행할 일련의 문장들로 프로그램 코드를 구성한다. 이렇게 코드를 구성하는 방법은 1.3절에서 자세히 설명한다.
설명 간소화 | 지금부터 장황하게 설명할 필요가 없을 때는 bool
형 객체 대신 간단히 불형이라고 부른다. 그리고 True
값을 가진 bool
형 객체 대신 간단히 True
라고 하며, False
값을 가진 bool
형 객체 대신 간단히 False
라고 부른다.