푸시다운 오토마타.

Slides:



Advertisements
Similar presentations
제 7 장 생산비용. ©2005 Pearson Education, Inc. Chapter 72 문제 : 붕어빵 사업 정 붕어씨는 강대 후문 앞에서 붕어빵 사업을 하고 있다. 그의 목적은 이윤을 극대화하는 것이다. 그는 어떻게 이윤을 극대화할 수 있을까 ?  이윤이란.
Advertisements

문창동 성당 국제 성지순례 – ~10.3. / 10 박 11 일. ● 일정 ▲ 방문과 순례 ♣ 중요참조 ● 일 : 피라미드 / 스핑크스 → 아기 예수님 피난성당 ( 꼽틱 정교회 ) → 모세 기념성당 → 박물관 → 카이로 한인성당 ( 미사 )
열왕기 상하는 중요하다 ! 왜 ? 시가 3 권 예언서 12 원 열왕기 상하는 중요하다 ! 대라느스 단겔학슥말.
2 3 4 논산인구(노인인구 비율)는? 논산인구(노인인구 비율)는? 대표적 축제? 대표적 축제? 시의 상징 시조? 시화? 시목? 시의 상징 시조? 시화? 시목? 논산 8경? 논산 8경? 계백장군? 계백장군?
 수학 10- 나  1 학년 2 학기  Ⅰ. 도형의 방정식 1. 평면좌표 (1/24) 두 점 사이의 거리 수업 계획 수업 활동.
제 5 강 근대수학의 여명 무리수 (Irrational number) 인도, 아라비아 (0 과 음수 ) 데카르트 - 해석기하학.
3 월 월 례 회 / 개원 8 주년 행사 드리겠습니다 사랑을, 만들겠습니다 기적을. 개 회부 서 별 업 무 보 고부 서 별 업 무 보 고직 장 금 연 선 포폐 회국 민 의 례 차 례 신 규 직 원 소 개 개 원 기 념 행 사 원 장 인 사공 지 사 항.
행복한 금연 김지영, 박시영, 박윤조, 박은미, 조윤희. 담배의 발암물질 담배의 구성성분 인체에 미치는 악영향.
-( 으 ) 면 지하철을 타세요. 지하철을 타면 빨리 갈 수 있어요. 친구를 만나러 시청 앞에 가야 해요. 어떻게 가야 해요 ? 친구를 만나러 시청 앞에 가야 해요. 어떻게 가야 해요 ? Sogang Korean 2A UNIT 4 “- 으면 ”
성결 어린이 영등포교회 유년부 정답은 뒷면에 제 11-31호 2011월 8월 14일 어디로 가세요?
2.2 기본 개념 (문자열, 정규식(불리언 표현식), 유한 오토마타) 문자열
언어와 문법 (languages, grammar)
Ⅵ. 평 면 도 형 1. 기 본 도 형 2. 작도와 삼각형의 합동 3. 다각형과 원 수학
(2) 고대 국가의 성립  1) 고대 국가의 성격    ① 중앙 집권 체제      - 국왕의 지위 강화, 부족장 세력의 통합,
프로젝트 학습 중간 보고서 군포초등학교부설 지역공동 영재학급 용호초등학교5학년 이창민.
QzQz ! 유머 100선 1. 살찐 여인이 일광욕하는 모습을 4글자로 한다면 ? 2. 중국에서 가장 무식한 사람은 ?
컴파일러 입문 제 5 장 Context-Free 문법.
Ⅵ. 빛(단원학습목표).
보안등 고장관리 자동화시스템 시범운영 제안서 인천광역시 서구 민관협력개발 032) )
오존층 파괴의 실태와 영향 김지수 오선아 조은서 미토콘드리아 조.
공교육 정상화 및 선행학습 금지 학부모 연수 부천송일초등학교.
乖乖♂坐好 开始♂上课.
圣诞快乐 乖乖♂坐好 开始♂上课.
2015 담당 강사 : 정세진 중국 명문 감상 2015 담당 강사 : 정세진
일본노인의료시설연수 치바소우센병원 – 교외형 노인병원 동경도리하빌리테이션병원 – 재활병원 미츠이광양원 – 노인복지시설
제 4 장 구문 분석.
해시 함수.
통로이미지㈜ 마케팅실 신입/경력 모집 ◎ 모집부분 및 자격요건 ◎ 채용인원 ◎ 전형절차 ◎ 제출서류 ◎ 연봉 ◎ 사전인터뷰
Discrete Math II Howon Kim
2. 형식언어 (Formal Language)
문법과 언어.
영덕풍력발전단지 준공 기념식 행사(안) 경영기획실.
Chapter 7. PUSHDOWN AUTOMATA Exercises
인류의 분산 언어의 대 혼잡시기 창조,타락 홍수 바벨탑사건 아브라함 모세 BC 고조선 하/은/주 (창 11:7,9) 『[7] 자, 우리가.
에너지 운동량 방법: 일과 에너지법칙 1. 상자들이 초기속도 vo로 컨베이어 벨트로 운반되어 A에서 미끄러져서 B에서 떨어진다. μk= 0.40이고, 상자가 2.4m/s로 B점에서 떨어질 때 컨베이어 벨트의 속도를 구하라.
Chapter 2. Finite Automata Exercises
Discrete Math II Howon Kim
도덕 1학년 1학기 2. 개성신장과 인격 도야:인물학습 석가모니 인물학습 -석가모니.
주요 내용 형식 언어와 문법 정규식과 정규 집합 유한 상태 기계 정규 문법과 유한 상태 기계와 정규집합.
1.고객맞이 상황 응대자세 화법 중점사항 매장 밖 에 서 도보 고객 고객 방향 쪽으로 바른 자세를 취한다
이재상 기본 논리회로와 불의 대수 이재상
7장: 빛의 간섭과 회절 빛의 간섭 단일슬릿과 회절 회절격자 – 더 선명해진 간섭무늬.
학습목표 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)문법.
김포 한강베네치아 상가분양 3층~5층 오피스텔 226세대 1층~2층 상가 분양문의 : 이효철( )
고구려,백제,신라의 건국과 발전 Start!
과학 탐구 토론 대회 1학년 2반 박승원 1학년 5반 권민성.
우리는 부모를 닮지만, 왜 똑같지는 않을까? 유전적 다양성 독립 연관과 교차 무작위 수정.
Discrete Math II Howon Kim
쿰란 쿰란 와디 항공촬영 .
3. 정규 언어(Regular Language)
수업활동 안내 탐구 학습 1. 전시학습 2. 학습목표 3. 도입 4. 기초 내용 학습 5. 문제 제기
인천공항 스카이 허브라운지 상세페이지  배송비 부분에서 B2B, B2C 두가지 버전이 필요하며,
Discrete Math II Howon Kim
4. 어휘 분석(Lexical analysis)
평 면 도 형 도형의 작도 삼각형의 작도와 결정조건 도형의 합동 작도와 삼각형의 합동 학습내용을 로 선택하세요
평 면 도 형 기본도형 기본도형 각 위치관계 평행선의 성질 로 선택하세요 로 클릭해 보세요
판촉왕 공식인증센터_PC
수학10-나 1학년 2학기 Ⅰ. 도형의 방정식 2. 직선의 방정식 (8/24) 두 직선의 수직 수업계획 수업활동.
제 6 장  상향식 파싱.
수학8가 대한 108~110 쪽 Ⅴ. 부등식 2. 일차부등식 §1.일차부등식의 풀이(5/10) 일차부등식의 풀이.
기술가정 2학년 1학기 2.재료의 이용>1) 목재,플라스틱,금속재료의 특성>11/15제품의 구상
강의 교안 학년-학기 과목명 의료사회사업론 주차명 7주차. 의료사회복지사의 역할 담당교수 신 상 수.
진리 나무 Truth-tree  ∧ ∨ → ↔  =.
제 3장. Regular Languages 와 Regular Grammars
유예 X-FILE *조사자* 1301권희원 1315이예지 1317장아정 1322홍자현.
2012년 9월 16일 바벨탑 사건과 셈의 후손들의 족보 ▣말씀:창세기 11:1-32 예 수 복 된 교 회.
베트남.
표준화 이론 표준형 구조나무 표준화 정리  ∧ ∨ → ↔  =.
시나브로 기획안.2 By.임나연.
Presentation transcript:

푸시다운 오토마타

문맥 자유 문법 문맥 자유 문법  문맥 자유 언어 유한 오토마타로 인식 불가능 L={anbn : n>= 0} 유한 오토마타 : 유한 메모리 문맥 자유 언어 : 무한한 양의 정보 저장 능력 필요 L={anbn : n>= 0} 모든 a는 b 앞에 놓여야 함 a의 개수 계산이 가능 하여야 함

문맥 자유 문법 L={wwR} 해결책 심볼들의 순서열을 역순으로 저장하는 능력 필요 스택과 같은 작동 능력 필요 무한정의 저장 용량 허용

푸시다운 오토마타 Input file Stack Control unit

푸시다운 오토마타 푸시다운 오토마타 비결정적 문맥-자유 언어 결정적 문맥-자유 언어 결정적  비결정적

비결정적 푸시다운 오토마타

정의 7.1 비결정적 푸시 다운 인식기는 7개의 요소로 구성 M = ( Q, , , , q0, z, F)  : 입력 알파벳  : 스택 알파벳  : 전이 함수 Q  (  {})    Q  * q0Q : 제어 유닛의 초기 상태(start state) z : 스택의 시작 심벌 FQ : 종료 상태(final state)의 집합

정의 7.1  : 전이 함수 Q  (  {})   제어 유닛의 현재 상태(Q) 읽혀질 심볼(),  전이 가능 스택의 톱에 놓여 있는 심볼()  Q  * 제어 유닛의 다음 상태 (Q) 스택의 톱에 놓여질 심볼 ()

예제 7.1 npda가 다음 전이를 포함 (q1,a,b) = {(q2,cd),(q3,)} 현재 상태 가능한 전이 문자열 cd가 스택의 톱에 있는 b를 교체 (q3,) 제어 유닛의 상태 : q3 스택의 톱에 심볼 b는 제거

예제 7.2 다음과 같은 npda를 고려 Q={q0,q1,q2,q3}, ={a,b}, ={0,1}, z=0, F={q3} 그리고 (q0,a,0)={(q1,10),(q3, )} (q0,,0)={(q3, )} (q1,a,1)={(q1, 11)} (q1,b,1)={(q2, )} (q2,b,1)={(q2, )} (q2,,0)={(q3, )}

예제 7.2 전이 고려 L={anbn : n>= 0}U{a}인식 모든 가능한 입력 심볼과 스택 심볼의 조합에 대해서 규정되지 않음 => 공집합 간주 a가 읽혀지면 스택에 1을 하나 추가 (q1,a,1)={(q1, 11)} b가 읽혀지면 1을 하나 제거 (q1,b,1)={(q2, )}, (q2,b,1)={(q2, )} L={anbn : n>= 0}U{a}인식

순간적 묘사 문자열을 처리하는 동안 npda의 연속적인 형상들을 설명하는 표기법 (q,w,u) u : 스택의 내용(u의 가장 왼쪽 심볼이 스택의 탑) 한 순간적 묘사로부터 다른 순간적 묘사로의 이동은 심볼 로 표기 (q2,y)  (q1,a,b)일때 (q1,aw,bx) (q2,w,yx)

PDA에 의하여 승인되는 언어 정의 7.2 M = ( Q, , , , q0, z, F)를 비결정적 푸시다운 오토마타라 하자. M에 의하여 인식되는 언어는 집합 L(M)={w*:(q0,w,z) (p,,u),pF,u*} 즉, M에 의하여 인식되는 언어는 M이 입력심볼을 다 읽고 종료 상태에 놓일 수 있는 문자열의 집합이다. 스택의 내용 u는 인식과는 무관 * M

예제 7.3 언어 L={w{a,b}*:na(w)=nb(w)} 에 대한 npda를 구성 a와 b의 순서는 고려할 필요 없음

예제 7.3 Npda M=({q0,qf},{a,b},{0,1,z},,q0,z,{qf}) (q0,,z)={(qf,z)} (q0,a,z)={(q0,0z)} (q0,b,z)={(q0,1z)} (q0,a,0)={(q0,00)} (q0,b,0)={(q0, )} (q0,a,1)={(q0,)} (q0,b,1)={(q0,11)}

예제 7.3 문자열 baab 의 유도과정 (q0,baab,z) (q0,aab,1z) (q0,ab,z) (q0,b,0z) (q0,,z) (qf,,z)

예제 7.4 언어 L={wwR:w {a,b)+} 에 대한 npda를 구성 스택을 이용하여 입력 심볼의 삽입된 역순으로 회수될 수 있음을 이용 문자열의 첫 부분을 읽을때 연속적인 심볼들을 스택에 삽입 두번째 부분에서 현재 입력 심볼을 스택의 탑 십볼과 비교하여 두 심볼이 일치하면 처리 계속 수행

예제 7.4 npda M=({q0,q1,q2},{a,b},{a,b,z},,q0,z,{q2}) (q0,a,z)={(q0,az)} (q0,b,z)={(q0,bz)} (q0,a,a)={(q0,aa)} (q0,b,a)={(q0,ba)} (q0,a,b)={(q0,ab)} (q0,b,b)={(q0,bb)} 문자열의 중간을 추측하는 전이는 상태를 q0에서 q1 (q0,,a)={(q1,a)} (q0,,b)={(q1,b)}

예제 7.4 wR과 스택의 내용이 일치하는지를 확인하는 전이들 (q1,a,a)={(q1, )} (q1,b,b)={(q1,)} 마지막으로 성공적인 일치를 인식하는 전이 (q1,,z)={(q2,z)}

예제 7.4 abba를 승인하는 일련의 이동 (q0,abba,z) (q0,baa,az) (q0,ba,baz) (q1,ba,baz) (q1,a,az) (a1,,z) (q2,z) 문자열의 중간의 위치 결정을 위한 전이 순간적 묘사(q0,ba,baz)는 두가지 선택 (q0,b,b)={(q0,bb)}를 이용 (q0,ba,baz) (q0,a,bbaz) (q0,,b)={(q1,b)}를 이용 (q0,ba,baz) (q1,ba,baz)

푸시다운 오토마타와 문맥-자유 언어 문맥-자유언어 npda

문맥-자유 언어에 대한 NPDA 문맥-자유 언어 그 언어를 인식하는 npda가 존재함을 보임 문자열 유도과정 언어가 Greibach 정규형인 문법에 의하여 생성된다고 가정 언어에 속한 모든 문자열의 좌측우선 유도이용 문자열 유도과정 문장형태의 오른쪽 부분에 있는 변수들을 스택에 유지 단말로 이루어진 왼쪽 부분은 읽은 입력과 일치시킴

문맥-자유 언어에 대한 NPDA 스택에 시작심볼 입력 생성규칙 A->ax 스택의 탑에 변수 A가 있어야 함

예제 7.5 다음 생성규칙을 갖는 문법으로 생성된 언어를 인식하는 pda를 구성 S->aSbb|a

예제 7.5 S->aSbb|a 문법을 Greibach 정규형으로 S->aSA|a A->bB B->b 오토마타의 상태 {q0, q1, q2} q0 : 초기상태, q2 : 종료상태 시작심볼 : S 시작 심볼을 위한 전이 정의 (q0,,z)={(q1,Sz)} S->aSbb|a

예제 7.5 S->aSA 입력으로 a를 읽는 동안, 스택에서 S를 제거하고 SA로 교체 S->a => (q1,a,S)={(q1,SA),(q1,)}

예제 7.5 A->bB, B->b (q1,b,A)={(q1,B)} (q1,b,B)={(q1,)} 스택의 시작심볼이 스택의 탑에 나타나면 유도의 완료를 뜻하고 pda는 다음 전이에 의하여 종료 상태에 놓임 (q1,,z)={(q2,)}

정리 7.1 모든 문맥-자유 언어 L에 대하여, L=L(M)인 npda M이 존재한다.

정리 7.1 언어 L이 -자유인 문맥-자유 언어라면, L에 대한 Greibach 정규형인 문맥-자유 문법이 존재 => G=(V,T,S,P) 문법의 좌측우선 유도를 시뮬레이션 하는 npda 구성 가능 M=({q0,q1,qf},T,VU{z},,q0,{qf}) 입력 알파벳은 G의 단말들의 집합과 동일 스택 알파벳은 문법의 변수들의 집합 포함

정리 7.1 전이함수 M의 첫번째 이동 후 스택이 시작심볼 S (q0,,z)={(q1,Sz)} P에 속한 각 생성규칙 A->au (q1,u)  (q1,a,A) M은 입력 a를 읽고 변수 A를 스택에서 u로 교체 마지막 종료상태를 위해 (q1,,z)={(qf,z)}

정리 7.1 * M이 모든 w  L(G)를 승인하는 것을 보이기 위해, 좌측우선 유도를 다음과 같이 보일 수 있다 S => w 이면 (q1,w,Sz) (q1,,z) 이고, (q0,w,z) (q1,w,Sz) (q1,,z) (qf,,z) 따라서 L(G)  L(M)이다. *

정리 7.1 만약   L이면, npda에서 빈 문자열이 승인되도록 전이 를 추가하면 된다. (q0,,z)={(qf,z)} 를 추가하면 된다.

예제 7.6 다음의 문법을 고려해보자 S->aA A->aABC|bB|a B->b C->c

예제 7.6 S->aA A->aABC|bB|a B->b C->c 문법이 이미 Greibach 정규형 전이규칙 시작 : (q0,,z)={(q1,Sz)} 종료 : (q1,,z)={(qf,z)} 나머지 (q1,a,S)={(q1,A)} (q1,a,A)={(q1,ABC),(q1,)} (q1,b,A)={(q1,B)} (q1,b,B)={(q1,)} (q1,c,C)={(q1,)}

예제 7.6 aaabc를 위한 이동 (q0,aaabc,z) (q1,aaabc,Sz) (q1,aabc,Az) 시작 : (q0,,z)={(q1,Sz)} 종료 : (q1,,z)={(qf,z)} 나머지 (q1,a,S)={(q1,A)} (q1,a,A)={(q1,ABC),(q1,)} (q1,b,A)={(q1,B)} (q1,b,B)={(q1,)} (q1,c,C)={(q1,)} 예제 7.6 aaabc를 위한 이동 (q0,aaabc,z) (q1,aaabc,Sz) (q1,aabc,Az) (q1,abc,ABCz) (q1,bc,BCz) (q1,c,Cz) (q1,,z) (qf,,z)

PDA에 대한 문맥-자유 문법 정리 7.1의 과정을 거꾸로 적용 스택의 내용은 문장 형태의 변수 부분을 반영 이미 처리된 입력은 문장 형태의 단말인 접두부 논의를 단순하게 하기 위한 조건 조건1) npda는 단 하나의 종료 상태를 갖고 스택이 비어야만 종료 상태로 이동 가능 조건2) 모든 전이는 (qi,a,A)={c1,c2,…,cn)} 의 형태를 가짐 ci = (qj, ), 스택의 내용을 한 심볼씩 감소 ci = (qj, BC), 스택의 내용을 한 심볼씩 증가

PDA에 대한 문맥-자유 문법 Variable의 형식 => (qiAqj) Npda가 v를 읽고 상태를 qi에서 qj로 바꾸는 동안 A를 스택에서 제거 (qiAqj) => v 인식 (q0zqf) => w * *

PDA에 대한 문맥-자유 문법 (qi,a,A)={c1,c2,…,cn)} 의 형태를 가짐 ci = (qj, ) => (qiAqj) -> a ci = (qj, BC) => (qiAqj) -> a(qiBqk)(qkCqj)

예제 7.7 다음 전이를 가진 npda를 고려 (q0,a,z)={(q0,Az)} (q0,a,A)={(q0,A)} (q0,b,A)={(q1,)} (q1,,z)={(q2,)}

예제 7.7 (q0,a,z)={(q0,Az)} (q0,a,A)={(q0,A)} (q0,b,A)={(q1,)} PDA -> CFG 조건1, 2 적용 => 조건1 만족, 조건 2 적용 (q0,a,z)={(q0,Az)} (q0,a,A)={(q0,A)} (q0,b,A)={(q1,)} (q1,,z)={(q2,)} (q0,a,z)={(q0,Az)} (q3,,z)={(q0,Az)} (q0,a,A)={(q3,)} (q0,b,A)={(q1,)} (q1,,z)={(q2,)}

예제 7.7 (q0,a,z)={(q0,Az)} (q3,,z)={(q0,Az)} (q0,a,A)={(q3,)} (q0,b,A)={(q1,)} (q1,,z)={(q2,)} (q0Aq3)->a (q0Aq1)->b (q1zq2)-> 

예제 7.7 (q0,a,z)={(q0,Az)} (q3,,z)={(q0,Az)} (q0,a,A)={(q3,)} (q0,b,A)={(q1,)} (q1,,z)={(q2,)} (q0zq0)->a(q0Aq0)(q0zq0)|a(q0Aq1)(q1zq0)| a(q0Aq2)(q2zq0)|a(q0Aq3)(q3zq0) (q0zq1)->a(q0Aq0)(q0zq1)|a(q0Aq1)(q1zq1)| a(q0Aq2)(q2zq1)|a(q0Aq3)(q3zq1) (q0zq2)->a(q0Aq0)(q0zq2)|a(q0Aq1)(q1zq2)| a(q0Aq2)(q2zq2)|a(q0Aq3)(q3zq2) (q0zq3)->a(q0Aq0)(q0zq3)|a(q0Aq1)(q1zq3)| a(q0Aq2)(q2zq3)|a(q0Aq3)(q3zq3)

예제 7.7 (q0,a,z)={(q0,Az)} (q3,,z)={(q0,Az)} (q0,a,A)={(q3,)} (q0,b,A)={(q1,)} (q1,,z)={(q2,)} (q3zq0)->(q0Aq0)(q0zq0)|(q0Aq1)(q1zq0)| (q0Aq2)(q2zq0)|(q0Aq3)(q3zq0) (q3zq1)->(q0Aq0)(q0zq1)|(q0Aq1)(q1zq1)| (q0Aq2)(q2zq1)|(q0Aq3)(q3zq1) (q3zq2)->(q0Aq0)(q0zq2)|(q0Aq1)(q1zq2)| (q0Aq2)(q2zq2)|(q0Aq3)(q3zq2) (q3zq3)->(q0Aq0)(q0zq3)|(q0Aq1)(q1zq3)| (q0Aq2)(q2zq3)|(q0Aq3)(q3zq3)

예제 7.7 문자열 aab의 인식(pda) (q0,aab,z) (q0,ab,Az) (q3,b,z) (q0,b,Az) (q0,a,z)={(q0,Az)} (q0,a,A)={(q0,)} (q0,b,A)={(q1,)} (q1,,z)={(q2,)} 예제 7.7 문자열 aab의 인식(pda) (q0,aab,z) (q0,ab,Az) (q3,b,z) (q0,b,Az) (q1,,z) (q2,,)

예제 7.7 문자열 aab의 인식(CFG) (q0zq2) => a(q0Aq3)(q3zq2) => aa(q3zq2) (q0zq2)->a(q0Aq0)(q0zq2)|a(q0Aq1)(q1zq2)| a(q0Aq2)(q2zq2)|a(q0Aq3)(q3zq2) (q3zq2)->(q0Aq0)(q0zq2)|(q0Aq1)(q1zq2)| (q0Aq2)(q2zq2)|(q0Aq3)(q3zq2) (q0Aq3)->a (q0Aq1)->b (q1zq2)->  예제 7.7 문자열 aab의 인식(CFG) (q0zq2) => a(q0Aq3)(q3zq2) => aa(q3zq2) => aa(q0Aq1)(q1zq2) => aab(q1zq2) => aab

정리 7.2 만약 어떤 npda M에 대하여 L = L(M) 이면, L은 문맥-자유 언어이다 증명은 교재참조

결정적 PDA와 결정적 CFG

결정적 PDA 이동에 있어서 선택의 여지가 없는 PDA

정의 7.3 PDA M = ( Q, , , , q0, z, F)이 다음의 제약 조건을 만족하면 결정적 PDA (q,a,b)는 많아야 한 개의 원소를 포함 주어진 입력 심볼과 스택 톱 심볼에 대하여 많아야 하나의 이동만이 존재 만약 (q,,b)가 공집합이 아니면, 모든 c   에 대하여 (q,c,b)는 공집합이어야 함 어떤 형상에서  전이가 가능할 경우, 어떤 입력을 사용하는 이동도 주어지지 않아야 함

FA와 PDA의 차이점 전이를 유지 전이가 공집합 일수도 있음 결정성 => 언제든지 많아야 하나의 가능한 이동이 존재 스택의 탑 심볼이 다음 이동을 결정하는 데 영향을 줌 => 전이 가능 전이가 공집합 일수도 있음 종말형상이 있을 수도 있음 결정성 => 언제든지 많아야 하나의 가능한 이동이 존재

정의 7.4 L=L(M)인 dpda M이 존재하고 오직 그럴 때에만 언어 L을 결정적 문맥-자유 언어라 한다.

예제 7.8 다음 언어는 결정적 문맥-자유 언어이다. L={anbn : n>= 0} => PDA가 존재함을 보임

예제 7.8 아래와 같은 전이를 갖는 pda M=({q0,q1,q2}, {a,b},{0,1},,q0,0,{qf})는 주어진 언어를 인식한다. (q0,a,0)={(q1,10)} (q1,a,1)={(q1,11)} (q1,b,1)={(q2,)} (q2,b,1)={(q2, )} (q2,,0)={(q0,)} M은 정의 7.4의 조건을 만족하고 따라서 결정적이다.

예제 7.4 비결정적 L={wwR:w {a,b)+} npda M=({q0,q1,q2},{a,b},{a,b,z},,q0,z,{q2}) (q0,a,z)={(q0,az)} (q0,b,z)={(q0,bz)} (q0,a,a)={(q0,aa)} (q0,b,a)={(q0,ba)} (q0,a,b)={(q0,ab)} (q0,b,b)={(q0,bb)} 문자열의 중간을 추측하는 전이는 상태를 q0에서 q1 (q0,,a)={(q1,a)} (q0,,b)={(q1,b)} wR과 스택의 내용이 일치하는지를 확인하는 전이들 (q1,a,a)={(q1, )} (q1,b,b)={(q1,)} 마지막으로 성공적인 일치를 인식하는 전이 (q1,,z)={(q2,z)} 비결정적

오토마타의 동치 DFA  NFA PDA  NPDA

예제 7.9 결정적 문맥-자유 언어 L1과 L2에 대해서 L = L1 U L2 언어 L이 결정적 문맥-자유 언어 인가? 아니다. 두 언어를 인식하는 PDA에서 한 입력 심볼과 스택 심볼에 대해서 하나 이상의 전이가 존재할 수 있다.(두개의 PDA 전이 함수를 합침으로 해서 결정적 문맥-자유 언어의 합집합은 비 결정적 문맥-자유 언어가 될 수 있다)

결정적 문맥-자유 문법 결정적 문맥-자유 언어 DCFG의 효율적인 파싱이 가능 퇴각 검색(backtracking)이 발생하지 않으므로 파싱에 대한 컴퓨터 프로그램을 쉽게 할 수 있음 S문법의 확장인 LL문법을 이용하여 컴파일러 구현 입력을 왼쪽에서 오른쪽으로 스캔하여 좌측우선 유도를 구성하면서 파싱