Quy tắc của văn phạm ngữ cấu được gọi là quy tắc ngữ cấu.. Ngôn ngữ do văn phạm ngữ cấuVPNC sinh ra gọi là ngônngữ ngữ cấu NNNC... Quy tắc của văn phạm cảm ngữ cảnh được gọi là quy tắc c
Trang 1Văn phạm và ngôn ngữ sinh văn
Trang 2Định nghĩa ngôn ngữ hình thức
• Bảng chữ cái
• Xâu ký tự
• Ngôn ngữ
Trang 4Xâu ký tự
• Là một dãy các ký tự trong bảng chữ cái ∑được viết liền nhau
• Độ dài xâu: là số ký tự trong xâu đó
• Ví dụ ∑={a,b,c} s= “baccba” là một xâu
trên bảng chữ cái ∑ Xâu s có độ dài bằng6
• Xâu rỗng: là xâu không có ký tự nào, độ
Trang 6Một số vấn đề cần quan tâm
• Với một xâu w ∈ ∑* bất kỳ cho trước, mộtvấn đề đặt ra là xâu w có thuộc ngôn ngữ
L cho trước hay không? (L ∈ ∑* )
• Với một xâu w trong L làm thế nào để sinhw
Trang 7Văn phạm và ngôn ngữ sinh bởi
» V= (∑U∆)* được gọi là từ điển đầy đủ
• I € ∆ được gọi là ký hiệu ban đầu
• R là tập các quy tắc mà mỗi phần tủ của nó có
Trang 8Văn phạm và ngôn ngữ sinh bởi
văn phạm
• Định nghĩa văn phạm:
– Định nghĩa 2: Cho G= < ∑,∆,I,R > là một văn phạm, một xâu x= αaβ S = αbβ được gọi là dẫn xuất trực tiếp từ xâu x nếu ta áp dụng
quy tắc (luật) aÆb Ký hiệu là x╞ s.
Trang 9Ngôn ngữ sinh bởi văn phạm
• Định nghĩa: Cho văn phạm G= < ∑,∆,I,R >
và D = (w0,w1,….,wk) là một dẫn xuất củaxâu wk từ w0 trong văn phạm G Nếu w0=I
và wk ∈ ∑* thì ta gọi xâu wk được sinh bởivăn phạm G
• Ngôn ngữ sinh ra bởi văn phạm G được
ký hiệu là L(G) và được định nghĩa như
sau: L(G)= {w| w €∑* và I |- w}
Trang 10Ngôn ngữ sinh bởi văn phạm
Trang 11Văn phạm
Ví dụ
• Cho G=< ∑,∆,I,R > trong đó ∑={a,b},
∆={A,B,I}, I là ký hiệu xuất phát và
R={IÆAba, AÆ BB, BÆab,ABÆb}
Trang 12Phân loại văn phạm
• Nhóm 0: Văn phạm ngữ cấu
• Nhóm 1: Văn phạm cảm ngữ cảnh
• Nhóm 2: Văn phạm phi ngữ cảnh
• Nhóm 3: Văn phạm chính quy
Trang 13Phân loại văn phạm Văn phạm ngữ cấu
• Văn phạm G=< ∑,∆,I,R > được gọi là vănphạm ngữ cấu nếu mọi quy tắc r €R đều
có dạng r= αÆβ, trong đó α ∈ V+, β ∈ V* Quy tắc của văn phạm ngữ cấu được gọi
là quy tắc ngữ cấu Ngôn ngữ do văn
phạm ngữ cấu(VPNC) sinh ra gọi là ngônngữ ngữ cấu (NNNC)
Trang 14Phân loại văn phạm Văn phạm ngữ cảnh
• Văn phạm G=< ∑,∆,I,R > được gọi là vănphạm cảm ngữ cảnh nếu mọi quy tắc r €R đều có dạng r= αÆβ, trong đó α ∈ V+, β
∈ V* và |α|≤|β| Quy tắc của văn phạm
cảm ngữ cảnh được gọi là quy tắc cảm
ngữ cảnh Ngôn ngữ do văn phạm cảm
ngữ cảnh(VPCNC) sinh ra gọi là ngôn ngữcảm ngữ cảnh(NNCNC)
Trang 15Văn phạm cảm ngữ cảnh
Ví dụ
• Ví dụ 1: Cho G=< ∑,∆,I,R > trong đó ∑={a,b},
∆={I}, I là ký hiệu xuất phát và
R={IÆaIb,IÆII,IÆab} là một văn phạm cảm ngữ cảnh.
• Ví dụ 2: Cho G=< ∑,∆,I,R > trong đó ∑={a,b,c},
∆={I,A,B}, I là ký hiệu xuất phát và R={
IÆabc,IÆaAbc,AbÆBa,AcÆBbc,bBÆBb,
aBÆaaB,aBÆaa} Khi đó G là một văn phạm cảm ngữ cảnh.
Trang 16Phân loại văn phạm Văn phạm phi ngữ cảnh
• Văn phạm G=< ∑,∆,I,R > được gọi là văn
phạm phi ngữ cảnh nếu mọi quy tắc r ∈ R đều có dạng r= AÆβ, trong đó A ∈ ∆,β ∈V* Quy tắc của văn phạm phi ngữ cảnh
được gọi là quy tắc phi ngữ cảnh Ngôn ngữ
do văn phạm phi ngữ cảnh(VPPNC) sinh ragọi là ngôn ngữ phi ngữ cảnh(NNPNC)
Trang 17Văn phạm phi ngữ cảnh
Ví dụ
• Ví dụ 1: Cho G=< ∑,∆,I,R > trong đó
∑={a,b}, ∆={I}, I là ký hiệu xuất phát và
R={IÆλ,IÆaIa,IÆbIb,IÆaa,IÆbb} là một
văn phạm phi ngữ cảnh
Trang 18Phân loại văn phạm Văn phạm chính quy
• Văn phạm G=< ∑,∆,I,R > được gọi là vănphạm chính quy nếu mọi quy tắc r €R đều
có dạng AÆaB,AÆa, A ∈ ∆, B ∈ ∆,a ∈
∑ Quy tắc của văn phạm chính quy đượcgọi là quy tắc chính quy Ngôn ngữ do vănphạm chính quy(VPCQ) sinh ra gọi là
ngôn ngữ chính quy(NNCQ)
Trang 19Nhận xét
• NNCQ NNPNC NCCNC NNNC
• Ngôn ngữ ngữ cấu là tổng quát nhất Æ
lớp văn phạm rộng nhất
• Văn phạm chính quy đơn giản hơn cả và
có nhiều ứng dụng trong thiết kế các ngônngữ lập trình và trong lĩnh vực nghiên cứu
về chương trình dịch
Trang 20Tính chất của văn phạm
• Lớp ngôn ngữ sinh ra bởi văn phạm là
đóng đối với các phép hợp, giao và phépnhân ngôn ngữ
• Giả sử L1,L2 là hai ngôn ngữ được sinh rabởi văn phạm G1 =< ∑1,∆1,I1,R1> và G2 =<
∑2,∆2,I2,R2> thì hợp của hai ngôn ngữ L1
và L2 là một ngôn ngữ ký hiệu là L1 ∪ L2 được sinh ra bởi văn phạm sau:
Trang 22Nhân hai ngôn ngữ
Trang 23Ôtômat hữu hạn đoán nhận biểu
thức chính quy
• Automat hữu hạn
• Ngôn ngữ chính quy và biểu thức chính
quy
Trang 25Automat hữu hạn
• δ: Q*∑ Æ Q: Khi đó M được gọi là một Automat đơn định(Deterministic Finite Automat)
• δ: Q*∑ Æ2 Q : Khi đó M được gọi là một
Automat không đơn định(None Deterministic
Finite Automat)
Trang 26• Mô tả các bước làm việc của Automat M=<
sau:
» q0 Æ
– Tập L(M)={w / w ∈ ∑* mà δ(q0,w ) ∈F} được gọi là ngôn ngữ được đoán nhận với automat M Tập trạng thái Q trong quá trình tính toán được xem như bộ nhớ của một Automat Vì Q hữu hạn trạng thái nên M
Trang 27Phương pháp biểu diễn Automat
• Phương pháp cho M bằng bảng chuyển
• Phương pháp cho M bằng đồ thị chuyển
Trang 29Phương pháp cho M bằng đồ thị
chuyển
• Cho automat M=< ∑,Q,δ,q0,F > Hàm
chuyển δ có thể cho bằng đồ thị chuyển
có hướng theo nguyên tắc sau: Mỗi trangthái q ∈Q là một đỉnh của đồ thị
• Nếu a ∈ ∑ và từ trạng thái qi chuyển sang trạng thái qj theo hàm chuyển δ(qi,a)= qj
sẽ có một cung từ đỉnh qi tới đỉnh qj
Trang 30Thuật toán Thompson
• Bài toán: cho một biểu thức chính quy
Hãy xây dựng automat không đơn định
đoán nhận ngôn ngữ chính quy từ biểu
thức chính quy đã cho
• Thuật toán
– Input: Một biểu thức chính quy r trên bộ ∑ – Output: một automat N đoán nhận ngôn ngữ chính L(r)
Trang 31Thuật toán thompson
• Trước hết tách biểu thức chính quy r
thành các biểu thức chính quy thành phầnr1,r2,….rk Sau đó áp dụng luật 1 và luật 2
để xây dựng automat không đơn định N1,
N2, N3,… , Nk Cuối cùng xây dựng
Automat không đơn định N để đoán nhậnL(r)
Trang 32Thuật toán thompson
Luật 1
• Đối với ký hiệu λ, xây dựng automat
không đơn định N đoán nhận ngôn ngữ {λ} như sau:
f
Start
Trang 33Thuật toán Thompson
Trang 34Thuật toán Thompson
Luật 3
• Đối với biểu thức chính quy sUr ta xây
dựng automat không đơn định đoán nhậnnhư sau:
f i
Start
λ λ
N(r) N(s)
Trang 35Thuật toán Thompson
• Đối với biểu thức chính quy r.s ta xây
dựng automat không đơn định đoán nhậnnhư sau:
f Start
Trang 36Thuật toán thompson
• Đối với biểu thức chính quy (r)+ biểu diễnngôn ngữ chính quy R+ ta xây dựng
automat không đơn định N đoán nhận R+