Làm thếnào đểsản sinh ra các 
xâu ?
Văn phạm phi ngữcảnh có thểdùng để
sản sinh ra các xâu thuộc ngôn ngữnhư
sau: 
2
X = Ký hiệu đầu
Whilecòn ký hiệu không kết thúc Y trong X do
Áp dụng một trong các sản xuất của,văn 
phạm chẳng hạn Y -> w
              
                                            
                                
            
 
            
                 3 trang
3 trang | 
Chia sẻ: Mr Hưng | Lượt xem: 1045 | Lượt tải: 0 
              
            Nội dung tài liệu Kĩ thuật lập trình - Bài 3: Văn phạm sản sinh, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
21/1/2010
1
Bài 3.
Văn phạm sản sinh
1
Làm thế nào để sản sinh ra các 
xâu ?
Văn phạm phi ngữ cảnh có thể dùng để 
sản sinh ra các xâu thuộc ngôn ngữ như 
sau: 
2
X = Ký hiệu đầu
While còn ký hiệu không kết thúc Y trong X do
Áp dụng một trong các sản xuất của,văn 
phạm chẳng hạn Y -> w
Ví dụ
S -> +A | -A |A
A -> B.B | B
3
B -> BC | C
C -> 0 | 1 | 2 |. . . .|9
Khi X chỉ chứa ký hiệu kết thúc, nó là xâu được 
sản sinh bởi văn phạm.
Suy dẫn (Derivations)
 Mỗi lần thực hiện việc thay thế là một 
bước suy dẫn
4
 .
 Nếu mỗi dạng câu có nhiều ký hiệu không 
kết thúc để thay thế có thể sử dụng bất cứ 
sản xuất nào.
21/1/2010
2
Suy dẫn trái và suy dẫn phải
 Nếu giải thuật phân tích cú pháp chọn ký 
hiệu không kết thúc cực trái hay cực phải 
để thay thế, kết quả của nó lad suy dẫn 
5
trái hoặc suy dẫn phải
Cây suy dẫn(Cây phân tích cú pháp)
Cây suy dẫn có những đặc điểm sau
1) Mỗi nút của cây có nhãn là ký 
hiệu kết thúc, ký hiệu không kết 
thúc hoặc ε (xâu rỗng)
2) Nhãn của nút gốc là S (ký hiệu 
đầu)
6
3) Nút trong có nhãn là ký hiệu 
không kết thúc
4) Nút A có các nút con từ trái qua 
phải là X1, X2, ... , Xk thì có một 
sản xuất dạng A -> X1 X2 ... Xk
5)Nút lá có thể có nhãn ε chỉ khi tồn 
tại sản xuất A -> ε và nút cha của 
nút lá chỉ có một nút con duy nhất
Văn phạm nhập nhằng
Văn phạm
E -> E + E
E -> E * E
7
E -> ( E )
E -> ident
Cho phép đưa ra hai suy dẫn khác nhau cho 
xâu ident + ident * ident (chẳng hạn x + y * z)
Văn phạm là nhập nhằng
Khử nhập nhằng
E -> E + T
E -> T
T > T * F
8
 - 
T -> F
F -> ( E )
F -> ident
(Bằng cách thêm các ký hiệu không kết thúc và các sản xuất để 
đảm bảo thứ tự ưu tiên)
21/1/2010
3
Đệ quy 
 Một sản xuất là đệ qui nếu X =>* ω1X ω2
 Có thể dùng để biểu diễn các quá trình lặp hay cấu trúc 
lồng nhau
Đệ quy trực tiếp X =>ω1X ω2 
9
Đệ quy trái X => b | Xa. X => X a => X a a => X a a a =>b a a a a a ... 
Đệ quy phải X => b | a X. X => a X => a a X => a a a X =>... a a a a a b
Đệ quy giữa X => b | "(" X")". X =>(X) =>((X)) =>(((X))) =>(((... (b)...))) 
Đệ quy gián tiếp X =>* ω1X ω2 
Khử đệ quy trái 
E -> E + T | T
T -> T * F | F
F -> ( E ) | ident
Khử đệ quy trái bằng cách thêm ký hiệu không 
10
kết thúc và sản xuất mới 
E -> T E'
E' -> + T E' | ε
T -> F T'
T' -> * F T' | ε
F -> ( E ) | ident
            Các file đính kèm theo tài liệu này:
 unit3_compatibility_mode__3313.pdf unit3_compatibility_mode__3313.pdf