Chapter 7. PUSHDOWN AUTOMATA Exercises

Slides:



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

비즈쿨 - 정 성 욱 - - 금오공고 비즈쿨 - 정 성 욱 1. 나는 각 단원들의 활동들에 성실하게 참여 하겠습니다. 우리의 다짐 2. 나는 나와 전체의 발전을 위해 각 멘토들의 지도에 순종하겠습니다. 3. 나는 각 단원들을 숙지함으로써 비즈니스 마인드를 함양하고 자신의.
개인의견 차가있을수있음 훈훈한남자 배우 TOP 5. 5 위는 박보검 웃을때보이는 치명적인 미소 꺄 ~~~ 5위5위.
CHAPTER 5 KARNAUGH MAPS( 카노 맵 ) This chapter in the book includes: Objectives Study Guide 5.1Minimum Forms of Switching Functions 5.2Two- and Three-Variable.
행복한 금연 김지영, 박시영, 박윤조, 박은미, 조윤희. 담배의 발암물질 담배의 구성성분 인체에 미치는 악영향.
직장내 성희롱, 성폭력, 성매매 예방연수.
언어와 문법 (languages, grammar)
2 전기회로의 기초 기초전자회로 PPT. ○ 생체의공학과 송지훈 35%
컴파일러 입문 제 5 장 Context-Free 문법.
보안등 고장관리 자동화시스템 시범운영 제안서 인천광역시 서구 민관협력개발 032) )
공교육 정상화 및 선행학습 금지 학부모 연수 부천송일초등학교.
Lecture 9 프로그램 실행의 비용 computation cost – 시간 time, 메모리 memory – tractable vs intractable problems.
Compiler Lecture Note, Inroduction to FL theory
DS020 오토마타형식언어 Chapter 3. Regular Languages and Regular Grammars
Chapter 7 ARP and RARP.
Compiler Lecture Note, Inroduction to FL theory
제 4 장 구문 분석.
“자연어처리” 소개 (Natural Language Processing)
어떤 과정으로 쓰면 될까.
Discrete Math II Howon Kim
4장 구문(Syntax).
REINFORCEMENT LEARNING
Discrete Math II Howon Kim
2. 형식언어 (Formal Language)
오토메타 형식언어 2003년도 제 2학기.
Windows 10 IoT Core Speech Recognition
DS020 오토마타형식언어 Chapter 6. Simplification of Context-Free Grammars and Normal Forms Exercises October 16, 2003.
푸시다운 오토마타.
제 5장. Context-Free Languages
학습목표 Turing Machine의 작동원리와 일반적인 계산모형으로서의 가능성 이해
Tel : Office : 2공학관 408호 오토마타 및 형식언어 김 현 성 Tel : Office : 2공학관 408호
Sung-Hae Jun 자연어 처리의 이해 Sung-Hae Jun
재귀 혹은 귀납 Recursive or Inductive Definition 집합을 정의하는 방법
학습목표 가장 단순한 Finite Automata를 통해 DFA와 NFA를 이해하고 그 둘의 능력이 같음을 확인한다.
Chapter 2. Finite Automata Exercises
Discrete Math II Howon Kim
주요 내용 형식 언어와 문법 정규식과 정규 집합 유한 상태 기계 정규 문법과 유한 상태 기계와 정규집합.
2. 형식언어 (Formal Language)
국가대표 생애주기교육 프로그램 참여방법 안내
학습목표 CFL을 accept하는 오토메타인 pda를 이해 npda와 dpda의 차이를 compiler의 측면에서 학습
7. LL 구문 분석 7-1. 결정적 구문 분석 7-2. Recursive-descent 파서 7-3. Predictive 파서 7-4. Predictive 파싱 테이블의 구성 7-5. Strong LL(k) 문법과 LL(k)문법.
제 4 장. Regular Language의 특성
학습목표 Pumping Lemma와 Closure 특성을 통해 CFL와 Language Family간의 관계 이해
고구려,백제,신라의 건국과 발전 Start!
Discrete Math II Howon Kim
칼빈의 생애와 개혁자로의 변모 사학과 김종식.
Discrete Math II Howon Kim
수업 첫 날 교육B 황유미 첫 수업 계획에 대해 알아보도록 하겠습니다..
문제 다음의 서술적 언어로 표현된 요구사항을 DFD로 완성하시오
국제의료관광 관련 법, 제도.
연결링크 이미지를 마일리지샵 내에 기획전으로 제작하여 오픈/노출 사이즈 가로 1000/세로 상관x 배너사이즈 가로 400
3. 정규 언어(Regular Language)
인천공항 스카이 허브라운지 상세페이지  배송비 부분에서 B2B, B2C 두가지 버전이 필요하며,
Discrete Math II Howon Kim
4. 어휘 분석(Lexical analysis)
Chapter 5. Context-Free Language Exercises
이산수학(Discrete Mathematics)
CHAPTER 9-1 한국의 사회복지정책 - 사회보험제도 -
제12장. Algorithmic Computation의 한계
스케줄링 (Scheduling) 시스템 내부시간(time in the system): 스케줄링 문제
점화와 응용 (Recurrence and Its Applications)
브라피팅 메뉴얼 리바이스 바디웨어
이산수학(Discrete Mathematics)
욕은 나의 삶을 망치는 나쁜 습관이다. '욕하면서 배우고 칭찬하며 닮아간다.'
제 3장. Regular Languages 와 Regular Grammars
제10장. Other Models of TM’s 학습목표
[CPA340] Algorithms and Practice Youn-Hee Han
논증의 타당성/부당성 검증 Verification/Falsification
경찰학 세미나 제 5 강 경찰관직무집행법 2조 5호의 의미 신라대학교 법경찰학부 김순석.
시나브로 기획안.2 By.임나연.
Presentation transcript:

Chapter 7. PUSHDOWN AUTOMATA Exercises DS020 오토마타형식언어 Chapter 7. PUSHDOWN AUTOMATA Exercises September 25, 2003

4. Construct npda’s that accept the following languages on 7.1 NONDETERMINISTIC PUSHDOWN AUTOMATA 4. Construct npda’s that accept the following languages on Solution Start state : q0 Start stack symbol : z Final state : qf p(q0, λ, z) = (qf, z) p(q0, a, z) = (q1, 00z) p(q1, a, 0) = (q1, 000) p(q1, b, 0) = (q2, λ) p(q2, b, 0) = (q2, λ) p(q2, λ, z) = (qf, z) 힌트 : 하나의 a가 두개의 b와 매치되도록 합니다. September 25, 2003

7.1 NONDETERMINISTIC PUSHDOWN AUTOMATA Start state : q0 Start stack symbol : z Final state : qf p(q0, b, z) = (q3, 1z) // b로 시작하는 경우 p(q0, a, z) = (q1, 0z) // a로 시작하는 경우 p(q1, a, 0) = (q1, 00) p(q1, b, 0) = (q2, λ) p(q2, b, 0) = (q2, λ) p(q2, b, z) = (q3, 1z) p(q3, b, 1) = (q3, 11) p(q3, c, 1) = (q4, λ) p(q4, c, 1) = (q4, λ) p(q4, λ, z) = (qf, λ) Solution anbn bmcm 힌트 : a와 b의 개수를 먼저 맞추고, 그 다음 b와 c의 개수를 맞추도록 합시다. September 25, 2003

7.1 NONDETERMINISTIC PUSHDOWN AUTOMATA Start state : q0 Start stack symbol : z Final state : qf p(q0, a, z) = (q1, z) // a로 시작하는 경우 첫 a를 무시 p(q0, b, z) = (q1, 11z) // b로 시작하는 경우 첫 b를 두 개로 계산 p(q1, a, z) = (q1, 0z) p(q1, a, 0) = (q1, 00) p(q1, b, 0) = (q1, λ) p(q1, b, 1) = (q1, 11) p(q1, a, 1) = (q1, λ) p(q1, λ, z) = (qf, z) Solution na(w) = nb(w) 힌트 : a로 시작하는 경우와 b로 시작하는 경우를 따로 생각해서, a로 시작할 때는 하나를 무시해주고, b로 시작할 때는 처음 나오는 b를 두개로 쳐줍시다. September 25, 2003

7.1 NONDETERMINISTIC PUSHDOWN AUTOMATA Start state : q0 Start stack symbol : z Final state : qf Solution p(q0, λ, z) = (qf, z) p(q0, a, z) = (q1, 00z), (q1, 000z) p(q0, b, z) = (q2, 1z) p(q1, a, 0) = (q1, 000), (q1, 0000) p(q1, b, 0) = (q1, λ) p(q1, a, z) = (q1, 00z), (q1, 000z) p(q1, b, z) = (q2, 1z) p(q2, b, 1) = (q2, 11) p(q2, a, 1) = (q3, λ) p(q3, λ, 1) = (q2, λ), (q4, λ) p(q4, λ, 1) = (q2, λ) p(q2, a, z) = (q1, 00z), (q1, 000z) p(q2, b, z) = (q2, 1z) p(q3, λ, z) = (q1, 0z), (q1, 00z) p(q4, λ, z) = (q1, 0z) p(q1, λ, z) = (qf, z) p(q2, λ, z) = (qf, z) q1과 q2는 꼭 나눌 필요가 없는것 같군요.. 그 이유는 stack의 top으로 구별가능하기 때문입니다. 힌트 : 하나의 a에 대하여 2개 혹은 3개의 b와 매치가 되도록 해봅시다. September 25, 2003

설명 p(q0, λ, z) = (qf, z) // empty string  final p(q0, a, z) = (q1, 00z), (q1, 000z) // 시작 입력이 a인 경우 p(q0, b, z) = (q2, 1z) // 시작 입력이 b인 경우 p(q1, a, 0) = (q1, 000), (q1, 0000) // a가 더 많은데, a가 나오면 2개 혹은 3개 추가 p(q1, b, 0) = (q1, λ) // a가 더 많은데, b가 나오면 a 한 개 감소 p(q1, a, z) = (q1, 00z), (q1, 000z) // 스택이 바닥일 때 a가 나온 경우 p(q1, b, z) = (q2, 1z) // 스택이 바닥일 때 b가 나온 경우 p(q2, b, 1) = (q2, 11) // b가 더 많은데 b가 나온 경우 b 한 개 추가 p(q2, a, 1) = (q3, λ) // b가 더 많은데 a가 나온경우 2개 혹은 3개를 // 빼야 하므로 일단 한 개 빼고 q3로 이동 p(q3, λ, 1) = (q2, λ), (q4, λ) // 아직 b가 많은 경우 하나 더 빼려면 q2로, // 두 개 더 빼려면 q4로 이동 p(q4, λ, 1) = (q2, λ) // 아직 b가 많으므로 하나 더 빼고 다시 q2로 이동 p(q2, a, z) = (q1, 00z), (q1, 000z) // 스택이 바닥일 때 a가 나온 경우 p(q2, b, z) = (q2, 1z) // 스택이 바닥일 때 b가 나온 경우 p(q3, λ, z) = (q1, 0z), (q1, 00z) // 빼야 할 a가 1개 혹은 2개 남았을 때 스택이 바닥 // 인 경우 p(q4, λ, z) = (q1, 0z) // 빼야 할 a가 1개 남았을 때 스택이 바닥인 경우 p(q1, λ, z) = (qf, z) // 입력을 다 소비하고 스택이 바닥인 경우 p(q2, λ, z) = (qf, z) // 입력을 다 소비하고 스택이 바닥인 경우 September 25, 2003 스택의 역할 : a의 개수가 많은지 b의 개수가 많은지 비교 단, a 하나는 2개 혹은 3개로 고려합니다.

7.1 NONDETERMINISTIC PUSHDOWN AUTOMATA 14. Find an npda with no more than two internal states that accepts the language L(aa*ba*). Start state : q0 Start stack symbol : z Final state : qf p(q0, a, z) = (q0, 1) p(q0, a, 1) = (q0, 1) p(q0, b, 1) = (q0, 2) p(q0, a, 2) = (q0, 2) p(q0, λ, 2) = (qf, 2) Solution 힌트 : state 대신 stack symbol을 이용하여 상태를 구분할 수 있습니다. September 25, 2003

7.2 PUSHDOWN AUTOMATA AND CONTEXT-FREE LANGUAGES 3. Construct an npda that accepts the language generated by the grammar Start state : q0 Start stack symbol : z Final state : qf p(q0, a, z) = (q1, z) // 처음 나오는 a를 무시 p(q1, a, z) = (q2, z) // 두번 째 나오는 a를 무시 p(q2, b, z) = (qf, z) p(q2, a, z) = (q2, 00z) p(q2, a, 0) = (q2, 000) p(q2, b, 0) = (q3, 0) // 처음 나오는 b를 무시 p(q3, b, 0) = (q3, λ) p(q3, λ, z) = (qf, z) Solution 힌트 : aa와 b를 무시하면 나머지는 anb2n을 구성하는 문제이군요. September 25, 2003

7.2 PUSHDOWN AUTOMATA AND CONTEXT-FREE LANGUAGES 5. Construct an npda corresponding to the grammar S → aABB|aAA, A→ aBB|a, B→ bBB|A. Start state : q0 Start stack symbol : z Final state : qf p(q0, λ, z) = (q1, Sz) p(q1, a, S) = (q1, ABB), (q1, AA) p(q1, a, A) = (q1, BB), (q1, λ) p(q1, b, B) = (q1, BB) p(q1, λ, B) = (q1, A) p(q1, λ, z) = (qf, z) Solution September 25, 2003

7.2 PUSHDOWN AUTOMATA AND CONTEXT-FREE LANGUAGES 15. Find a context-free grammar that generates the language accepted by the npda , with transitions Solution Step 1) 주어진 NPDA는 PDA  CFG 기법의 조건 2는 만족시키지만, 조건 1은 만족시키지 못한다. 따라서 equivalent PDA로 수정이 필요하다. 단 하나의 final state와 stack이 비어야만 final state로 갈 수 있도록 고쳐보면, Start state : q0, final state : q3, start stack symbol : z p(q0, a, z) = (q0 Az) p(q0, b, A) = (q2, λ) p(q2, λ, z) = (q0, Az) p(q0, a, A) = (q1, λ) p(q1, λ, z) = (q3, λ) September 25, 2003

Step 2) 교과서의 정리방법을 그대로 따라서 정리한다. 편의상 q0zq0 는 z00, q0Aq2 는 A02 인 식으로 표현하면 A02  b, A01  a, z13  λ Z00  aA00z00 | aA01z10 | aA02z20 | aA03z30 Z01  aA00z01 | aA01z11 | aA02z21 | aA03z31 Z02  aA00z02 | aA01z12 | aA02z22 | aA03z32 Z03  aA00z03 | aA01z13 | aA02z23 | aA03z33 Z20  A00z00 | A01z10 | A02z20 | A03z30 Z21  A00z01 | A01z11 | A02z21 | A03z31 Z22  A00z02 | A01z12 | A02z22 | A03z32 Z23  A00z03 | A01z13 | A02z23 | A03z33 Step 3) 존재하지 않는 non-terminal을 제거하고, 편의상 다음과 같이 symbol들을 변환합시다. z03  S, z00  A, z01  B, z02  C z20  D, z21  E, z22  F, z23  G September 25, 2003

Step 5) D, E, F는 useless이므로 삭제하고, 관련된 A, B, C도 지우면, S  aa | abG A  abD B  abE C  abF D  bD E  bE F  bF G  a | bG Step 5) D, E, F는 useless이므로 삭제하고, 관련된 A, B, C도 지우면, S  aa | abG G  a | bG September 25, 2003

1. Show that is a deterministic context-free language. 7.3 DETERMINISTIC PUSHDOWN AUTOMATA AND DETERMINISTIC CONTEXT-FREE LANGUAGES 1. Show that is a deterministic context-free language. Start state : q0 Start stack symbol : z Final state : q0 p(q0, a, z) = (q1, 00z) p(q1, a, 0) = (q1, 000) p(q1, b, 0) = (q2, λ) p(q2, b, 0) = (q2, λ) p(q2, λ, z) = (q0, λ) Solution September 25, 2003

8. Is the language L={anbm:n=m or n=m+2} deterministic? 7.3 DETERMINISTIC PUSHDOWN AUTOMATA AND DETERMINISTIC CONTEXT-FREE LANGUAGES 8. Is the language L={anbm:n=m or n=m+2} deterministic? Start state : q0 Start stack symbol : z Final state : {q0, q2, q5} p(q0, a, z) = (q1, z) // q1 : n = m + 1 p(q1, a, z) = (q2, z) // q2 : n = m + 2 p(q1, b, z) = (q0, λ) // q0 : n = m p(q2, a, z) = (q3, 0z) // q3 : n > m+2 p(q2, b, z) = (q6, λ) p(q3, a, 0) = (q3, 00) p(q3, b, 0) = (q4, λ) // q4 : n > m+2 p(q4, b, 0) = (q4, λ) p(q4, λ, z) = (q5, z) // q5 : n = m + 2 p(q5, b, z) = (q6, z) // q6 : n = m + 1 p(q6, b, z) = (q0, λ) Solution September 25, 2003

7.4 GRAMMARS FOR DETERMINISTIC CONTEXT-FREE LANGUAGES 8. Let G be a context-free grammar in Grebach normal form. Describe an algorithm which, for any given k, determines whether or not G is an LL(k) grammar. September 25, 2003

9. Give LL grammars for the following languages, assuming 7.4 GRAMMARS FOR DETERMINISTIC CONTEXT-FREE LANGUAGES 9. Give LL grammars for the following languages, assuming September 25, 2003