1. Trang chủ
  2. » Công Nghệ Thông Tin

lý thuyết ngôn ngữ hình thức chương 3

18 698 5

Đ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 18
Dung lượng 209,7 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Ng Duc ThuanCh-ơng III văn phạm phi ngữ cảnh Trong ch-ơng này chúng ta sẽ khảo sát NN Phi ngữ cảnh, là ngôn ngữ khá gần với ngôn ngữ tự nhiên và có vai trò quan trọng nhất trong việc ứ

Trang 1

Ng Duc Thuan

Ch-ơng III

văn phạm phi ngữ cảnh Trong ch-ơng này chúng ta sẽ khảo sát NN Phi ngữ cảnh, là ngôn ngữ khá gần với

ngôn ngữ tự nhiên và có vai trò quan trọng nhất trong việc ứng dụng xây dựng các ngôn

ngữ lập trình và ch-ơng trình dịch

3.1 Xuất xứ và Cây suy dẫn của Văn phạm Phi ngữ cảnh:

3.1.1 Xuất xứ:

Xuất xứ của ngôn ngữ phi ngữ cảnh là việc mô tả ngôn ngữ tự nhiên Cấu trúc câu

của ngôn ngữ tự nhiên đ-ợc định nghĩa bằng các qui tắc ngữ pháp Ví dụ, câu của ngôn

ngữ tự nhiên (tiếng việt) ở trên bây giờ có thể đ-ợc định nghĩa bởi các qui tắc văn phạm

sau:

1 <Câu > đ <Chủ ngữ> <Vị ngữ>

2 <Chủ ngữ > đ <Danh từ> <Tính từ>

3 <Danh từ > đ gà

4 <Tính từ > đ trống

5 <Vị ngữ > đ <Động từ> <Bổ ngữ>

6 <Động từ> đ ăn

7 <Bổ ngữ > đ <Danh từ>

8 <Danh từ> đ thóc Một câu đúng ngữ nghĩa đ-ợc suy dẫn từ văn phạm trên :

gà trống ăn thóc Tuy nhiên, với những qui tắc ngữ pháp của ngôn ngữ phi ngữ cảnh nh- trên, sẽ dẫn

đến những sai sót về mặt ngữ nghĩa của ngôn ngữ tự nhiên, ví dụ: "thóc trống ăn gà"

Nh-ng với nhu cầu biểu diễn các ngôn ngữ lập trình, ng-ời ta nhận thấy văn phạm phi ngữ

cảnh có một khuôn khổ thích hợp Những nhà Tin học đã sử dụng dạng chuẩn

Backus-Naus (BNF) để diễn tả cú pháp của các ngôn ngữ lập trình cấp cao (nh- Algol, Pascal, )

chính là một biến t-ớng của văn phạm phi ngữ cảnh; với dấu ::= đ-ợc dùng thay cho đ

Chẳng hạn, để định nghĩa một biểu thức số học ng-ời ta viết:

<biểu thức> ::= <biểu thức> + <biểu thức>

<biểu thức> ::= <biểu thức> * <biểu thức>

<biểu thức> ::= (<biểu thức>)

<biểu thức> ::= db Với các qui tắc đó, ta sinh đ-ợc mọi biểu thức số học có chứa các toán tử +,* cùng

các toán hạng, biểu diễn bởi ký hiệu db, ngăn cách bởi các cặp vòng đơn ( và ) Chẳng hạn

biểu thức (db+db) *db đ-ợc sinh ra theo một quá trình diễn tả bởi cây sau đây:

Trang 2

Ng Duc Thuan

<biểu thức>

<biểu thúc> * <biểu thức>

<biểu thức> + <biểu thức>

3.1 Hình sản sinh một xâu Việc nghiên cứu các văn phạm phi ngữ cảnh tạo ra một cơ sở lý luận để biểu diễn ngôn ngữ lập trình, việc tìm kiếm các giải thuật phân tích cú pháp vận dụng

trong các ch-ơng trình dịch và cho nhiều ứng dụng khác cho việc xử lý xâu

3.1.2 Cây suy dẫn trong văn phạm phi ngữ cảnh:

3.1.2.1 Định nghĩa : Cho văn phạm phi ngữ cảnh G = <ồ,D,S,P> Cây suy dẫn

trong văn phạm phi ngữ cảnh là một cây đ-ợc thành lập từ một suy dẫn nào đó trong G

Mỗi xâu x ẻồ* mà S ╞═G x sẽ t-ơng ứng với một cây suy dẫn nào đó Xâu x đ-ợc gọi là

kết quả của cây suy dẫn

Cây suy dẫn trong văn phạm phi ngữ cảnh G = <ồ,D,S,P> là một cây thỏa mãn 5

yêu cầu sau:

1 ở mỗi đỉnh đ-ợc gán 1 nhãn Nhãn gán ở đỉnh là các ký hiệu trong tập

ồẩDẩ{e} Gốc của cây đ-ợc gán nhãn là S

2 Mỗi đỉnh trong đ-ợc gán nhãn là một ký hiệu nào đó trong D

3 Mỗi đỉnh ngoài (lá của cây) đ-ợc gán nhãn là một ký hiệu trong tập ồẩ{e}

4 Nếu đỉnh m đ-ợc gán nhãn là A ẻD, còn các đỉnh n1, n2, , nk là các con của

đỉnh m theo thứ tự từ trái sang phải, và đ-ợc gán nhãn X1, X2, , Xk t-ơng ứng thì A đ

X1X2 Xk là một qui tắc trong P của văn phạm G

5 Nếu nút n mang nhãn là e, thì n phải là một lá, và là nút con duy nhất của nút

mẹ nó

Nếu đọc tất cả nhãn ở các lá (lá đ-ợc gán nhãn trong tập ồẩ{e} theo thứ tự từ trái

qua phải ta sẽ nhận đ-ợc một xâu nào đó Xâu đó là một phần tử trong L(G)

Ví dụ 1: Cho văn phạm

G = < {+,-,*,0,1,2,3,4,5,6,7,8,9,z},{A,B,C,D,E,F,G}, S,P>

Trang 3

Ng Duc Thuan

P : S ® B½ BzD

C ® +½-½e

E ® F*½F*F½*F

G ® 0 ½1½2½3½ ½9

Ta cã thÓ nhËn ®-äc c©y dÉn xuÊt:

S

F G F G G 3

G 4 G 5 1

3 2

VÝ dô 2: XÐt V¨n ph¹m phi ng÷ c¶nh sau:

G = <{if, then, else, for, do, a,b,c}, {S,A},S, {S® if b then A, S® if b then A else S, S®a, A® for c do S, A®a}>

Trong v¨n ph¹m nµy cã 2 c©y cho kÕt qña cïng mét c©u :

if b then for c do if b then a else a

s

b

Trang 4

Ng Duc Thuan

Chú ý :

- Nh- vậy có thể có nhiều kết quả, ứng với các cây suy dẫn khác nhau cho cùng

một văn phạm phi ngữ cảnh

- ứng một kết quả thì có thể có nhiều cây suy dẫn khác nhau

- Ta gọi cây con của một cây suy dẫn là một nút nào đó, cùng với các nút "con,

cháu " của nó, các nhánh nối chúng và các nhãn kèm theo Cây con cũng giống cây suy

dẫn, chỉ khác là nhãn của gốc không nhất thiết là ký hiệu đầu S Nếu nhãn của gốc cây

con là A, thì gọi đó là một A-cây

3.1.3 Mối liên quan giữa suy dẫn và cây suy dẫn:

3.1.3.1 Định lý: Cho G = <ồ,D,S,P> là một văn phạm phi ngữ cảnh, thì S╞═ a khi

và chỉ khi có 1 cây suy dẫn trong G mà kết quả là a

Chứng minh: Ta sẽ chứng minh một mệnh đề rộng hơn:

"AẻD, A╞═ a khi và chỉ khi có 1 A-cây trong G mà kết quả là a

a.(Điều kiện đủ): Giả sử a là kết quả của 1 A-cây Ta chứng minh bằng qui nạp

theo số nút trong của cây là A╞═ a:

- Nếu chỉ có một nút trong, thì A-cây có dạng nh- hình:

A

Hình 3.2 A- cây với chỉ 1 nút trong

Bấy giờ, a= X1X2 Xn và Ađ a là một sản xuất trong P bởi định nghĩa của cây

suy dẫn Vậy A╞═ a:

S

a

s

b

a

if b then A

Trang 5

Ng Duc Thuan

- Giả thiết rằng kết luận là đúng đối với mọi cây có số nút trong không quá k-1,

với k>1 Cho a là kết quả của một A-cây với k nút trong Xét các con của gốc A Chúng

không thể đều là lá cả Giả sử các nhãn của chúng kể từ trái qua phải là X1, X2, ,Xn , với

n³1 Vậy thì Ađ X1X2 Xn là một sản xuất trong P

Nếu nút mang nhãn Xi không phải là lá, nó sẽ là gốc của một cây con với một kết

quả là ai nào đó Nếu nút mang nhãn Xi là lá, thì cho ai = Xi Dễ thấy, nếu i< j, nút j và

mọi nút "con, cháu" của nó là ở bên trái nút i Vậy thì a = a1a2 an Vì một cây con thực

sự của cây phải có ít nút hơn trong cây, vậy giả thiết qui nạp là đúng với mọi Xi-cây với

các nút i không là lá, tức là có Xi ╞═ ai Còn các nút là lá thì ai = Xi, vậy cũng có Xi ╞═

ai Ghép các dãy suy dẫn bộ phận lại với nhau ta có:

A├─ X1X2 Xn ╞═ aiX2X3 Xn ╞═ aia2X3 Xn ╞═ ╞═ aia2a3 a n = a

Vậy A ╞═ a ( Chú ý suy dẫn này chỉ là 1 trong nhiều suy dẫn có thể đ-ợc thành

lập từ cây suy dẫn đã cho)

b (Điều kiện cần) Bây giờ giả sử A ╞═ a Ta cần chứng minh rằng có A-cây với

kết quả là a

- Nếu A ╞═ a chỉ với một b-ớc suy dẫn, thì A ╞═ a là một sản xuất trong P và ta

có A cây nh- hình 3.2 với kết quả là a

- Giả sử với mọi biến A, nếu có A ╞═ a là một suy dẫn ít hơn k b-ớc, thì có 1

A-cây với kết quả là a Xét suy dẫn A ╞═ a là k b-ớc Giả sử trong b-ớc thứ nhất sản xuất

đ-ợc dùng là A đ X1X2 Xn tức là A ├─ X1X2 Xn ╞═ a Thế thì mọi ký hiệu trong a

phải hoặc là trùng với một Xi nào đó, hoặc là đ-ợc suy dẫn từ một Xi hơn nữa, do các sản

xuất đều có dạng Bđa chỉ cho phép thay thế từng biến 1, cho nên nếu i<j, thì toàn bộ các

ký hiệu sinh ra bởi Xj đều ở bên trái toàn bộ các ký hiệu sinh ra bởi Xj Bởi vậya phải có

dạng a1a2 an, trong đó Xi ╞═ ai, i =1,2, ,n, và đọ dài các suy dẫn này là không, nếu Xi là

ký hiệu cuối, nếu không độ dài suy dẫn đó >0, nh-ng không quá k-1 Nh- vậy bởi giả

thiết qui nạp, khi Xi là một biến thì có Xi - cây với kết quả là ai Gọi cây đó là Ti

Bây giờ thì ta có thể thành lập A-cây với kết quả là a nh- sau:

Tr-ớc hết dựng một A-cây với n lá có nhãn X1, X2, ,Xn; tiếp đó, mỗi nút có nhãn Xi với

Xi là biến, sẽ đ-ợc thay bởi cây Ti t-ơng ứng; còn khi Xi là ký hiệu cuối, thì không cần

thay gì nữa kết quả này kết thúc chứng minh

Hình 3.3 A- cây

A

cuối cuối

Trang 6

Ng Duc Thuan

3.1.4 Suy dẫn bên trái nhất, suy dẫn bên phải nhất; Sự nhập nhằng:

3.1.4.1 Định nghĩa : Suy dẫn bên trái nhất (nói gọn là suy dẫn trái), nếu ở mỗi

b-ớc suy dẫn, biến đ-ợc thay thế là biến nằm ở bên trái nhất trong dạng câu T-ơng tự,

suy dẫn bên phải nhất (nói gọn là suy dẫn phải), nếu ở mỗi b-ớc suy dẫn, biến đ-ợc thay

thế là biến nằm ở bên phải nhất trong dạng câu

Mỗi cây suy dẫn với kết quả a, t-ơng ứng với nhiều suy dẫn S╞═ a Chúng có thể

chỉ khác nhau bởi thứ tự áp dụng các sản xuất

L-u ý, với cùng một xâu aẻ L(G), có thể có nhiều cây suy dẫn khác nhau, có

cùng kết quả là a Nói khác hơn xâu a có thể phân tích cú pháp theo nhiều cách khác

nhau

3.4.1.2 Sự nhập nhằng trong ngôn ngữ phi ngữ cảnh:

Định nghĩa: Cho văn phạm phi ngữ cảnh G = <ồ,D,S,P>, ta nói văn phạm G là

nhập nhằng nếu tồn tại một xâu w là kết quả của 2 cây suy dẫn khác nhau trong G

Ngôn ngữ do văn phạm G sinh ra là ngôn ngữ nhập nhằng nếu G là văn phạm

nhập nhằng

Ví dụ 3: Cho văn phạm phi ngữ cảnh G = <ồ,D,S,P>,

ồ = {+,a,*}, D={S}, P = {SđS+S, SđS*S, Sđ a}

ở đây ký hiệu + là phép cộng, * là phép nhân

Xâu a+a*a là kết quả của cây suy dẫn (thực hiện phép * tr-ớc) Suy dẫn bên trái nhất ứng với cây suy dẫn là :

S ├─ S*S ├─ S+S*S ├─ a+S*S ├─ a+a*S ├─ a+a*a

Xâu a+a*a là kết quả của cây suy dẫn (thực hiện phép + tr-ớc)

Suy dẫn bên phải nhất ứng với cây đó là:

S ├─ S*S ├─ S*a ├─ S+S*a ├─ S+a*a├─ a+a*a

S

a +

*

S

a

+

*

Trang 7

Ng Duc Thuan

Nh- vậy xâu a+a*a là kết quả của 2 cây suy dẫn khác nhau Vì vậy văn phạm

trong ví dụ này là văn phạm nhập nhằng

Để khắc phục sự nhập nhằng của G đó, ta có thể :

- Hoặc là qui định rằng các phép cộng và nhân luôn luôn đ-ợc thực hiện theo thứ

tự từ trái qua phải (trừ khi gặp vòng đơn) Qui định đó đ-ợc thể hiện trong G1 d-ới đây,

t-ơng đ-ơng với Gnh-ng không còn nhập nhằng nữa:

S đ S+TẵS*TẵT

T đ (S)ẵa

- Hoặc là qui định rằng, khi không có vòng đơn ngăn cách, thì phép nhân * đ-ợc

-u tiên tr-ớc phép cọng + Qui định đó đ-ợc thể hiện trong văn phạm G2 d-ới đây, cũng

t-ơng đ-ơng với G mà không còn nhập nhằng nữa

S đ S + T ẵT

T đ T*F ẵF

F đ (S)ẵa

3.2 Giản l-ợc các văn phạm phi ngữ cảnh:

Trong văn phạm phi ngữ cảnh có thể có nhiều yếu tố thừa, ví dụ có những ký hiệu

không hề tham gia vào quá trình sinh các ngôn ngữ, hoặc có những qui tắc dạng A đ B

chỉ làm mất thời gian trong quá trình hình thành các xâu của ngôn ngữ Vì lẽ đó cần loại

bỏ những yếu tố của d- thừa không có ích trong việc sinh ngôn ngữ, sao cho việc loại bỏ

đó không làm ảnh h-ởng tới quá trình sinh ngôn ngữ Điều đó có nghĩa là chỉ giữ lại các

ký hiệu và các qui tắc có ích trong văn phạm G mà chúng thực sự là cần thiết trong quá

trình sinh ngôn ngữ mà thôi

3.2.1 Ký hiệu có ích và ký hiệu thừa:

Cho văn phạm phi ngữ cảnh G = <ồ,D,S,P>, X đ-ợc gọi là ký hiệu có ích, nếu tồn

tại suy dẫn S ├─ αXò ├─ w, ở đây α,ò ẻ(ồẩD)*, X ẻồẩD và wẻồ*

Nếu ký hiệu X không thỏa mãn điều kiện trên thì X gọi là ký hiệu thừa Nh- vậy

X là ký hiệu thừa nếu từ X không thể dẫn ra một xâu w ẻồ* Ký hiệu X có tính chất nh-

vậy còn đ-ợc gọi là ký hiệu vô sinh Nếu từ ký hiệu ban đầu S không dẫn đ-ợc một xâu

nào có chứa ký hiệu X thì ta nói X là ký hiệu không đến đ-ợc Nh- vậy một ký hiệu thừa

nếu nó là ký hiệu vô sinh hoặc là không đến đ-ợc

3.2.2 Bổ đề 1 (loại ký hiệu vô sinh)

Cho một VPPNC G = <ồ,D,S,P>, với L(G) ạặ Ta có thể xây dựng đ-ợc văn

phạm PNC G' = <ồ,D',S,P'>, t-ơng đ-ơng với G, sao cho mỗi A ẻD' có một xâu w ẻồ*

để A╞═ G w

Chứng minh: Duyệt tập sản xuất P của G và kết nạp dần các biến vào D' nh- sau:

- Nếu A đ w là một sản xuất, với AẻD,wẻồ* thì kết nạp A vào D'

Trang 8

Ng Duc Thuan

- Nếu A đ X1X2 Xn là qui tắc trong P, mà Xiẻồ hoặc Xi là biến đã đ-ợc kết nạp

vào D' thì đ-a A vào D'

Quá trình xây dựng D' theo giải thuật sau:

Begin

1) D cũ := ặ; 2) D mới := {AẵAđ w, với wẻồ*};

3) While D cũ ạD mới do

begin

5) D mới := D cũ ẩ {AẵA đa với aẻ(ồẩDcũ)* }

end;

6) D' := D mới;

end

Ta thấy thuật toán là dừng vì P là hữu hạn Thiết lập P' gồm các sản xuất của P mà

các ký hiệu trong đó thuộc về D' ẩồ

Ngoài ra: nếu A đ-ợc đ-a vào D mới ở các dòng 2) hay 5) thì A suy dẫn ra một

xâu các ký hiệu kết thúc

Ng-ợc lại ta chứng minh rằng nếu A suy dẫn ra một xâu các ký hiệu kết thúc, thì

A tr-ớc sau sẽ đ-ợc đ-a vào D mới Chứng minh điều đó bằng qui nạp theo độ dài của suy

dẫn A╞═ w

Cơ sở qui nạp:

- Nếu độ dài suy dẫn là 1, thì A đw là một sản xuất, và A đ-ợc kết nạp vào D mới

ở b-ớc 2)

- Giả sử A ├─ X1X2 Xn╞═ w bởi suy dẫn k b-ớc Vậy có thể viết w = w1w2 wn,

trong đó Xi ╞═ wi, với 1 Ê i Ê n, bởi suy dẫn không đến k b-ớc.Theo giả thiết qui nạp, các

Xi là các b-ớc tr-ớc sau đ-ợc kết nạp vào D mới Ngay sau khi Xi đ-ợc kết nạp vào D mới

ở b-ớc 5), trở lại dòng 3) ta có Dcũ ạD mới vì Xi cuối cùng đó ch-a đ-ợc đ-a vào D cũ

Do đó vòng lặp While đ-ợc thực hiện thêm 1 lần nữa, và A sẽ đ-ợc kết nạp vào D mới ở

dòng 5)

Bây giờ chứng minh L(G') = L(G):

- Hiển nhiên L(G') Í L(G)

- Ng-ợc lại giả sử có w trong L(G) nh-ng không ở trong L(G') Vậy mỗi suy dẫn

của w trong G đều phải có dùng một biến trong D-D' hoặc có dùng một sản xuất trong P-P'

Nh- vậy tồn tại 1 biến D-D' cho phép suy dẫn ra một xâu các ký hiệu cuối Đó là mâu

thuẫn Vậy L(G) Í L(G').(đ.p.c.m)

3.2.3 Bổ đề 2 (loại ký hiệu không đến đ-ợc)

Cho một VPPNC G = <ồ,D,S,P>, ta có thể xây dựng đ-ợc văn phạm phi ngữ cảnh

G' t-ơng đ-ơng với G, ở đây G' = <ồ',D',S,P'>, sao cho mỗi X ẻồ'ẩD' đều tồn tại

a,bẻ(ồ'ẩD')* để S ├─ aXb

Chứng minh: a Xây dựng tập ồ' và D' nh- sau:

Trang 9

Ng Duc Thuan

Đ-a ký hiệu S vào D' Nếu một biến A đã đ-ợc kết nạp vào D' và A đa, ở đây

aẻồ'ẩD' thì ta kết nạp các ký hiệu ch-a kết thúc trong a vào D', còn các ký hiệu kết thúc

trong a thì kết nạp vào ồ'

Thủ tục kết nạp trên sẽ ngừng khi không còn bổ sung thêm đ-ợc bất kỳ ký hiệu

nào nữa vào các tập ồ' và D'

b Tập các qui tắc P' đ-ợc xây dựng nh- sau:

P' bao gồm mọi qui tắc trong P mà các ký hiệu thuộc tập ồ'ẩD' Với cách xây

dựng đó ta có L(G) = L(G'), trong đó G' gồm các ký hiệu đến đ-ợc

Từ 2 bổ đề trên, ta có định lý:

3.2.4 Định lý : Mọi ngôn ngữ PNC không rỗng đều có thể đ-ợc sinh ra từ một văn

phạm phi ngữ cảnh không có ký hiệu thừa

Ví dụ 4: Cho văn phạm phi ngữ cảnh G = <ồ,D,S,P>, ở đây ồ={a}, D= {S,A,B},

P= {SđAB, Sđa, Ađa} văn phạm sinh ra ngôn ngữ L(G) = {a} ( tập gồm một xâu a)

Văn phạm phi ngữ cảnh G' nhận đ-ợc từ G bằng cách áp dụng các kết quả trên là

văn phạm không có ký hiệu thừa có dạng nh- sau:

G' = <ồ',D',S,P'>, với ồ'= {a}, D'={S}, P' = {S đ a}

Rõ ràng L(G') = L(G)= {a}

Chú ý : Việc áp dụng các 2 bổ đề trên để xây dựng NNPNC từ một VPPNC

không có ký hiệu thừa, nếu áp dụng theo thứ tự bổ đề 2 , rồi đến bổ đề 1, thì không

nhất thiết loại bỏ được hết các ký hiệu thừa

Ví dụ 5: Xét văn phạm :

S đ ABẵa

A đ a

áp dụng bổ đề 1, B bị loại cùng với sản xuất S đ AB

áp dụng bổ đề 2 cho văn phạm

S đ a

A đ a

ta thấy chỉ S và a là đến đ-ợc Vậy văn phạm t-ơng đ-ơng không chứa ký hiệu

thừa là <{a}, {S}, S ,{Sđa} >

Nếu tiến hành theo thứ tự ng-ợc lại, áp dụng bổ đề 2 tr-ớc ta không loại đ-ợc ký

hiệu nào, sau đó áp dụng bổ đề 1, ta loại B cùng S đ AB, Vậy văn phạm còn:

<{a},{S,A}, S , {Sđa, Ađa}> và vẫn chứa các ký hiệu vô ích A

3.2.5 Các e - sản xuất: Cho văn phạm phi ngữ cảnh G = <ồ,D,S,P> Nếu trong P

có sản xuất A đe, AẻD thì ta nói trong G có e-sản xuất Nếu eẻL(G), ta không thể loại

Trang 10

Ng Duc Thuan

hết mọi e-sản xuất đ-ợc Ng-ợc lại eẽL(G), ta có thể loại bỏ toàn bộ e-sản xuất khỏi

L(G)

3.2.5.1 Định lý: Giả sử G = <ồ,D,S,P> là văn phạm phi ngữ cảnh và L(G) là ngôn

ngữ của văn phạm G Khi đó L\{e} là ngôn ngữ phi ngữ cảnh L(G') với văn phạm PNC G'

= <ồ',D',S,P'> không chứa các ký hiệu vô ích và không chứa các e-sản xuất

Chứng minh: Do định lý 3.2.4 không mất tính tổng quát, có thể xem L(G) không

chứa các ký hiệu vô ích Ta chỉ xét đến các e-sản xuất

Ký hiệu A ẻD đ-ợc gọi là ký hiệu triệt tiêu nếu tồn tại dẫn xuất A╞═ e Ta có thể

xác định các ký hiệu triệt tiêu bằng ph-ơng pháp sau:

a Nếu Ađe là một sản xuất trong P thì A là ký hiệu triệt tiêu

b Nếu B đa là một sản xuất trong P, mà a mọi ký hiệu trong a đều đã biết là

triệt tiêu đ-ợc, thì B cũng triệt tiêu đ-ợc; lặp lại quá trình đó cho đến khi không tìm thêm

đ-ợc ký hiệu triệt tiêu nào nữa

Tập P' đ-ợc xác định nh- sau:

Nếu A đ X1X2 Xn là một sản xuất trong P thì ta đ-a vào P' các sản xuất có dạng

A đa1a2a3 an, trong đó:

1 Nếu Xi là ký hiệu không triệt tiêu thì đặt ai = Xi

2 Nếu ký hiệu Xi là ký hiệu triệt tiêu thì ai = e hoặc ai = Xi

3 Nếu mọi ký hiệu Xi, là ký hiệu triệt tiêu thì thay ai = e với mọi i = 1,2, ,n (loại)

D’ = {AẻD, A có tham gia vào các sản xuất của P’Ư

Khi đó ta có thể kiểm chứng L(G') = L(G)- {e} (Việc kiểm tra xem nh- bài tập)

Ví dụ 6: Xét văn phạm phi ngữ cảnh G có các sản xuất sau:

S đ AB

A đ aAẵe

B đ bBẵe

áp dụng cách thành lập P trong định lý:

- từ sản xuất S đ AB, ta có S đ ABẵAẵB

- từ sản xuất A đ aA, ta có A đ aAẵa

- từ sản xuất B đ bB, ta có B đ bBẵb L-u ý rằng văn phạm mới G' không sản sinh e, trong khi G lại sản sinh e vậy

muốn có một văn phạm t-ơng đ-ơng G, thì phải bổ sung S đe vào G'

3.2.6 Các sản xuất đơn: (Unit Production) Cho văn phạm phi ngữ cảnh G =

<ồ,D,S,P> Nếu sản xuất trong P có dạng có dạng A đ B, ở đây A,B ẻD thì ta nói A đ B

là sản xuất đơn Sản xuất đơn có tác dụng làm kéo dài quá trình sinh ra ngôn ngữ, vì vậy

ta sẽ tìm cách loại sản xuất đơn mà không làm ảnh h-ởng tới quá trình sinh ra ngôn ngữ

của văn phạm đã cho

Chú ý : Sản xuất Ađ a với A ẻD và aẻồ không là sản xuất đơn

Ngày đăng: 09/05/2014, 08:58

HÌNH ẢNH LIÊN QUAN

Đồ thị đó không có chu trình. Cấp của S,A,B,C lần l-ợt là 3,2,1, và 0. Chẳng hạn - lý thuyết ngôn ngữ hình thức chương 3
th ị đó không có chu trình. Cấp của S,A,B,C lần l-ợt là 3,2,1, và 0. Chẳng hạn (Trang 16)

TỪ KHÓA LIÊN QUAN

w