1 / 136

오토마타 및 형식언어 김 현 성

오토마타 및 형식언어 김 현 성. 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.

stacie
Download Presentation

오토마타 및 형식언어 김 현 성

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 오토마타 및 형식언어김 현 성 Tel : 850-7288 Office : 2공학관 408호 E-mail : kim@kiu.ac.kr

  2. 사람의 언어 1더하기 2는 뭐야? 뭐라고?

  3. 컴퓨터의 언어 1+2=? 100 001 010 프로그래밍 언어 3 011

  4. Three Basic Concepts(1/2) • Languages • Grammars • Automata

  5. Automata(1/2) • Abstract model of a digital computer Input file Storage Control unit Output

  6. 0 0 q1 Automata(2/2) 1 0 q0 q2 1 1

  7. Three Basic Concepts(2/2) Languages Grammars Automata

  8. 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

  9. Chomsky’s Language Hierarchy Regular Languages Context-free Languages Context-sensitive Languages Unrestricted Languages

  10. Applied Area • Compiler • Finite Automata • lexical analysis (parser) • Digital Design • binary adder

  11. 계산이론개요

  12. 목적 • 컴퓨터 공학 분야에는 몇 가지 공통적인 기본 원리가 존재 • 기본 원리를 이해하기 위해서는 추상적 모델을 설정해야 한다 • 추상적 모델=> 하드웨어 및 소프트웨어에서 공통적으로 나타나는 특징들을 표현하기 위한 모델

  13. 목적 • 추상적 모델 => 오토마타 • 오토마타는 입력, 출력, 기억장소로 구성 • 형식언어는 프로그래밍언어들의 일반적인 특성들을 추상화한 개념 • 형식언어는 심볼들과 심볼들의 조합인 문장을 구성하는 형식규칙들의 집합 • 형식언어는 이 형성규칙들에 의해 생성되는 모든 문자열들의 집합

  14. 한국어 우리는 경일대인이다. 경일대인은 나다.

  15. 목적 • 개념탐구 방법 • 직관적인 방법 • 수학적인 방법 • 집합론 • 함수 • 관계 • 트리 • 그래프

  16. F : S1 S2 함수(1/2) 함수란 한 집합의 원소들 각각에 대해 다른 집합의 유일한 원소로 배정하는 규칙 range domain S1 S2

  17. range domain 함수(2/2) • 함수의 표현 • {(x1,y1),(x2,y2),…} • xi : 해당함수의 정의역의 원소 • yi : 해당함수의 치역의 대응값 • 각 xi가 이 집합 내에서 순서쌍의 첫 번째 위치에 최대 한번만 나타나야 한다. X Y

  18. 0 0 q1 오토마타 1 0 q0 q2 1 1

  19. 그래프 (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

  20. 그래프(2/2) v1 v2 v3

  21. 트리(1/2) • 그래프의 한 종류이다. • 사이클을 갖지 않고, 루트라 불리는 특별한 하나의 정점을 가지는 유향 그래프 • 루트root : one distinct vertex • 리프들leaves • 부모parent • 자식child • 레벨level • 높이height

  22. 트리(2/2) Root Level 0 Height = 3 Leaf Level 3

  23. 증명기법(2/2) • Proof by induction • 몇 개의 특정 사례가 참이라는 사실들로부터 여러 문장들이 참임을 추론해 내는 기법 • 예) 참임을 증명하고자 하는 문장들의 순서열 P1,P2,… 이 있다고 하고 다음이 성립함을 가정 • 임의의 k(k>=1)에 대해 P1,P2,…,Pk는 참이다. • n>=k인 모든 n에 대해서 P1,P2,…,Pn이 참인 사실이 Pn+1이 참임을 의미하도록 하는 문제 귀납기저 귀납단계 귀납가정

  24. 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

  25. 언어, 문법, 오토마타

  26. 세가지 기초 개념 • 언어Languages • 문법Grammars • 오토마타Automata

  27. 언어(1/3) • 알파벳 {a, b, c, d} • 하나 이상의 심볼들의 유한 집합 • 문자열 {ab, aabb, ccdd} • 알파벳에 속한 심볼들의 유한 길이의 순서열

  28. 언어(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|

  29. 언어(3/3) • 스타폐포star-closure • L* = L0 U L1 U L2 … • 양성폐포positive-closure • L+ = L1 U L2 ...

  30. 문법(1/3) • 영어 문법 “문장은 명사절(noun phrase)과 술부(predicate)로 구성”

  31. 문법(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

  32. 문법(3/3) • 문법 G 는 다음의 항으로 정의된다 G = (V, T, S, P) • V 는 변수라 불리는 유한 집합의 객체 variables • T 는 단말심볼이라 불리는 유한 집합의 객체 terminal symbols • S 는 시작변수라 불리는 V의 특별한 원소 start variable • P 는 생성규칙들의 유한 집합 productions

  33. 문법 • 문법의 핵심은 생성규칙들 x -> y • x는 (V U T)+의 원소 • y는 (V U T)*의 원소

  34. Input file Storage Control unit Output Automata

  35. Automata • 결정적 오토마타Deterministic automata • 비결정적 오토마타Nondeterministic automata • 인식기Accepter • 변환기Transducer

  36. 응용(1/2) • Pascal의 식별자 => 언어 • 영문자로 시작 • 뒤이어 임의의 개수의 영문자나 숫자의 문자열의 집합 • 식별자를 위한 문법 <id> -> <letter><rest> <rest> -> <letter><rest>|<digit><rest>| <letter> -> a|b|…|z <digit> -> 0|1|…|9

  37. 응용(2/2) • 식별자 a0를 유도하는 과정 <id> => <letter><rest> => a <rest> => a <digit><rest> => a 0 <rest> => a 0

  38. 유한 오토마타Finite Automata

  39. Input file Storage Control unit Output Automata

  40. Automata • 결정적오토마타Deterministic automata • 비결정적오토마타Nondeterministic automata • 인식기Accepter • 변환기Transducer

  41. 결정적 유한 인식기 연산 과정이 결정적으로 진행되는 유한 인식기

  42. 결정적유한인식기Definition2.1 • M = (Q, , , q0, F) • Q : 내부상태들의 유한집합 •  : 문자들의 유한집합이며, 입력 알파벳이라불림 • : Q    Q 전체 함수이며, 전이 함수라 불림 • q0Q : 초기 상태 • F  Q :종료 상태의 집합

  43. 결정적 유한 인식기 동작방식 • 오토마타의 초기 상태 : q0 • 입력 방법 : aabbaa • 오토마타의 종료 : 입력의 맨 끝에 도달한 경우 • 승인여부 확인 : 오토마타의 종료 시점에 오토마타의 상태 체크 • 상태전이 : 전이 함수  에 따라 결정

  44. 전이그래프 • 유한 오토마타를 가시적으로 표현하기 위한 그래프 • 정점: 오토마타의 상태 • 간선: 오토마타에서 상태의 전이 • 정점의 라벨: 상태의 이름 • 간선의 라벨: 입력 심볼의 현재 값 • 종료상태 : 이중원으로 표시 q0 1 qf

  45. 전이그래프 • (q0,a) = q1 q0 q1 a 초기상태표시

  46. 0 0 q1 그림 2.1 1 0 q0 q2 1 1

  47. 확장 전이함수 • *: Q *  Q : 함수의 두 번째 인수가 단일 심볼이 아닌 문자열임 • 함수가 (q0,a) = q1 이고 (q1,b) = q2이면 • *(q0,ab) = q2 • *(q, ) = q, • *(q, wa) = (*(q,w),a)

  48. 언어와 Dfa • 정의 2.2 • 인식(Acceptance) • Dfa M = (Q, , , q0, F)에 의해서 인식되는 언어란 M에 대한 모든 문자열들의 집합 • L(M) = {w*: *(q0, w)  F} • 비인식(Nonacceptance) • Dfa가 비종료 상태에서 종료 • L(M) = { w  * : *(q0, w)  F}

  49. 오토마타의 가시화 => 그래프 그래프 : 전이함수 의 형식적인 논증 사용 <= 정당함을 확신할 수 있는 방법이 필요함

  50. 정리 2.1 • M = (Q, , , q0, F) : 결정적 유한 인식기 • GM : 전이 그래프 • 모든 qi, qjQ와 w +에 대해, *(q0, w) = qj이고 오직 그럴때에만 그래프 GM에는 라벨 w를 갖는 qi부터 qj까지의 보행이 존재한다.

More Related