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