제 5장. Context-Free Languages

Slides:



Advertisements
Similar presentations
CHAPTER 5 TOP-DOWN PARSING SUNG-DONG KIM, DEPT. OF COMPUTER ENGINEERING, HANSUNG UNIVERSITY.
Advertisements

게임이론 Von Neumann Theory of Games and Economic Behavior with Oskar Morgenstern, widely recognized as the first formal treatment.
언어와 문법 (languages, grammar)
2 전기회로의 기초 기초전자회로 PPT. ○ 생체의공학과 송지훈 35%
컴파일러 입문 제 5 장 Context-Free 문법.
Compiler Lecture Note, Inroduction to FL theory
DS020 오토마타형식언어 Chapter 3. Regular Languages and Regular Grammars
스테레오 비젼을 위한 3장 영상의 효율적인 영상정렬 기법
6.9 Redundant Structures and the Unit Load Method
Compiler Lecture Note, Inroduction to FL theory
“자연어처리” 소개 (Natural Language Processing)
Internet Computing KUT Youn-Hee Han
8. 파일 인덱스: 탐색트리 (Search Tree)
제 7 장  LR 파서.
Chaper 2 ~ chaper 3 허승현 제어시스템 설계.
Chapter 7. Binary Search Trees - 보충 자료-
4장 구문(Syntax).
강좌 개요 2009년 1학기 컴퓨터의 개념 및 실습.
과목 홈페이지  전산학개론 이메일 숙제를 제출할 경우, 메일 제목은 반드시 ‘[전산학개론]’으로 시작.
제 6 장 데이터 타입 6.1 데이터 타입 및 타입 정보 6.2 타입의 용도 6.3 타입 구성자 6.4 사례 연구
6. Incoterms, 2010상의 정형거래조건(Trade Terms)
Discrete Math II Howon Kim
2. 형식언어 (Formal Language)
프로그래밍언어론 2nd edition Tucker and Noonan
오토메타 형식언어 2003년도 제 2학기.
3장 (2) 구문과 의미론 순천향대학교 컴퓨터공학과 하상호.
Data Modeling Database 활용을 위한 기초 이론 Database의 개요 Data Modeling
DS020 오토마타형식언어 Chapter 6. Simplification of Context-Free Grammars and Normal Forms Exercises October 16, 2003.
장. 문법 구조(Syntax) 컴퓨터공학과 권기태 프로그래밍언어론.
Tel : Office : 2공학관 408호 오토마타 및 형식언어 김 현 성 Tel : Office : 2공학관 408호
Sung-Hae Jun 자연어 처리의 이해 Sung-Hae Jun
Chapter 7. PUSHDOWN AUTOMATA Exercises
Ch. 10 Algorithm Efficiency & Sorting
재귀 혹은 귀납 Recursive or Inductive Definition 집합을 정의하는 방법
Chapter 2. Finite Automata Exercises
Discrete Math II Howon Kim
주요 내용 형식 언어와 문법 정규식과 정규 집합 유한 상태 기계 정규 문법과 유한 상태 기계와 정규집합.
4-1 Gaussian Distribution
AVLTree vs 편향 Tree.
학습목표 CFL을 accept하는 오토메타인 pda를 이해 npda와 dpda의 차이를 compiler의 측면에서 학습
스케줄링 (Scheduling) 시스템 내부시간(time in the system): 스케줄링 문제
제 4 장. Regular Language의 특성
학습목표 Pumping Lemma와 Closure 특성을 통해 CFL와 Language Family간의 관계 이해
Introduction to Programming Language
Discrete Math II Howon Kim
컴 파 일 러 Compilers.
프로그래밍언어론 2nd edition Tucker and Noonan
3. 정규 언어(Regular Language)
XML-II (eXtensible Markup Language) DTD/DOM
Discrete Math II Howon Kim
Chapter 5. Context-Free Language Exercises
이산수학(Discrete Mathematics)
제12장. Algorithmic Computation의 한계
Analysis and Testing of Programs with Exception-Handling Constructs
스케줄링 (Scheduling) 시스템 내부시간(time in the system): 스케줄링 문제
점화와 응용 (Recurrence and Its Applications)
6. Incoterms, 2010상의 정형거래조건(Trade Terms)
Ch8.기본적인 RL, RC 회로 자연응답, 강제응답, 시정수, 계단입력과 스위치 회로
창 병 모 숙명여대 전산학과 자바 언어를 위한 CFA 창 병 모 숙명여대 전산학과
1. 관계 데이터 모델 (1) 관계 데이터 모델 정의 ① 논리적인 데이터 모델에서 데이터간의 관계를 기본키(primary key) 와 이를 참조하는 외래키(foreign key)로 표현하는 데이터 모델 ② 개체 집합에 대한 속성 관계를 표현하기 위해 개체를 테이블(table)
이산수학(Discrete Mathematics)
The general form of 0-1 programming problem based on DNA computing
지은이 : 오종철 ONLY ONE 작성자 : 원다성.
이산수학(Discrete Mathematics) 수열과 합 (Sequences and Summations)
제 3장. Regular Languages 와 Regular Grammars
For regex_compile function in grep.c
제10장. Other Models of TM’s 학습목표
[CPA340] Algorithms and Practice Youn-Hee Han
Traditional Methods – Part 1
Chapter 7: Deadlocks.
Presentation transcript:

제 5장. Context-Free Languages 학습목표 정규언어의 한계를 극복할 수 있는 Context-Free 언어를 Context-Free Grammar를 통해 이해하고 Parsing의 원리 숙지

개요 정규언어 보다 복잡한 언어의 필요성과 처리방법 숙지  할 수 있는 일이 많아진 만큼 모호성/어려움 증가 all languages ≠ regular 예) CF언어와 CF문법 정의 Parsing : see if a given string is derivable from a given grammar 응용 : PL design, efficient compilers construction nested structure PL requires something beyond RL  형식언어 중에서 가장 응용이 활발히 진행되는 language category

Context-Free Grammars RG와 무제약 문법 사이에서 제약을 완화시키며 능력개선! Restrictions in RG left side : single variable right side : special form CFG proper subset 왜 context-free라 하나?  sentential form에 나타난 변수는 상황에 관계없이 rewrite가능

 context-free이자 linear  RG < linear G < CFG

CFG : 예예 조금 복잡한 경우를 볼까요?  set of all properly nested parenthesis structures for PL

CFG : Derivation (1) CFG : a derivation may involve sentential forms with more than one variable  choice in the order where variables are replaced  뭔가 약속된 순서가 있어야겠군!

그런데 2차원 구조를 1차원적으로 보이자니 감이 잘 안 오는군! CFG : Derivation (2) 그래서 순서를 정한 것이… 정의 2: • leftmost derivation if leftmost variable is first replaced • rightmost derivation if rightmost variable is first replaced 그런데 2차원 구조를 1차원적으로 보이자니 감이 잘 안 오는군!

CFG : Derivation Trees (1) 트리구조로 봅시다! CFG : Derivation Trees (1) Derivation tree – ordered tree where nodes are labeled with the left sides of productions and where the children of a node represent its corresponding right side A B b a c

CFG : Derivation Trees (2) = partial derivation tree yield : reading leaves from left→right, omitting λ depth-first manner  p. 132, 그림 5.2 (partial derivation tree), 그림 5.3 (derivation tree)

CFG : Sentential Forms & Derivation Trees Relation btw. sentential forms & derivation trees

CFG : Homework (Exercises 5.1) 7 (b), (d) : 주어진 언어의 CFG 구하기 연습-1 8 (b), (d) : 주어진 언어의 CFG 구하기 연습-2 10 : CFG 구하기 문제 하나 더 14 : 또 다른 CFG 구하기 문제 22 : 메타언어의 CFG는 어떨지…

Parsing and Ambiguity 생성기로서의 문법이 아닌 Accepter로서의 문법의 이용 Grammar usage generative aspect : derivable strings from grammar analytical aspect : whether w∈L(G)? → derivation of w cf) parsing : finding a sequence of productions by which w∈L(G) is derived Exhaustive search parsing method (top-down parsing) systematically construct all possible derivations see whether any of them match w  좀 무식해 보이지만…

Parsing : 예

Parsing : 효율적인 방법 flaws tedious never terminates for strings not in L(G) : nontermination → restriction on the grammar i) A →  : decrease length of successive sentential forms ii) A → B power와 무관

Parsing : 효율적인 방법 증명 Upper bounds on total no. of sentential forms

문법에 약간의 제약을 가하니 엄청나게 효율적인 파싱이 가능해지는군! Parsing : Simple Grammar G: s-grammar → w∈L(G) can be parsed in |w| 문법에 약간의 제약을 가하니 엄청나게 효율적인 파싱이 가능해지는군!

 똑같은 aabb를 생성하는 두개의 derivation tree가능 Parsing : Ambiguity Ambiguity : several different derivation trees may exist  똑같은 aabb를 생성하는 두개의 derivation tree가능 Tip! 형식언어에서 string(즉, 문장)의 구조는 string을 생성하기 위하여 적용되는 rule과 그 순서에 따라 결정된다. 따라서 어떤 string x를 여러 가지 방법으로 생성할 수 있다면, 이는 x의 구조를 여러 가지로 해석할 수 있음을 뜻한다.

Parsing : Ambiguity의 해결 Rewriting grammar in an equivalent unambiguous form 예) PL’s statement has only one interpretation. (p. 143, 그림 5.6) CFG의 ambiguity, equality  no general algorithm

Parsing : Inherent Ambiguity Tip! 임의의 CFG가 ambiguous한지 여부를 밝히거나, 임의의 ambiguous 한 CFG를 unambiguous 한 CFG로 전환하는 일반화된 algorithm은 없다. 그러나 특정한 주어진 CFG 가 ambiguous 한지 여부를 밝히거나, 이를 unambiguous 한 CFG로 전환하는 것은 가능하다.

좌측의 b를 먼저 생성한 다음 우측의 b를 생성하도록 rule을 수정 Parsing : Ambiguity 해결 연습 G3 : S  bSSbc 1) 언어는? {bicbj | i, j  0} 2) Ambiguous한가? S b c 이 언어의 string은 S  bS 를 먼저 적용하여 좌측에 있는 b를 생성한 다음, 우측의 b를 생성하거나, 이와 역순으로 생성할 수 있다. 따라서 ambiguous 하다. 3) 모호성을 제거하는 방법은? 좌측의 b를 먼저 생성한 다음 우측의 b를 생성하도록 rule을 수정 Ambiguous G3 : S  bSSbc Unambiguous G4 : S  bSA A  Abc

Parsing : Homework (Exercises 5.2) 1 : 주어진 언어의 s-grammar 찾기 기초문제 13 : 언어의 ambiguity 보이기 문제

CFG와 PL application of formal language theory PL definition / interpreter, compiler construction convention for specifying grammars for PL : Backus-Naur Form 예) <expression> ::= <term> | <expression> + <term> <term> ::= <factor> | <term> * <factor> 예) s-grammar : easily / efficiently parsed (due to keywords) <if_stmt> ::= if <expression> <then_clause> < else_cause> → LL / LR grammars Syntax vs. Semantics

CFG와 PL: Homework (Exercises 5.3) 이 장의 내용은 따로 연습까지 할만큼 깊이 있게 다루지 않았지만… 5 : 굳이 한번 해보자면…

다음 이야기  CFG의 변환과 정규화 문법을 변환하는 방법들 Useful substitution rule Removing l-productions / unit-productions / useless productions 정규형식 Chomsky normal form : 우측항의 변수의 수 제한 Greibach normal form : 우측항의 변수와 terminal의 위치 제한 CFG를 위한 간단한 Parsing방법 : CYK algorithm membership algorithm : 주어진 string이 문법에 맞는지?