1. Trang chủ
  2. » Giáo Dục - Đào Tạo

ÔTÔMÁT ĐẨY XUỐNG

28 782 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 28
Dung lượng 295,5 KB

Nội dung

• Tập các quy tắc sinh sản xuất của VPPNC và VPCQ đều có dạng vế trái là một ký tự đơn không kết thúc... Các ký tự không kết thúc đưa vào trong dấu ; • Dạng biên dịch diễn tả cú pháp của

Trang 1

Chương 3

ÔTÔMÁT ĐẨY XUỐNG

I Văn phạm phi ngữ cảnh và cây dẫn xuất đầy đủ

Trang 2

I.VĂN PHẠM PHI NGỮ CẢNH &

CÂY DẪN XUẤT ĐẦY ĐỦ (CÂY CÚ PHÁP)

• 1 Quy ước

• Trong văn phạm G=<T,N,I,R> quy ước:

• Mỗi ký hiệu trong T –ký tự thường a,b,c (có thể cả chỉ số)

• Mỗi ký tự trong N- ký tự viết hoa A,B,C …(có thể cả chỉ số)

• Ký tự X,Y,Z (có thể cả chỉ số) chỉ ký tự ∈V=T ∪ N hay

X,Y,Z, Có thể là ký tự kết thúc của T và cũng có thể là ký tự chưa kết thúc thuộc N

• Mỗi ký tự viết thường ω, u, v, w, x, y, z, (có thể chỉ số) là các xâu trong T*

• Các ký hiệu θ, α, β, γ …chỉ các xâu trong V* kể cả xâu rỗng λ

2

Trang 3

I.VĂN PHẠM PHI NGỮ CẢNH &

CÂY DẪN XUẤT ĐẦY ĐỦ (CÂY CÚ PHÁP)

2 Định nghĩa VPPNC

Văn phạm G=<T,N,S,P> là VPPNC khi và chỉ khi có tập sản xuất (tập quy tắc)

P={A→θ | A∈N, θ∈ V*}

3 Cây dẫn xuất đầy đủ (Cây cú pháp) của xâu trong G.

Giả sử ω∈ L(G), có dẫn xuất đầy đủ trong G hay có S | ω Cây này được tạo ra theo nguyên tắc sau:

 Đỉnh gốc của cây được gán nhãn:

 Đỉnh trong của cây được gán nhãn A ∈N:

 Đỉnh ngoài (lá) được gán nhãn a∈T∪λ:

3

S

A a

Trang 4

I.VĂN PHẠM PHI NGỮ CẢNH &

CÂY DẪN XUẤT ĐẦY ĐỦ (CÂY CÚ PHÁP)

• Nếu đỉnh n được gán nhãn A, các đỉnh con của nó được gán

X1, X2, , Xk thì có sản xuất

• A→ X1, X2, , Xk ∈ P

• Đọc lần lượt nhãn của các lá từ trái sang phải thì xâu nhận

được phải là xâu ω

• Ví dụ

4

Trang 5

II.VĂN PHẠM PHI NGỮ CẢNH CHUẨN

Trang 6

II.VĂN PHẠM PHI NGỮ CẢNH CHUẨN

• Ví dụ 1 Cho văn phạm G=<T,N,S,P> trong đó T={a,b}, N={S,A}, P={S→ aAS, S→a, A→SbA, A→SS, A→ba}

• Xây dựng VPPNC chuẩn G1=<T,N1,S,P1} tương đương với G

• Trước tiên xây dựng G’=<T, N’,S,P’> với

,SS,

,,

'

,,,,'

Trang 7

II.VĂN PHẠM PHI NGỮ CẢNH CHUẨN

• G1=<T,N1,S,P1> có:

• T={a,b},

• Khi đó G1 là VPPNC chuẩn có L(G1) = L(G’) = L(G);

Ví dụ 2 Văn phạm G=<T,N,S,P} với T={a,b}, N={S,A,B};

P’={S → bA, S → aB, A → bAA, A → aS, A → a, B → aBB, B → bS, B → b }

• Hãy xây dựng VPPNC chuẩn

, , a A,

Trang 8

II.VĂN PHẠM PHI NGỮ CẢNH CHUẨN

b , a {

N =  =

},

,

,,

AA,B,

aS

A,{S

'

b B

S b B

BB a B

a A

S a A

b A

Trang 9

II.VĂN PHẠM PHI NGỮ CẢNH CHUẨN

,,

,,

,,

,,

,,

b{S

2 2

1 1 1

b b

a a

b B

S b B

BB F

F a B

a A

S a

A

AA F

F a A

B a S

Trang 10

III DẠNG BIÊN DỊCH BNF(BACKUS NAUR)

• 1 Quy ước của dạng biên dịch BNF

• 2 Dạng biên dịch BNF của văn phạm phi ngữ cảnh

• Các ngôn ngữ lập trình đều có cú pháp của VPPNC Có cách biểu diễn mới của VPPNC

• Tập các quy tắc sinh (sản xuất) của VPPNC và VPCQ đều có dạng vế trái là một ký tự đơn không kết thúc

10

Trang 11

III DẠNG BIÊN DỊCH BNF(BACKUS NAUR)

• Vì vậy gộp tất các xâu ở vế phải thành một mệnh đề ngăn cách giữa chúng bởi một vạch đứng Ký hiệu → được thay bằng := Các ký tự không kết thúc đưa vào trong dấu <>;

• Dạng biên dịch diễn tả cú pháp của ngôn ngữ lập trình

• Ví dụ 1 Viết dạng BNF của VPPNC cho tập con của tiếng

Trang 12

III DẠNG BIÊN DỊCH BNF(BACKUS NAUR)

• <danh từ>::= rabbit | mathematician

Trang 13

III DẠNG BIÊN DỊCH BNF(BACKUS NAUR)

• Ví dụ 3 Viết VPPNC G=<T,N,S,P} sinh ra số nguyên có dấu

• T={+,-,0,1,2,3,4,5,6,7,8,9}

• N={S,A,B,C}: S=“sốnguyêncódấu”, A=“dấu”, B=“sốnguyên”, C=“chữsố”;

• P={songuyencodau →dau songuyen, dau→+, dau→-,

songuyen→chuso, songuyen→chuso songuyen, chuso→0,

chuso→1, ,chuso→9} hay

C

Trang 14

III DẠNG BIÊN DỊCH BNF(BACKUS NAUR)

14

Trang 15

IV Ô TÔ MÁT ĐẨY XUỐNG VÀ NGÔN NGỮ ĐOÁN NHẬN CỦA NÓ

• 1 Định nghĩa PA

PA={T, Γ, Q,F, q0, $, f} là một bộ gồm:

 Σ -tập hữu hạn không rỗng các ký tự vào;

 Q- tập không rỗng các trạng thái, q0 là trạng thái ban đầu

 Γ -Stack - tập không rỗng các ký tự thuộc V=T ∪N trong

VPPNC, Γ chứa $ -đáy ngăn xếp;

 F ⊆ Q -tập các trạng thái kết thúc của PA

 f : Γ* × Q ×(Σ ∪λ) → 2Γ * × Q –hàm chuyển của PA

15

Trang 16

IV Ô TÔ MÁT ĐẨY XUỐNG VÀ NGÔN NGỮ ĐOÁN NHẬN CỦA NÓ

• Hình trạng tức thời của PA

Trang 17

IV Ô TÔ MÁT ĐẨY XUỐNG VÀ NGÔN NGỮ ĐOÁN NHẬN CỦA NÓ

• 2 Ngôn ngữ đoán nhận của PA.

• Hình trạng tức thời của PA phụ thuộc 3 yếu tố:

 Xâu đầu vào x (quy ước ký tự bên trái của xâu x sẽ được đọc tiếp)

 Trạng thái q∈Q;

 Xâu α ∈ Γ* trong đó ký hiệu bên trái của αnằm ở đáy

Stack, còn ký hiệu bên phải của α nằm ở đỉnh của Stack

Ký hiệu hình trạng tức thời của PA là bộ ba (α, q, x)

• Hình trạng ban đầu ($,q0,ω$); Stack rỗng, trạng thái ban đầu

q0, băng vào đặt xâu ω$

17

Trang 18

IV Ô TÔ MÁT ĐẨY XUỐNG VÀ NGÔN NGỮ ĐOÁN NHẬN CỦA NÓ

• Hình trạng kết thúc có 2 loại:

 Hình trạng kết thúc theo tập trạng thái kết thúc (α, q, $), Stack vẫn chứa α, trạng thái q ∈F, và xâu ω đã đọc xong ($,q0,ω$) |- (α,q,$) (q ∈F)

 Hình trạng kết thúc theo Stack rỗng ($,q,$) Stack rỗng, xâu

Trang 19

IV Ô TÔ MÁT ĐẨY XUỐNG VÀ NGÔN NGỮ ĐOÁN NHẬN CỦA NÓ

• Một số kết quả chính:

• Định lý 1: L (PA) = L(PA) đối với mỗi Ô tô mát đẩy xuống

PA Hay đối với ô tô mát đẩy xuống thì sự đoán nhận ngôn

ngữ theo tập trạng thái kết thúc hay theo Stack rỗng là tương đương nhau

Trang 20

IV Ô TÔ MÁT ĐẨY XUỐNG VÀ NGÔN NGỮ ĐOÁN NHẬN CỦA NÓ

Ví dụ 1

• Cho VPPNC G=<T,N,S,P> với T= {0,1,x }; N= {S };

P= {S→0S0, S →1S1, S→ x };

có L(G)= {ωx[ω] | ω∈ {0,1}và [ω] ảnh gương của ω} là NNPNC Hãy xây dựng ô tô mát đẩy xuống (PA) đơn định:

M={T, Γ,Q,q0, $,f}

Sao cho L (PA) = L(PA) (đoán nhận theo stack rỗng)

Bài giải.

T={0,1,x}; Γ={S,0,1,x}; Q={q0,q1}, F=φ; $ - đáy stack và là ký hiệu đọc hết xâu

20

Trang 21

IV Ô TÔ MÁT ĐẨY XUỐNG VÀ …

• Hàm chuyển trạng thái f: Γ* ×Q × { T ∪λ } → Γ*×Q làm

việc theo nguyên tắc sau:

 Thời điểm ban đầu stack rỗng, trạng thái ban đầu q0, xâu dạng

ω $ trên băng làm việc;

 Nếu q0, gặp ký tự vào a ∈ {0,1} thì trạng thái vẫn là q0, đưa a vào stack, đầu đọc dịch một ô sang phải.

 Nếu q0 gặp ký tự đầu vào x thì chuyển sang trạng thái q1, (ko đưa vào stack), đầu đọc dịch sang phải một ô.

 Nếu q1 gặp ký tự đầu vào a ∈ {0,1} thì so sánh với đỉnh stack:

Nếu a trùng ký tự ở đỉnh của stack thì đưa ký tự ở đỉnh stack

ra ngoài, đầu đọc dịch một ô sang phải, trạng thái vẫn là q1.

N ếu a khác ký tự trên đỉnh của Stack thì M không đoán nhận xâu đầu vào.

21

Trang 22

IV Ô TÔ MÁT ĐẨY XUỐNG VÀ …

• Ô tô mat này chỉ đoán nhận xâu ωx[ω] khi và chỉ khi đầu đọc chỉ vào ký hiệu hết xâu $ trên băng làm việc và stack rỗng, tức

Trang 23

IV Ô TÔ MÁT ĐẨY XUỐNG VÀ NGÔN NGỮ ĐOÁN NHẬN CỦA NÓ

• Ví dụ 2 Cho VPPNC G=<T,N,S,P} với T={0,1}, N={S}, và

• P={S→0S0, S→1S1, S→λ}

• Xây dựng ô tô mat đẩy xuống không đơn định

• M=<T, Q,Γ,F,q0,$, f> sao cho L (M)=L(G) (theo stack rỗng)

• Giải

• NNPNC do G sinh ra là

• L(G)={ω[ω] | ω∈{0,1}*, [ω] ảnh gương của ω} (cm?);

• Ta xây dựng ô tô mat M=<T,Q,Γ,F,q0,$,f> với:

• T={0,1}, Q={q0,q1}, q0- trạng thái ban đầu,

∀ Γ={S,0,1,$}, $: ký hiệu kết thúc xâu,

23

Trang 24

IV Ô TÔ MÁT ĐẨY XUỐNG VÀ …

• F=φ (do M đoán nhận theo stack rỗng)

• Hàm chuyển f: Γ*×Q×(T∪{λ}) →2 Γ * × Q làm việc như sau:

Trang 25

IV Ô TÔ MÁT ĐẨY XUỐNG VÀ …

• Chú ý: Từ 1-6 cho phép M nhớ các ký hiệu đã đọc Bước 3

và bước 6 cho phép M chọn giữa hình trạng , nó chọn … khi đọc xong xâu ω trên băng làm việc …

Trang 26

IV Ô TÔ MÁT ĐẨY XUỐNG VÀ …

26

Trang 27

IV Ô TÔ MÁT ĐẨY XUỐNG VÀ …

27

Trang 28

IV Ô TÔ MÁT ĐẨY XUỐNG VÀ …

28

Ngày đăng: 09/06/2015, 01:04

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w