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

văn phạm và ngôn ngữ

32 1,2K 1

Đ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 32
Dung lượng 325,16 KB

Nội dung

VĂN PHẠM & NGÔN NGỮ I.Văn phạm cấu trúc câu.. VĂN PHẠM CẤU TRÚC CÂU• Các ngôn ngữ được biểu thị bằng các cách: • 1.. Dùng một văn phạm cung cấp một bộ chữ cái và một tập các quy tắc sản

Trang 1

Chương 1

VĂN PHẠM & NGÔN NGỮ

I.Văn phạm cấu trúc câu.

II Phân loại văn phạm

III Một số ví dụ.

Trang 2

I VĂN PHẠM CẤU TRÚC CÂU

• Các ngôn ngữ được biểu thị bằng các cách:

• 1 Liệt kê tất cả các từ của ngôn ngữ đó

• 2 Cho một số tiêu chuẩn mà các từ của ngôn ngữ

đó cần thoả mãn

• 3 Dùng một văn phạm cung cấp một bộ chữ cái

và một tập các quy tắc sản sinh ra các từ

• Bộ chữ cái V= {các ký hiệu} hay từ điển V

• Một từ hay một câu trên  là xâu các phần tử  V

• Xâu rỗng = 

• V* = {tất cả các từ trên V }

• Một ngôn ngữ trên V là một tập con của V*.

Trang 3

I VĂN PHẠM CẤU TRÚC CÂU

• Ví dụ 2 Bộ chữ cái tiếng Anh gồm 26 ký tự

• = {a,b,c, ,y,z} }

• Xâu ký tự hay một từ trên bảng chữ cái  là

một dãy hữu hạn các ký tự (của  ) viết liền

nhau Chẳng hạn w=student, l(w)=7

• Ví dụ 3 Bộ chữ cái V= {0, 1} gồm 2 ký tự nhị

phân w=10010101 là một xâu có độ dài

l(w)=8.

Trang 4

I VĂN PHẠM CẤU TRÚC CÂU

• ĐỊNH NGHĨA 2 Một văn phạm G=(T,N,I,P) gồm một

từ điển cơ bản T mỗi phần tử là ký hiệu cơ bản hay

hiệu kết thúc, một tập từ điển hỗ trợ N gồm các ký hiệu không kết thúc, một ký hiệu xuất phát I và một tập các

sản suất P (các quy tắc có dạng ) Đặt V= TN gọi

từ điển đầy đủ, ,  là các từ trên từ điển đầy đủ V.

• Mỗi một sản xuất trong P phải chứa ít nhất một phần tử không kết thúc của N ở bên trái của nó.

• Ví dụ 4 Cho G=(T,N,S,P) trong đó T={a,b}, N={A,B,S},

S là ký hiệu xuất phát,

P ={SABa, ABB, Bab, ABab}

Vậy G là một văn phạm

Trang 5

I VĂN PHẠM CẤU TRÚC CÂU

ĐỊNH NGHĨA 3 Cho G=(T,N,I,P) là một văn phạm và

w0=Iz0r, w1=Iz1r là các xâu trên V

• Nếu z0z1 là một sản xuất thì ta nói w1 được dẫn xuất trực tiếp từ w0 và viết w0w1

• Nếu w0,w1 ,wn với n≥0 là dãy các xâu trên V sao cho

w0w1, w1w2 , , wn-1 wn, thì ta nói wn được dẫn xuất

từ w0 và viết w0wn Dãy các bước dùng để nhận wn từ

w0 gọi là một dẫn xuất.

Trang 6

I VĂN PHẠM CẤU TRÚC CÂU

• Ví dụ 5 Xét văn phạm cho trong Ví dụ 4, tức là cho G=(T,N,S,P) trong đó T={a,b}, N={A,B,S}, S là ký hiệu xuất phát, P ={SABa, ABB, Bab, ABab}

• Khi đó

• Xâu Aaba được dẫn xuất trực tiếp từ ABa nhờ Bab

• Xâu ABa  abababa vì

• ABaAabaBBaba Bababa  abababa dùng các sản xuất Bab, ABB, Bab, Bab

Trang 7

I VĂN PHẠM CẤU TRÚC CÂU

• II NG ÔN NGỮ SINH BỞi VĂN PHẠM

• ĐỊNH NGHĨA 4

• Cho G=(T,N,S,P) là một Văn phạm cấu trúc

câu

• Ngôn ngữ sinh bởi văn phạm G (hay ngôn ngữ

của G), ký hiệu là L(G), là tập tất cả các xâu

gồm các ký hiệu kết thúc được dẫn xuất từ ký hiệu xuất phát S Nói cách khác

L(G) = {w T* | S w}

Trang 8

I VĂN PHẠM CẤU TRÚC CÂU

Ví dụ 6 Cho văn phạm G với bộ từ điển

V=TN, N={S, A}, T={a,b}, S và

P={ SaA, S b, Aaa} L(G) =?

• Bài giải S b, vậy bL(G)

• S aA aaa vậy aaa L(G)

• Ngoài ra từ S không thể dẫn xuất thêm một từ nào nữa, vậy

L(G)={aaa, b} -

Trang 9

I VĂN PHẠM CẤU TRÚC CÂU

• Ví dụ 7 Cho văn phạm G với bộ từ điển

Trang 10

I VĂN PHẠM CẤU TRÚC CÂU

• Ví dụ 8 Hãy xác định văn phạm G sinh ra ngôn ngữ

L(G)={0n1n | n=0,1,2 }

• Bài giải Vì các xâu của L(G) gồm các số 0 và các số 1 với số lượng như nhau, nên có thể dùng hai sản xuất Sản xuất đầu S→0S1, áp dụng liên tiếp  xâu 0nS1n

• Cần một sản xuất nữa S →

• Vậy văn phạm G = (V,S,T,P) với

• V={0, 1, S}, T={0,1}, S và P={S→0S1,S→}

Trang 11

I VĂN PHẠM CẤU TRÚC CÂU

• Ví dụ 9 Hãy xác định văn phạm G sinh ra ngôn

ngữ L(G)={0m1n | m,n=0,1,2 }

• Bài giải Vì các xâu của L(G) đều có m số 0 tiếp

sau là n số 1, nên dùng 3 sản xuất là S→0S, S→S1, S→

• VP cần tìm là G= (T,N, S,P) với T={0,1}, N={ S},

S, và P ={S→0S, S→S1, S→}.

Trang 12

I VĂN PHẠM CẤU TRÚC CÂU

Trang 13

II PHÂN LOẠI VĂN PHẠM

• 4 loại theo các loại sản xuất:

• Loại 0 (Văn phạm ngữ cấu) : Không hạn chế lên các

sản xuất Mọi sản xuất có dạng: r=  trong đó: 

V+ ,  V* Ngôn ngữ do văn phạm ngữ cấu sinh ra gọi

là ngôn ngữ ngữ cấu Chú ý:  chứa ít nhất một ký

hiệu của N

• Loại 1: (Văn phạm cảm ngữ cảnh) Các sản xuất có

dạng r=  với V+ ,  V* và l() ≤ l();

• Ngôn ngữ do VPCNC sinh ra là Ngôn ngữ CNC

• Ví dụ 11 Cho văn phạm: G= (T,N,S,P) với :

Trang 14

II PHÂN LOẠI VĂN PHẠM

Trang 15

II PHÂN LOẠI VĂN PHẠM

• Ngôn ngữ do VPPNC sinh ra gọi là Ngôn ngữ PNC

• Cho xâu w = a1a2…an Khi đó ảnh gương của xâu w là <w>

• Để tạo xâu tuỳ ý w<w> bắt đầu bằng ký tự a (hay b) ta dùng S

→ aSa,(hay S → bSb) sau đó tuỳ theo ký tự tiếp theo của w là

b hay a mà ta dùng sản xuất S → bSb, S→ aSa v v cuôi cùng dùng S →.

Trang 16

II PHÂN LOẠI VĂN PHẠM

• Loại 3 Văn phạm G= {T, N,S, P } gọi là Văn phạm

chính quy nếu các sản xuất dạng A→ aB, A →a, ở đây

Trang 17

II PHÂN LOẠI VĂN PHẠM

• Nhận xét:

• Văn phạm loại 3  loại 2,  loại 1  loại 0

• Các sản xuất của văn phạm phi ngữ cảnh và văn phạm

chính quy là đơn giản hơn Có nhiều ứng dụng trong khi thiết kế các ngôn ngữ lập trình và khi nghiên cứu

chương trình dịch

• Sau đây chúng ta chỉ xét hai loại văn phạm này

Trang 18

II PHÂN LOẠI VĂN PHẠM

w1= A với A N, w2 tuỳ ýA→ aB , A →a với A,BN,aT,

Trang 20

i

2 1

S x i S x i x i S x i x i x i k S x i x i k

1 1

2 1 2

1

Trang 21

Với w=a n b m ta có dẫn xuất:

D=(S, aS,a 2 S, ,a n - 1 S,a n B, a n bB, , a n b m - 1 B,a n b m ).

Trang 22

III MỘT SỐ VÍ DỤ VỀ VĂN PHẠM

• Ví dụ 6 Ngôn ngữ L(G)= {anbnam | n, m≥1} là phi

T={a,b}; N= {S,A},

P ={S→Sa, A→ aAb, A→ab, S→Aa }

Xâu w= anbnam (n,m ≥1)có dẫn xuất đầy đủ

D=(S,Sa,Sa2, ,Sam-1, Aam, aAbam, ,an-1Abn-1am ,

anbnam);

Ví dụ 7 Ngôn ngữ trên từ điển T={a,b} gồm tất cả các

từ khác  và mỗi từ chứa số ký tự a bằng số ký tự b Khi đó L là phi ngữ cảnh Thật vậy:

Trang 23

III MỘT SỐ VÍ DỤ VỀ VĂN PHẠM

• Xét văn phạm: G={T,V,S,P} với T={a,b}, N={S}

P={SSS, SaSb, SbSa, Sab, S ba}; Đây là

T={a1,a2, ,an}, N={S}, P= {SaSa, S aa } với a T;

Trang 24

H Ế T CH Ư ƠNG I

Trang 25

Bài tập

VĂN PHẠM & NGÔN NGỮ

Các loại bài tập:

Cho Văn Phạm hãy xây dựng Ngôn ngữ sinh

Cho Ngôn ngữ hãy xây dựng Văn phạm.

Trang 26

Chg 1 VĂN PHẠM & NGÔN NGỮ

Văn Phạm hãy xây dựng Ngôn ngữ sinh

Bài 1 Cho văn phạm G=(, , I, R) với: R={IIAa, AIBb, I c, aAAa, aBBa, bAAb, bBBb, cAac, cBbc; Hãy:

a) Viết đầy đủ G theo định nghĩa,

b) G là VP loại gì?

c) Tìm ngôn ngữ sinh vởi G.

Bài giải:

d) = {a,b,c}; = {I, A, B } còn R như trên.

b) Vì w1 w2, l(w1)  l(w2) VPCNC (loại 1), ko là loại 2, loại 3 vì w1:

Trang 27

Chg 1 VĂN PHAM & NGÔN NGỮ

Bài 2. Cho VPPNC G=<, , I, R)>, với: R={IaIa, I bIb, IcIc, IdId, Iaa, Ibb, Icc, Idd; Hãy tìm L(G)=?

Bài giải:

Trong đó là ảnh gương của .

Giả sử: =x1x2…xn, khi đó có dẫn xuất đầy đủ trong G Chứng minh.

Bài 3. Cho VPPNC G=<, , I, R)>, với: R={IaIa, I bIb, IcIc, IdId, Ix} Hãy tìm L(G)=?

, ,

| )

, ,

| )

Trang 28

Chg 1 VĂN PHẠM & NGÔN NGỮ

Bài 4. Cho VPPNC G=<, , I, R)>, với:

R={Ia1A1, A1 a2A2, …, An-2 an-1An-1, An-1An }, tìm L(G)=?

Bài giải.

D(w)=(I, a1A1, a1a2A2, , a1a2 an-1An-1,a1a2…an=w}

Bài 5 Cho VPPNC G=<, , I, R)>,

với: R={IaI, I bB, BbB, BbbD, DcD Dccc};

Hãy tìm L(G)=? k

 1, 2, ,  ;    , 1, 2, 1

Trang 29

Chg 1 VĂN PHẠM & NGÔN NGỮ

Cho Ngôn ngữ hãy xây dựng Văn phạm

Xây dựng VPCQ G={, , I,R} sao cho L(G)=L.

Bài giải.

 = {a, b, x,y,z} }, = {I, A,B,C,D,E }

R= { IaA, AbB, BxC, CyD, Dz} B, BbE, Ea, IaF, FbF, Fa };

Trang 30

Chg 1 VĂN PHẠM & NGÔN NGỮ

đầy đủ G={, , I,R} sao cho L(G)=L.

Khi w =, w+ w=+ , D=(I,+)

Trang 31

Chg 1 VĂN PHẠM & NGÔN NGỮ

với n≥1, m≥0 trên bảng = { a,b,c }

Xây dựng NNPNC G={, , I, R} sao cho L(G)=L

Trang 32

Chg 1 VĂN PHẠM & NGÔN NGỮ

Xây dựng VPCNC G={, , I, R} sao cho L(G)= L?

Bài giải.

R={I, IaIAc, Iabc, cAAc, bAbb}

w=, D()= (I, )

D(abc)=D(I,abc);

D(a 2 b 2 c 2 )= D(I, aIAc, aaabcAc, aaabAcc, aabbcc);

D(a n b n c n )=D(I, a aIAc Ac, a aabcAc AcAc, anbAcA Acc,

a n bAA A c n , a n bbA A c n , a n b n c n )

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