1.41k likes | 2.06k Views
오토마타 및 형식언어 김 현 성. Tel : 850-7288 Office : 2 공학관 408 호 E-mail : kim@kiu.ac.kr. 사람의 언어. 1 더하기 2 는 뭐야 ?. 뭐라고 ?. 컴퓨터의 언어. 1+2=?. 100 001 010. 프로그래밍 언어. 3. 011. Three Basic Concepts(1/2). Languages Grammars Automata. Automata(1/2). Abstract model of a digital computer.
E N D
오토마타 및 형식언어김 현 성 Tel : 850-7288 Office : 2공학관 408호 E-mail : kim@kiu.ac.kr
사람의 언어 1더하기 2는 뭐야? 뭐라고?
컴퓨터의 언어 1+2=? 100 001 010 프로그래밍 언어 3 011
Three Basic Concepts(1/2) • Languages • Grammars • Automata
Automata(1/2) • Abstract model of a digital computer Input file Storage Control unit Output
0 0 q1 Automata(2/2) 1 0 q0 q2 1 1
Three Basic Concepts(2/2) Languages Grammars Automata
Grammar, Languages, Recognizer Grammar Language Recognizer Type 0 recursively enumerable sets Turing machine Type 1 context-sensitive language Linear bounded automata Type 2 context-freelanguage Pushdown automata Type 3 regular language Finite automata
Chomsky’s Language Hierarchy Regular Languages Context-free Languages Context-sensitive Languages Unrestricted Languages
Applied Area • Compiler • Finite Automata • lexical analysis (parser) • Digital Design • binary adder
목적 • 컴퓨터 공학 분야에는 몇 가지 공통적인 기본 원리가 존재 • 기본 원리를 이해하기 위해서는 추상적 모델을 설정해야 한다 • 추상적 모델=> 하드웨어 및 소프트웨어에서 공통적으로 나타나는 특징들을 표현하기 위한 모델
목적 • 추상적 모델 => 오토마타 • 오토마타는 입력, 출력, 기억장소로 구성 • 형식언어는 프로그래밍언어들의 일반적인 특성들을 추상화한 개념 • 형식언어는 심볼들과 심볼들의 조합인 문장을 구성하는 형식규칙들의 집합 • 형식언어는 이 형성규칙들에 의해 생성되는 모든 문자열들의 집합
한국어 우리는 경일대인이다. 경일대인은 나다.
목적 • 개념탐구 방법 • 직관적인 방법 • 수학적인 방법 • 집합론 • 함수 • 관계 • 트리 • 그래프
F : S1 S2 함수(1/2) 함수란 한 집합의 원소들 각각에 대해 다른 집합의 유일한 원소로 배정하는 규칙 range domain S1 S2
range domain 함수(2/2) • 함수의 표현 • {(x1,y1),(x2,y2),…} • xi : 해당함수의 정의역의 원소 • yi : 해당함수의 치역의 대응값 • 각 xi가 이 집합 내에서 순서쌍의 첫 번째 위치에 최대 한번만 나타나야 한다. X Y
0 0 q1 오토마타 1 0 q0 q2 1 1
그래프 (1/2) • 그래프는 두개의 유한집합으로 구성된 구조 • 정점들의 집합the set of vertices • 간선들의 집합the set of edges • 간선들의 순서열a sequence of edges - 보행walk • 어느 간선도 중복하여 지나지 않는 보행a walk in which no edge is repeated - 경로path • vi로 부터 vi로 경로no repeated edge - 사이클cycle
그래프(2/2) v1 v2 v3
트리(1/2) • 그래프의 한 종류이다. • 사이클을 갖지 않고, 루트라 불리는 특별한 하나의 정점을 가지는 유향 그래프 • 루트root : one distinct vertex • 리프들leaves • 부모parent • 자식child • 레벨level • 높이height
트리(2/2) Root Level 0 Height = 3 Leaf Level 3
증명기법(2/2) • Proof by induction • 몇 개의 특정 사례가 참이라는 사실들로부터 여러 문장들이 참임을 추론해 내는 기법 • 예) 참임을 증명하고자 하는 문장들의 순서열 P1,P2,… 이 있다고 하고 다음이 성립함을 가정 • 임의의 k(k>=1)에 대해 P1,P2,…,Pk는 참이다. • n>=k인 모든 n에 대해서 P1,P2,…,Pn이 참인 사실이 Pn+1이 참임을 의미하도록 하는 문제 귀납기저 귀납단계 귀납가정
Example 1.5 : 높이가 n인 이진트리의 리프 노드의 총 개수는 최대 2n임 l(n) 2n Basis l(0) = 1 = 20 Inductive Assumption: l(i)2i For i = 0, 1, …, n Inductive Step : l(n+1) = 2l(n) l(n+1) 2 * 2n = 2n+1
세가지 기초 개념 • 언어Languages • 문법Grammars • 오토마타Automata
언어(1/3) • 알파벳 {a, b, c, d} • 하나 이상의 심볼들의 유한 집합 • 문자열 {ab, aabb, ccdd} • 알파벳에 속한 심볼들의 유한 길이의 순서열
언어(2/3) • w = a1a2…an v = b1b2…bn • 접합concatenation : wv = a1a2…anb1b2…bn • 전도reverse : wr = an…a2a1 • 길이length : |w| = n • 빈문자열empty string : | | = 0, w = w = w • 부문자열substring : w = vu v = 접두부prefix, u = 접미부suffix • |uv| = |u| + |v|
언어(3/3) • 스타폐포star-closure • L* = L0 U L1 U L2 … • 양성폐포positive-closure • L+ = L1 U L2 ...
문법(1/3) • 영어 문법 “문장은 명사절(noun phrase)과 술부(predicate)로 구성”
문법(2/3) • A boy runs • <sentence> -> <noun_phrase><predicate> • <noun_phrase> -> <article><noun> • <predicate> -> <verb> • Pascal identifier • <id> -> <letter><rest> • <rest> -> <letter><rest> | <digit><rest> | • <letter> -> a|b|…| <digit> -> 0|1|…9
문법(3/3) • 문법 G 는 다음의 항으로 정의된다 G = (V, T, S, P) • V 는 변수라 불리는 유한 집합의 객체 variables • T 는 단말심볼이라 불리는 유한 집합의 객체 terminal symbols • S 는 시작변수라 불리는 V의 특별한 원소 start variable • P 는 생성규칙들의 유한 집합 productions
문법 • 문법의 핵심은 생성규칙들 x -> y • x는 (V U T)+의 원소 • y는 (V U T)*의 원소
Input file Storage Control unit Output Automata
Automata • 결정적 오토마타Deterministic automata • 비결정적 오토마타Nondeterministic automata • 인식기Accepter • 변환기Transducer
응용(1/2) • Pascal의 식별자 => 언어 • 영문자로 시작 • 뒤이어 임의의 개수의 영문자나 숫자의 문자열의 집합 • 식별자를 위한 문법 <id> -> <letter><rest> <rest> -> <letter><rest>|<digit><rest>| <letter> -> a|b|…|z <digit> -> 0|1|…|9
응용(2/2) • 식별자 a0를 유도하는 과정 <id> => <letter><rest> => a <rest> => a <digit><rest> => a 0 <rest> => a 0
Input file Storage Control unit Output Automata
Automata • 결정적오토마타Deterministic automata • 비결정적오토마타Nondeterministic automata • 인식기Accepter • 변환기Transducer
결정적 유한 인식기 연산 과정이 결정적으로 진행되는 유한 인식기
결정적유한인식기Definition2.1 • M = (Q, , , q0, F) • Q : 내부상태들의 유한집합 • : 문자들의 유한집합이며, 입력 알파벳이라불림 • : Q Q 전체 함수이며, 전이 함수라 불림 • q0Q : 초기 상태 • F Q :종료 상태의 집합
결정적 유한 인식기 동작방식 • 오토마타의 초기 상태 : q0 • 입력 방법 : aabbaa • 오토마타의 종료 : 입력의 맨 끝에 도달한 경우 • 승인여부 확인 : 오토마타의 종료 시점에 오토마타의 상태 체크 • 상태전이 : 전이 함수 에 따라 결정
전이그래프 • 유한 오토마타를 가시적으로 표현하기 위한 그래프 • 정점: 오토마타의 상태 • 간선: 오토마타에서 상태의 전이 • 정점의 라벨: 상태의 이름 • 간선의 라벨: 입력 심볼의 현재 값 • 종료상태 : 이중원으로 표시 q0 1 qf
전이그래프 • (q0,a) = q1 q0 q1 a 초기상태표시
0 0 q1 그림 2.1 1 0 q0 q2 1 1
확장 전이함수 • *: Q * Q : 함수의 두 번째 인수가 단일 심볼이 아닌 문자열임 • 함수가 (q0,a) = q1 이고 (q1,b) = q2이면 • *(q0,ab) = q2 • *(q, ) = q, • *(q, wa) = (*(q,w),a)
언어와 Dfa • 정의 2.2 • 인식(Acceptance) • Dfa M = (Q, , , q0, F)에 의해서 인식되는 언어란 M에 대한 모든 문자열들의 집합 • L(M) = {w*: *(q0, w) F} • 비인식(Nonacceptance) • Dfa가 비종료 상태에서 종료 • L(M) = { w * : *(q0, w) F}
오토마타의 가시화 => 그래프 그래프 : 전이함수 의 형식적인 논증 사용 <= 정당함을 확신할 수 있는 방법이 필요함
정리 2.1 • M = (Q, , , q0, F) : 결정적 유한 인식기 • GM : 전이 그래프 • 모든 qi, qjQ와 w +에 대해, *(q0, w) = qj이고 오직 그럴때에만 그래프 GM에는 라벨 w를 갖는 qi부터 qj까지의 보행이 존재한다.