형식 언어
위키백과, 우리 모두의 백과사전.
형식 언어는 유한한 종류의 문자로 이루어진 유한한 길이의 문자열의 집합을 말한다.
형식 언어는 수학, 논리학, 언어학, 정보 이론 등에서 사용하고 있으며, 또한 계산가능성 이론과 밀접하게 관련되어 있다.
[편집] 정의
각 형식 언어에는 그 언어에서 사용하는 문자의 집합이 있으며, 그 집합은 무한할 수도 있다. 그 형식 언어에 속하는 문자열은 문자들로 이루어진 유한한 길이의 수열로 정의된다. 문자 집합을 Σ라고 정의했을 때, 그 문자들로 이루어진 모든 문자열의 집합은 Σ * 가 된다. 여기에서 별표는 클레이너 스타 연산자이다.
이 때, Σ 위에 존재하는 형식 언어 L은 Σ * 의 부분집합으로 정의된다.
[편집] 형식 언어의 기술 방식
형식 언어는 특정한 문자열의 집합이기 때문에, 다음과 같은 방식을 이용해 형식 언어를 만들 수도 있다.
- 특정한 형식 문법의 법칙에 따라 생성되는 문자열의 집합
- 특정한 정규 표현식이 만들어내는 문자열의 집합
- 특정한 오토마톤이 받아들이는 문자열. 오토마톤에는 튜링 기계, 유한 상태 기계 등이 있다.
- 판정 문제의 대상이 되는 '예/아니오' 질문 중 그 대답이 '예'인 것들의 집합.
- 추론의 결과.
[편집] 형식 언어의 연산
기존의 형식 언어를 결합하여 새로운 언어를 만들어 낼 수 있다. 두 형식 언어 L1 과 L2가 있다고 하면, 다음과 같은 연산을 할 수 있다.
- L1 과 L2 의 연쇄는 L1 의 문자열 v 와 L2 의 문자열 w 를 연쇄시켜 만든 단어들의 집합이다. 표기:
또는 L1L2. - L1 과 L2 의 교집합은 L1와 L2 에 동시에 속해 있는 문자열들의 집합이다. 표기 :
. - L1 과 L2 의 합집합은 L1에 속하거나 L2 에 속하는 문자열들의 집합이다. 표기 :
또는 L1 + L2. - L1 의 여집합은 L1 에 속하지 않는 문자열들의 집합이다.
- 우상(右商: 오른쪽 몫)은 L2의 문자열 w 에 대하여 vw가 L1 에 속하도록 하는 문자열 v 의 집합이다. 표기 : L1 / L2.
|
오토마타 이론: 형식 언어 및 형식 문법 |
|---|
| 각 언어 및 문법은 바로 윗줄의 진부분집합이다. |
또는
.
또는