공집합 언어 ∅와 {ε} 언어는 완전히 다릅니다. 개념상 헷갈릴 수 있지만, 엄연히 다른 정규언어입니다.
| 개념 | 설명 | 포함하는 문자열 |
|---|---|---|
∅ |
아무 문자열도 포함하지 않는 언어 | 없음 |
{ε} |
단 하나의 문자열 ε (빈 문자열)만 포함하는 언어 | ε |
| 구분 | ∅ |
{ε} |
|---|---|---|
| 문자열 포함 여부 | 아무것도 없음 | ε 포함 |
| 크기 | 0 (empty set) | 1 (singleton set) |
| DFA로 인식 가능? | 가능 (초기 상태가 non-accepting) | 가능 (초기 상태가 accepting) |
| 정규표현식 | ∅, () |
ε |
| 언어 크기 (cardinality) | 0 | 1 |
Star-Closure (∅*) |
{ε} (주의!) |
{ε} |
∅* = {ε}는 자주 틀리는 포인트야.
공집합에 대해 클리니 스타를 적용하면 **"0번 반복"**에 해당하는
ε은 항상 포함됨.따라서
∅* = {ε}, 하지만∅+ = ∅
L1 = ∅: 어떤 입력 문자열도 받아들이지 않음L2 = {ε}: 입력이 아무것도 없을 때만 받아들임aε와 a∅정규표현식 aε와 a∅는 모두 형식적으로 유효한 정규표현식이지만, 이들이 의미하는 언어는 완전히 다릅니다.
aε는 왜 유효하며 무엇을 의미하는가?정규표현식의 결합 규칙에 따르면, 두 정규표현식 r₁, r₂가 있을 때 r₁r₂도 정규표현식입니다.
a는 단일 문자 a를 포함하는 언어 {a}를 의미하고,ε는 빈 문자열 하나만 포함하는 언어 {ε}를 의미합니다.