Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 16 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
16
Dung lượng
356,01 KB
Nội dung
Bài Văn phạm sản sinh Lý thuyết ngôn ngữ • Mơ hình cho tất ngơn ngữ • Ngôn ngữ tập xâu (sentence, string) bảng chữ • Ví dụ xâu • • • • Dãy bit Số thực Chương trình C Câu tiếng Việt Vấn đề biểu diễn ngơn ngữ • Thực chất biểu diễn cú pháp ngơn ngữ • Biểu diễn phải hữu hạn • Cơng cụ sản sinh: văn phạm • Cơng cụ đốn nhận: ôtômat Phân cấp Chomsky Lớp ngôn ngữ Công cụ sản sinh Cơng cụ đốn nhận Máy Turing Ghi Đệ quy kể Văn phạm loại (ngữ cấu) Các toán tổng quát Cảm ngữ cảnh Văn phạm cảm ngữ Ơtơmat tuyến tính cảnh giới nội Ngơn ngữ tự nhiên Phi ngữ cảnh Văn phạm phi ngữ cảnh Ơtơmat đẩy xuống Ngơn ngữ lập trình, phần ngơn ngữ tự nhiên Chính quy Văn phạm quy Cơng cụ biểu diễn: Biểu thức quy Ơtơmat hữu hạn Từ vựng ngôn ngữ tự nhiên, ngôn ngữ lập trình Văn phạm xuất phát từ ngơn ngữ tự nhiên ::= ::= ::= ::= < bổ ngữ>::= ::= bắt ::= mèo | chuột ::= nhỏ Văn phạm sản sinh số thực ::=- | ::= | . ::= | ::=0 | | | | | | | | | Làm để sản sinh xâu ? Văn phạm phi ngữ cảnh dùng để sản sinh xâu thuộc ngôn ngữ sau: X = Ký hiệu đầu While cịn ký hiệu khơng kết thúc Y X Áp dụng sản xuất của,văn phạm chẳng hạn Y -> w Khi X chứa ký hiệu kết thúc, xâu sản sinh văn phạm Ví dụ S -> -A |A A -> B.B | B B -> BC | C C -> | | | .| Quá trình sản sinh xâu -3.14 Quá trình thay S -A -B.B -B.BC -C.BC -C.CC -3.CC -3.1C -3.14 Sản xuất sử dụng S -A A B.B B BC BC BC C3 C1 C4 Quá trình suy dẫn (derivation) Suy dẫn (Derivations) • Mỗi lần thực việc thay bước suy dẫn • Nếu dạng câu có nhiều ký hiệu khơng kết thúc để thay thay ký hiệu không kết thúc 10 Suy dẫn trái 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 suy dẫn trái suy dẫn phải Ví dụ suy dẫn trái: S -A-B.B -C.B-3.B-3.BC -3.CC -3.1C-3.14 Ví dụ suy dẫn phải: S -A-B.B -B.BC-B.B4-B.C4 -B.14 -C.14 -3.14 11 Cây suy dẫn (Cây phân tích cú pháp) Cây suy dẫn có đặc điểm sau 1) Mỗi nút có nhãn ký hiệu kết thúc, ký hiệu không kết thúc (xâu rỗng) 2) Nhãn nút gốc S (ký hiệu đầu) 3) Nút có nhãn ký hiệu khơng kết thúc(nút có nhãn ký hiệu kết thúc ) 4) Nút A có nút từ trái qua phải X1, X2, , Xk có sản xuất dạng A -> X1 X2 Xk 5)Nút có nhãn tồn sản xuất A -> nút cha nút có nút Ví dụ: Cây phân tích cú pháp văn phạm G: S ->SS |(S)| w=(()()) 12 Văn phạm nhập nhằng Văn phạm E -> E + E E -> E * E E -> ( E ) E -> TK_IDENT Cho phép đưa hai suy dẫn khác cho xâu TK_IDENT + TK_IDENT * TK_IDENT (chẳng hạn x + y * z) Văn phạm nhập nhằng 13 Khử nhập nhằng (disambiguation) E -> E + T E -> T T -> T * F T -> F F -> ( E ) F -> TK_IDENT E: Expresion, T: Term, F: Factor (Bằng cách thêm ký hiệu không kết thúc sản xuất để đảm bảo thứ tự ưu tiên) 14 Đệ quy • Một sản xuất đệ qui X =>* ω1X ω2 • Có thể dùng để biểu diễn q trình lặp hay cấu trúc lồng Đệ quy trực tiếp X =>ω1X ω2 Đệ 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 X => b | ( X) X =>(X) =>((X)) =>(((X))) =>((( (b) ))) Đệ quy gián tiếp X =>* ω1X ω2 15 Khử đệ quy trái E -> E + T | T T -> T * F | F F -> ( E ) | TK_IDENT Khử đệ quy trái cách thêm ký hiệu không kết thúc sản xuất E -> T E' E' -> + T E' | ε T -> F T' T' -> * F T' | ε F -> ( E ) | TK_IDENT 16