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

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

11 692 3

Đ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 11
Dung lượng 210,66 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ôn ngữ giao tiếp giữa ng-ời với ng-ời gọi là ngôn ngữ tự nhiên, chẳng hạn nh- tiếng Anh, tiếng Pháp ... Tuy nhiên, những yêu cầu nghiêm ngặt về mặt ngữ nghĩa trong các ngôn ngữ tự nhiê

Trang 1

Ng Duc Thuan

Ch-ơng I

Nhập môn về văn phạm & Ngôn ngữ hình thức

1.khái niệm chung về ngôn ngữ

Ngôn ngữ là ph-ơng tiện giao tiếp Sự giao tiếp ở đây có thể là giao tiếp giữa

ng-ời với ng-ời, hoặc giữa ng-ời và máy, hoặc giữa máy và máy Ngôn ngữ giao tiếp

giữa ng-ời với ng-ời gọi là ngôn ngữ tự nhiên, chẳng hạn nh- tiếng Anh, tiếng Pháp

Ngôn ngữ giao tiếp giữa ng-ời và máy nh- các ngôn ngữ lập trình Pascal,C Dù là

ngôn ngữ nào, cũng có thể xem ngôn ngữ là tập hợp các câu có 1 cấu trúc qui định nào

đó Cấu trúc của ngôn ngữ tự nhiên rất phong phú, đa dạng và phức tạp Tuy nhiên,

những yêu cầu nghiêm ngặt về mặt ngữ nghĩa trong các ngôn ngữ tự nhiên ch-a cao,

chẳng hạn cùng một từ, hoặc cùng một câu ta có thể hiểu chúng theo những nghĩa khác

nhau tùy theo ngữ cảnh Để có sự giao tiếp giữa ng-ời và máy, hoặc giữa máy và máy

cần phải có 1 ngôn ngữ mà các qui tắc, cú pháp chặt chẽ hơn, nói khác hơn là 1 từ, 1 câu

thì ngữ nghĩa của chúng phải là duy nhất Những ngôn ngữ nh- thế gọi là ngôn ngữ

hình thức

Để xây dựng 1 ngôn ngữ hình thức cần có 1 tập hữu hạn khác rỗng các ký

hiệu nào đó gọi là bảng chữ cái Dãy hữu hạn các phần tử của 1 bảng chữ cái gọi là

1 từ hay xâu trên bảng chữ cái Một tập hợp các từ trên bảng chữ cái đ-ợc gọi là ngôn

ngữ

1.1 bảng chữ cái

Cho ồ là 1 tập hữu hạn khác rỗng các phần tử nào đó mà ta gọi là 1 bảng chữ

cái Mỗi phần tử trong ồ đ-ợc gọi là 1 ký tự

Ví dụ 1: a Bộ chữ cái tiếng Anh gồm 26 ký tự, cụ thể:

ồ = {a,b,c, ,y,z}

b Bộ chữ cái để sinh các xâu nhị phân là:

ồ = {0,1}

1.2 Xâu ký tự

Một xâu ký tự hay 1 từ trên bảng chữ cái ồ là một dãy hữu hạn các ký tự trên

bảng ồ mà chúng đ-ợc viết liền nhau

Ví dụ 2:

internet là một xâu trên bảng chữ cái ồ = {a,b,c, ,y,z}

Độ dài của 1 xâu w là số ký tự có mặt trong xâu, ký hiệu ẵ w ẵ hoặc l(w)

Ví dụ 3:

w = 01001011 là một xâu trên bảng chữ cái ồ = {0,1} có độ dài

là 8 ( l(w)=8)

Ng-òi ta qui -ớc xâu rỗng là xâu có độ dài 0 Xâu rỗng đ-ợc ký hiệu là e

Xâu v đ-ợc gọi là xâu con của xâu w, nếu xâu v đ-ợc tạo bởi 1 dãy các ký hiệu

kề nhau trong w

Trang 2

Ng Duc Thuan

Ví dụ 4 : ter là một xâu con của xâu Internet

Tiền tố của 1 xâu là một xâu con nằm ở đầu xâu đó

Hậu tố của 1 xâu là một xâu con nằm cuối xâu đó

Ví dụ 5 : Xâu abc có : các tiền tố a, ab, abc, e

các hậu tố e, c, bc, abc

Phép ghép: của 2 xâu v và w, ký hiệu vw là 1 xâu tạo bằng cách viết v rồi đến

viết w tiếp theo sau ( không có khoảng cách)

Ví dụ : v = ab, w = ehg thì vw = abehg

(Phép ghép là một phép toán 2 ngôi trên các xâu, đơn vị của phép ghép là xâu

rỗng vì : we = ew = w, "w)

Ng-ời ta ký hiệu : v0 = e, v1= v, v2= vv, vi = vvi-1, "i>0

Đảo ng-ợc một xâu u = a1a2a3 an ký hiệu là ur = anan-1 a1

1.3 ngôn ngữ

Cho bảng chữ cái ồ, khi đó tất cả các từ trên bảng chữ cái ồ kể cả xâu rỗng ký

hiệu ồ*

Tập tất cả các từ trên bảng chữ cái ồ mà mọi từ trong nó đều có độ dài khác 0,

đuợc ký hiệu ồ+ Từ đó : ồ+ = ồ* \ {e}

Mỗi tập con của ồ * được gọi là 1 ngôn ngữ hình thức trên ồ, nói gọn là một

ngôn ngữ trên

Các tập { } và tập {e} đ-ợc xem là các ngôn ngữ trên bảng chữ cái bất kỳ

Từ các ngôn ngữ cho tr-ớc, ta có thể thu đ-ợc các ngôn ngữ mới nhờ áp dụng các

phép toán lên ngôn ngữ vì các ngôn ngữ là tập hợp nên các phép toán tập hợp : giao,

hợp, hiệu đều có thể áp dụng lên các ngôn ngữ

- Một số phép toán khác lên ngôn ngữ:

Phép ghép tiếp : Cho ngôn ngữ L1 trên bộ chữ cái ồ1, và ngôn ngữ L2 trên bộ

chữ cái ồ2, ký hiệu ngôn ngữ L1L2 là ngôn ngữ {vw/ v ẻ L1, w ẻ L2} trên bộ chữ ồ1ẩồ2

Một số tính chất của phép ghép tiếp:

a Tính kết hợp : L1(L2L3) = (L1L2)L3

b Không có tính giao hoán : L1L2 # L2L1

c Lf = fL = f

d L{e} = {e}L = L

e Phép hợp không có tính phân bố với phép ghép tiếp:

L1ẩ(L2L3) # L1L2ẩ L1L3

f Phép ghép tiếp có tính phân bố đối với phép hợp:

Trang 3

Ng Duc Thuan

L1(L2ẩL3) = L1L2ẩ L1L3

g Phép ghép tiếp không có tính phân bố đối với phép giao, và cũng nh- vậy phép

giao không có tính phân bố đối với phép ghép tiếp:

L1(L2 ầ L3) # (L1L2) ầ (L1L3)

L1ầ (L2L3) # (L1ầL2)(L1ầL3)

Bao đóng của 1 ngôn ngữ L : Ký hiệu L* là ngôn ngữ

L* = L0ẩL1ẩL2ẩL3ẩ = ẩ Li , " i ³ 0 trong đó Li đ-ợc định nghĩa đệ qui nh- sau:

1 L0 = {e}

2 Li = LLi-1 với i ³1

Bao đóng dương của 1 ngôn ngữ L : Ký hiệu L+ là

L+ = ẩ Li , " i ³ 1

Chú ý : L+ = LL* = L*L

L* = L+ẩ {e} 1.4 vấn đề biểu diễn ngôn ngữ và hệ viết lại :

Đối với một ngôn ngữ L trên bảng chữ cái ồị L Í ồ*, ng-ời ta th-ờng quan

tâm các vấn đề sau:

-Đối với các ngôn ngữ L , làm sao chỉ rõ các xâu thuộc L Đây là vấn đề biểu

diễn ngôn ngữ

Với các xâu hữu hạn, thì để biểu diễn chúng chỉ cần liệt kê các xâu

Ví dụ 6:

L1 = { }

L2 = {a, ba, aaba, bbbb}

Tuy nhiên, đối với các ngôn ngữ vô hạn, thì ta không thể liệt kê hết các xâu của

chúng đ-ợc Vì vậy phải tìm một cách biểu diễn hữu hạn cho một ngôn ngữ vô hạn

Một số tr-ờng hợp, có thể xác định các xâu của ngôn ngữ bằng cách chỉ rõ 1 đặc

điểm cốt yếu của mọi xâu Đặc điểm của 1 xâu có thể đ-ợc mô tả bằng 1 câu tiếng Việt

hay nói chung là một tân từ Chẳng hạn:

L3 = {aj / j là một số nguyên tố}

L4 = { aibj / i ³ j ³ 0 }

L5 = { w ẻ {a,b}* / số a trong w = số b trong w } Giáo trình này sẽ khảo sát các cách biểu diễn khác ở ch-ơng 2

Phần lớn các tr-ờng hợp, ng-ời ta th-ờng biểu diễn ngôn ngữ nhờ 1 văn phạm

hay nhờ 1 Ôtômat Văn phạm là một cơ chế cho phép sản sinh ra mọi xâu của ngôn ngữ

Trang 4

Ng Duc Thuan

Còn Ôtômat (automata) là một cơ chế cho phép đoán nhận 1 xâu bất kỳ có thuộc về

ngôn ngữ hay không Tuy nhiên, về mặt hình thức thì cả văn phạm và ôtômat đều là các

biểu hiện khác nhau của cùng 1 quan niệm gọi là hệ viết lại ( Rewriting System)

Một vài ví dụ về ngôn ngữ:

Ví dụ 7: Xét ngôn ngữ L trên bộ chữ cái {a,b,c} gồm các từ có dạng:

ciwcj , i ³ 0, j ³ 0 Trong đó, w hoặc là từ rỗng, hoặc có tiền tố là chữ a, hoặc có hậu tố là chữ b (chẳng hạn e , c 3 , cacbac 2 , ca và bc đều thuộc L, trong khi đó không 1 từ nào trong

số các từ ba, c 3 bca 3 c, c 2 bc 7 a thuộc L) Mặc dù L thiếu nhiều từ trên bộ chữ cái {a,b,c} ta

khẳng định rằng:

L2 = {a,b,c}* (I.1)

Và vì e thuộc L, nên Li = {a,b,c}*, "i ³ 2

Để chứng minh (I.1) ta chứng minh rằng "x là từ trên bộ chữ cái {a,b,c} đều

thuộc L2

- Vì x= eđ x thuộc L2

Nếu a là tiền tố của x đ x thuộc L đ x thuộc L2

(chú ý L2 chứa L)

- Gọi ALPH(L) là bộ chữ cái nhỏ nhất ồ sao cho L là ngôn ngữ trên ồ

Nếu b là tiền tố của x, ta có thể viết x d-ới dạng x = bz hoặc x = bybz với các từ

y, và z sao cho b không thuộc ALPH(z) Rõ ràng các từ b, byb và z thuộc L Do đó, x

thuộc L2 (Trong phần này ta biểu diễn ALPH(z) cho ALPH({z}; Đúng ra ta cần xét x

phải có dạng x = b i z hoặc x = b i yb j z, nh-ng do b i , b j thuộc L nên chỉ cần xét các dạng

trên)

Cuối cùng, giả sử c là tiền tố của x Nếu b không thuộc ALPH(x) thì rõ ràng x

thuộc L Nếu không, ta có thể viết x d-ới dạng:

x = ciybz với i ³ 0

và các từ y và z sao cho b không thuộc ALPH(z) Cả 2 : ciyb và z lại thuộc L đ x thuộc

L2 (đ.p.c.m)

Ví dụ 8: Cho L là một ngôn ngữ trên toàn bộ chữ cái {a,b}, định nghĩa :

1 eẻ L

2 Nếu X ẻ L đ aXb ẻ L

3 Không còn xâu nào khác thuộc L (1) ị X = eẻ L

(2) ị aeb ẻ L đ ab ẻ L (2) ị aabb ẻ L đ aibiẻ L

ị {aibi / i = 0,1,2, }= L (!)

Ví dụ 9: Ngôn ngữ L đ-ợc định nghĩa là tập tất cả các xâu có thể thu đ-ợc về xâu

rổng e bằng một phép thay thế ab bởi e Định nghĩa này lại cho một cách đoán nhận 1

Trang 5

Ng Duc Thuan

xâu có thuộc ngôn ngữ hay không Cách đoán nhận lại cũng là 1 qui tắc viết lại xâu Ví

dụ:

Từ xâu : aabbab

abab

ab e

ị aabbab ẻ L Nếu xem a là dấu (, b là dấu ) thì L gồm các xâu ngoặc đơn lồng

nhau mà không gối lên nhau ( nghĩa là các ngoặc đơn có thể thu đ-ợc từ nhiều biểu thức

toán học đúng đắn khi bỏ các toán hạng, toán tử):

Ví dụ từ biểu thức : (7 + ( x-y)) /(y-1)

ị ( ( ) ) ( ) ằ aabbab

Định nghĩa Hệ viết lại :

a Định nghĩa : Cho 1 bảng chữ cái ồ, P gọi là 1 qui tắc viết lại hay các tập sản xuất

trên ồ nếu P èồxồ Nếu (u,v) ẻ P , ký hiệu u đ v đ-ợc gọi là 1 sản xuất

b Định nghĩa : Cho 1 bảng chữ cái ồ, P gọi là 1 qui tắc viết lại hay các tập sản xuất

trên ồ , x,y ẻồ* x đ-ợc gọi là sản sinh trực tiếp y ký hiệu x├─y Û$(u,v) ẻP,

x1, x2ẻồ* : x = x1ux2, y=x1vx2

c Định nghĩa : Cho 1 bảng chữ cái ồ, P gọi là 1 qui tắc viết lại hay các tập sản xuất

trên ồ , x,y ẻồ* x đ-ợc gọi là suy dẫn y ký hiệu x╞═ y Û$ w0, w1, , wnẻồ*

x=w0 ├─ w1 ├─ ├─ wn = y Chú ý : Quan hệ 2 ngôi ╞═ là bao đóng truyền ứng của ├─ vì thoả :

1 " s ẻồ* : s ╞═ s

2 " s1, s2, s3ẻồ* : s 1╞═ s2, s2 ├─ s3ị s1 ╞═ s3

3 " s1, s2ẻồ* : s 1╞═ s2, nếu chỉ thoả 1, 2

d Định nghĩa : Một hệ viết lại RW xác định trên bảng chữ cái ồ, là 1 cặp (ồ,P), với

P èồxồ

e Định nghĩa : Một ngôn ngữ đ-ợc sản sinh bởi 1 hệ viết lại RW và 1 tập tiên đề A

( Aèồ*) là tập : Ls (RW, A) = {w ẻồ*, x ╞═ w, x ẻ A}

RW lúc này đ-ợc gọi là hệ viết lại sản sinh

f Định nghĩa : Một ngôn ngữ đ-ợc sản sinh bởi 1 hệ viết lại RW và 1 tập tiên đề A

( Aèồ*) là tập : Lđ (RW, A) = {v ẻồ*, v ╞═ x, x ẻ A}

RW lúc này đ-ợc gọi là hệ viết lại đoán nhận

Ví dụ 10: - Ngôn ngữ ở ví dụ 8 đ-ợc biểu diễn bởi hệ viết lại là:

Ls(RW,{X}) ầ {a,b}*

trong đó: RW = ( {a,b,X},{X đe, X đ aXb})

Trang 6

Ng Duc Thuan

- Ngôn ngữ ở ví dụ 9 đ-ợc biểu diễn bởi hệ viết lại là:

Ld(RW,{e}) trong đó : RW = ( {a,b}, {ab đe})

1.6 văn phạm

Với mục đích sản sinh hay đoán nhận ngôn ngữ, các hệ viết lại th-ờng đ-ợc

dùng d-ới một dạng đặc biệt, gọi là Văn phạm Trong lý thuyết văn phạm ng-ời ta đã

chứng minh đ-ợc rằng khi khảo sát một ngôn ngữ, sử dụng văn phạm (hệ viết lại) sản

sinh và văn phạm (hệ viết lại) đoán nhận là đối ngẫu và t-ơng đ-ơng Vì vậy trong giáo

trình này, chỉ đề cập đến văn phạm sinh

1.6.1 Định nghĩa Văn phạm sinh:

Văn phạm sinh là bộ bốn : G = <ồ, D,S,P> Trong đó:

ồ : là một bảng chữ , gọi là bảng chữ kết thúc

D : là một bảng chữ , gọi là bảng chữ không kết thúc thỏa ồầD = ặ

S ẻD đ-ợc gọi là ký hiệu đầu

P là tập các cặp có thứ tự (a,b) , với a,b ẻ (ồẩD)* (a,b) đ-ợc gọi là một sản

xuất (hay một qui tắc viết lại) th-ờng đ-ợc ký hiệu là ađb P gọi là tập các qui tắc thay

thế

Nh- vậy, mỗi văn phạm sinh G tạo thành một hệ viết lại RW = (V,P) với tiên đề

S (ký hiệu V= (ồẩD)), trong đó đ-ợc thiết lập các quan hệ ├─, và ╞═ (suy dẫn trực tiếp,

suy dẫn - Xem định nghĩa hệ viết lại)

Ví dụ 11: Cho G = <ồ, D,S,P>,

với ồ = {a,b}, D={S}, P ={Sđ aSb,S đab} Khi đó G là một văn phạm

Một số định nghĩa bổ sung:

- Cho văn phạm G = < ồ , D ,S,P>, aẻ ồ * Ta nói rằng văn phạm G sinh ra từ

a nếu S╞═ a

Ví dụ 12 : Với văn phạm xét ở ví dụ 11, S ╞═ aabb, nên G sinh ra aabb

- Cho văn phạm G = < ồ , D ,S,P>, ngôn ngữ sản sinh bởi G là:

L(G) = {w / w ẻ ồ * ,và S ╞═ w}

Ví dụ 13: Với văn phạm xét ở ví dụ 11, ta thấy L(G) = {anbn / nẻ N, n³1}

- Hai văn phạm G và G' đ-ợc gọi là t-ơng đ-ơng với nhau nếu L(G) = L(G')

Ví dụ 14 : a Cho văn phạm G = <ồ, D,S,P>

với ồ = {a,b}, D ={S}, P={S đ aSb, S đe} L(G) = {anbn / nẻ N, n³1}

Cho văn phạm G' = <ồ', D',S',P'>

với ồ' = {a,b}, D' ={S}, P'={S đ aSb, S đab}

L(G') = {anbn / nẻ N, n³1}

Trang 7

Ng Duc Thuan

Vậy G và G' là hai văn phạm t-ơng đ-ơng nhau sai khác từ e

b Xét văn phạm G = <ồ, D,S,P> với:

ồ = {a,b,c}

D = { S,A,B,C}

P = { S đ abc, S đ aAbc, Ab đ bA, Ac đ Bbcc, bB đBb,

aB đ aaA, aB đ aa}

Xét văn phạm G' = <ồ', D',S,P'> với:

ồ' = {a,b,c}

D' = { S,A,B,C}

P' = { S đ aSAB, S đ abB,BA đ AB, bA đ bb, bB đbc,

cB đ cc}

Ta có :

L(G) = L(G') = { anbncn / n ³ 1}

Vậy G và G' là hai văn phạm t-ơng đ-ơng

1.6.2 Bổ đề : Cho văn phạm G = < ồ , D ,S,P> và giả thiết rằng trong P tồn tại

qui tắc chứa S (ký hiệu đầu) ở vế phải, lúc đó tồn tại văn phạm G' t-ơng đ-ơng với văn

phạm G mà các qui tắc của nó không chứa ký hiệu đầu ở vế phải

Chứng minh : Đ-a vào ký hiệu mới S' ẽồẩD, xây dựng G' nh- sau :

G'= <ồ, Dẩ{S'},S',P'>, ở đây P' chứa tất cả các qui tắc của P, ngoài ra chứa các

qui tắc S' đa, nếu có S đaẻ P

Rõ ràng trong P' không chứa qui tắc nào có S' ở vế phải Ta cần chứng minh L(G)

= L(G')

Lấy w ẻL(G) lúc đó S ╞═ w giả sử quá trình này suy dẫn là :

S ├─ a ├─ w1├─ ├─w Vì S đaẻ P nên S' đaẻ P' và mọi qui tắc của P là qui tắc của P', nên ta có:

S' đa ╞═ w Vậy S' ╞═ w hay w ẻ L(G')

Ng-ợc lại, giả sử w ẻ L(G'), lúc đó S' ╞═ w, ta có thể phân tích suy dẫn này nh-

sau : S' đa ╞═ w Vì S' đaẻ P' nên tồn tại S đaẻ P; mặt khác trong a không chứa

S' nên các suy dẫn trực tiếp trong a ╞═ w chỉ sử dụng các qui tắc của P Vậy ta có:

S ╞═ w hay w ẻ L(G)

Tóm lại L(G) = L(G')

Ví dụ 15:

G = <{a,b},{S},S,{SđaSbẵab}

G' =<{a,b},{S,S'},S',{SđaSb, S'đaSb,S'đab,Sđab}>

1.7 phân loại văn phạm của chomsky

Chomsky phân loại văn phạm thành 4 nhóm trên cơ sở định nghĩa văn phạm nói

chung:

Trang 8

Ng Duc Thuan

Văn phạm loại 0 : Văn phạm Tổng quát Văn phạm loại 1 : Văn phạm Cảm ngữ cảnh Văn phạm loại 2 : Văn phạm Phi ngữ cảnh Văn phạm loại 3 : Văn phạm Chính qui

1.7.1 Định nghiã : Văn phạm Tổng quát (General grammar)

Văn phạm G = <ồ , D ,S,P>đ-ợc gọi là văn phạm tổng quát (còn gọi là văn phạm

ngữ cấu), nếu mọi qui tắc r ẻ P đều có dạng r = a đ b , trong đó a , b ẻ ( ồẩ D )* Qui

tắc của văn phạm tổng quát gọi là qui tắc tổng quát Ngôn ngữ do văn phạm tổng quát

sinh ra đ-ợc gọi là ngôn ngữ tổng quát ( L0)

Ví dụ 16 : Văn phạm G = <ồ, D,S,P> với:

ồ = {computer, information, the, swallowed}

D = { S, Np, Vp, N, V, A}

P = {S đ NpVp, Npđ AN, Vpđ VNp, N đ computer, N đ information,

A đ the, V đ swallowed }

G văn phạm loại 0 Ta có đ-ợc một dẫn xuất :

S ╞═ NpVp ╞═ ANVp ╞═ ANVNp ╞═ANVAN ╞═

với kết quả : the computer swallowed the information

1.7.2 Định nghiã : Văn phạm Cảm ngữ cảnh (Context sensitive grammar)

Văn phạm G = <ồ , D ,S,P>đ-ợc gọi là văn phạm cảm ngữ cảnh, nếu mọi qui tắc

r ẻ P đều có dạng r = a đ b , trong đó a ẻ ( ồẩ D ) * , b ẻ ( ồẩ D ) + và ẵaẵÊẵbẵ Qui

tắc của văn phạm cảm ngữ cảnh gọi là qui tắc cảm ngữ cảnh Ngôn ngữ do văn phạm

cảm ngữ cảnh sinh ra đ-ợc gọi là ngôn ngữ cảm ngữ cảnh ( L1)

Ví dụ 17 : Xét văn phạm G = <ồ, D,S,P> với:

ồ = {a,b,c}

D = { S,A,B,C}

P = { S đ abc, S đ aAbc, Ab đ bA, Ac đ Bbcc, bB đBb,

aB đ aaA, aB đ aa}

ta có thể kiểm chứng đ-ợc G là văn phạm cảm ngữ cảnh và

L(G) = { anbncn / n ³ 1}

Văn phạm G = <ồ , D ,S,P>đ-ợc gọi là văn phạm phi ngữ cảnh, nếu mọi qui tắc r

ẻ P đều có dạng r = A đ w, trong đó A ẻD , w ẻ ( ồẩ D ) + Qui tắc của văn phạm phi

ngữ cảnh gọi là qui tắc phi ngữ cảnh Ngôn ngữ do văn phạm phi ngữ cảnh sinh ra đ-ợc

gọi là ngôn ngữ phi ngữ cảnh ( L2)

Ví dụ 18 : a Xét văn phạm G = <ồ, D,S,P> với:

ồ = {0,1}

D = { S}

P = { S đ SS, S đ 0S1, S đ 10, S đ 01}

ta có thể kiểm chứng đ-ợc G là văn phạm phi ngữ cảnh và

Trang 9

Ng Duc Thuan

L(G) = { aẻ {0,1}* / ẵaẵ³ 2, trong a chữ số 0 bằng chữ số 1}

b Xét văn phạm G = <ồ, D,S,P> với:

ồ = {if , then , else , for , do , a, b, c } {S,A}

D = {S,A}

P = { S đ a, S đ if b then A, S đ if b then A else S,A đ a,

A đ for c do S}

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

Văn phạm G = <ồ , D ,S,P>đ-ợc gọi là văn phạm chính qui, nếu tập qui tắc P

gồm các qui tắc có dạng A đ aB, A đ a (hoặc A đ Ba, A đ a) trong đó A,B ẻD , a ẻ ồ *

Qui tắc của văn phạm chính qui gọi là qui tắc chính qui Ngôn ngữ do văn phạm chính

qui sinh ra đ-ợc gọi là ngôn ngữ chính qui ( L3)

Ví dụ 19 : Xét văn phạm G = <ồ, D,S,P> với:

ồ = {1}

D = { S,A,B}

P = { S đ 1A, A đ 1B, B đ 1A, A đ 1, S đe}

G là văn phạm chính qui, L(G) = { 12n / n ³ 0 }

Nhận xét : Từ định nghĩa của các loại văn phạm, ta có thể suy ra:

L3Í L2 Í L1 Í L0

Về mặt cấu trúc ngữ pháp của các qui tắc sinh văn phạm phi ngữ cảnh, và văn phạm chính qui là đơn giản , có nhiều ứng dụng trong việc thiết kế ngôn ngữ lập

trình và trong nghiên cứu ch-ơng trình dịch

Chú ý: Những văn phạm theo định nghĩa trên, nếu trong tập qui tắc có

thêm qui tắc S đ e, với S là ký hiệu đầu không có mặt ở vế phải của bất cứ qui tắc

nào, người ta cũng xếp vào văn phạm của loại tương ứng

Ta có thể chứng minh

1.7.5 Bổ đề

Nếu L là ngôn ngữ loại i ( i = 0,1,2,3) thì L ẩ { e }, L - { e } cũng là ngôn ngữ loại

i

Chứng minh:

Ta chứng minh với L là ngôn ngữ loại 1 (với các ngôn ngữ loại 2,3 chứng minh

t-ơng tự)

* Xét L ẩ {e}

- Nếu eẻL thì L ẩ {e}= L Do đó L cùng loại với L ẩ {e}

- Nếu eẽL và giả sử L đ-ợc sinh ra bởi văn phạm G = <ồ, D,S,P> trong đó các

qui tắc của P có dạng r = a đ b , trong đó aẻ (ồẩD)* ,b ẻ (ồẩD)+ và ẵaẵÊẵbẵ

Trang 10

Ng Duc Thuan

Theo bổ đề 1.6.2 ta xây dựng G' = <ồ, D',S',P'> t-ơng đ-ơng với G trong đó S' không

xuất hiện ở vế phải của bất kỳ qui tắc nào, hơn nữa G' cũng loại 1 Bây giờ thêm vào P'

qui tắc S' đe, để đ-ợc G'' cũng loại 1 và: L(G'') = L(G') ẩ {e} = L ẩ {e}

* Xét L - {e}

- Nếu eẽL thì L - {e}= L Do đó L cùng loại với L - {e}

- Nếu e ẻ L và giả sử L đ-ợc sinh ra bởi văn phạm G = <ồ, D,S,P>,t-ơng tự

chứng minh trên, theo bổ đề 1.6.2 ta xây dựng đ-ợc G' = <ồ, D',S',P'> t-ơng đ-ơng với

G trong đó S' không xuất hiện ở vế phải của bất kỳ qui tắc nào, hơn nữa G' cũng loại 1

Xây dựng G'' từ G' bằng cách bỏ ra khỏi P' qui tắc S'đe Rõ ràng, L(G'') = L(G') ẩ {e}

= L ẩ {e} và cũng là loại 1

Hệ quả : Do kết quả của bổ đề trên, một đôi khi ta đặc tả các ngôn ngữ loại 1,2

với tập qui tắc có thêm S đe, gọi là ngôn ngữ loại 1,2 mở rộng Sau này mặc định công

nhận mà không nhắc lại điều đó, nghĩa là khi nào trong ngôn ngữ có từ rỗng thì ta sẽ sử

dụng văn phạm mở rộng

1.8 một số tính chất của ngôn ngữ

D-ới đây là một số tính chất của ngôn ngữ đ-ợc nêu d-ới dạng định lý, và các ví

dụ ứng dụng Việc chứng minh các định là khá phúc tạp, trong phạm vi giáo trình này

chỉ nêu ý t-ởng chứng minh nhằm khảo sát các ứng dụng

1.8.1 Định lý : Nếu L1, L2 là hai ngôn ngữ phi ngữ cảnh (hoặc chính qui) thì

L1ẩL2 cũng là ngôn ngữ phi ngữ cảnh (hoặc chính qui)

- Nếu L 1 là ngôn ngữ trên văn phạm phi ngữ cảnh G 1 =<ồ1, D1, S1 , P 1 >

- Nếu L 2 là ngôn ngữ trên văn phạm phi ngữ cảnh G 2 =<ồ2, D2, S 2 , P 2 >

Không mất tính tổng quát có thể giả sử : D1ầ (2 ẩD2 ) = D2 ầ ((1 ẩD1 )= ặ

Xây dựng văn phạm : G = <(1 ẩ2 , D1 ẩD2 ẩ {S}, S, P>

Trong đó : P bao gồm các qui tắc của P 1 và P 2 trừ các qui tắc S 1 đ e , S 2 đ e , nếu

có thêm vào P các qui tắc S đ a , nếu có S 1 đ a ẻ P 1 ,hoặc S 2 đ a ẻ P 2 thì G là phi ngữ

cảnh và L(G) = L 1 ẩ L 2

1.8.2 Định lý : Nếu L1, L2 là hai ngôn ngữ chính qui thì L1L2 cũng là ngôn ngữ

chính qui

- Nếu L 1 là ngôn ngữ trên văn phạm chính qui G 1 =<ồ1, D1,, S1 , P 1 >

- Nếu L 2 là ngôn ngữ trên văn phạm chính qui G 2 =<ồ2, D2, S 2 , P 2 >

Không mất tính tổng quát có thể giả sử : D1ầ (2 ẩD2 ) = D2 ầ ((1 ẩD1 )= ặ

- Tr-ờng hợp L 1 và L 2 không chứa e Ta xây dựng văn phạm G nh- sau:

Xây dựng văn phạm : G = <(1 ẩ2 , D1 ẩD2 , S 1 , P>

Trong đó : P bao gồm các qui tắc của P 1 và P 2 trừ các qui tắc dạng A đ a,

(A ẻD11 , a ẻ1 ) Đồng thời thêm vào qui tắc A đ aS 2 , nếu có A đ a ẻ P 1 ,

G là văn phạm chính qui và L(G) = L 1 L 2

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

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w