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 1Chươ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 2I 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 3I 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 4I 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 ký
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= TN gọi
là 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 ={SABa, ABB, Bab, ABab}
Vậy G là một văn phạm
Trang 5I 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 z0z1 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 w0w1
• Nếu w0,w1 ,wn với n≥0 là dãy các xâu trên V sao cho
w0w1, w1w2 , , wn-1 wn, thì ta nói wn được dẫn xuất
từ w0 và viết w0wn Dãy các bước dùng để nhận wn từ
w0 gọi là một dẫn xuất.
Trang 6I 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 ={SABa, ABB, Bab, ABab}
• Khi đó
• Xâu Aaba được dẫn xuất trực tiếp từ ABa nhờ Bab
• Xâu ABa abababa vì
• ABaAabaBBaba Bababa abababa dùng các sản xuất Bab, ABB, Bab, Bab
Trang 7I 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 8I 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=TN, N={S, A}, T={a,b}, S và
P={ SaA, S b, Aaa} L(G) =?
• Bài giải S b, vậy bL(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 9I 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 10I 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 11I 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 12I VĂN PHẠM CẤU TRÚC CÂU
Trang 13II 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 14II PHÂN LOẠI VĂN PHẠM
Trang 15II 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 16II 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 17II 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 18II PHÂN LOẠI VĂN PHẠM
w1= A với A N, w2 tuỳ ýA→ aB , A →a với A,BN,aT,
Trang 20i
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 21Vớ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 22III 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 23III 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={SSS, SaSb, SbSa, Sab, S ba}; Đây là
T={a1,a2, ,an}, N={S}, P= {SaSa, S aa } với a T;
Trang 24H Ế T CH Ư ƠNG I
Trang 25Bà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 26Chg 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={IIAa, AIBb, I c, aAAa, aBBa, bAAb, bBBb, cAac, cBbc; 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 27Chg 1 VĂN PHAM & NGÔN NGỮ
Bài 2. Cho VPPNC G=<, , I, R)>, với: R={IaIa, I bIb, IcIc, IdId, Iaa, Ibb, Icc, Idd; 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={IaIa, I bIb, IcIc, IdId, Ix} Hãy tìm L(G)=?
, ,
| )
, ,
| )
Trang 28Chg 1 VĂN PHẠM & NGÔN NGỮ
Bài 4. Cho VPPNC G=<, , I, R)>, với:
R={Ia1A1, A1 a2A2, …, An-2 an-1An-1, An-1An }, 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={IaI, I bB, BbB, BbbD, DcD Dccc};
Hãy tìm L(G)=? k
1, 2, , ; , 1, 2, 1
Trang 29Chg 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= { IaA, AbB, BxC, CyD, Dz} B, BbE, Ea, IaF, FbF, Fa };
Trang 30Chg 1 VĂN PHẠM & NGÔN NGỮ
đầy đủ G={, , I,R} sao cho L(G)=L.
Khi w =, w+ w=+ , D=(I,+)
Trang 31Chg 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 32Chg 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, IaIAc, Iabc, cAAc, bAbb}
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 )