Văn phạm phi ngữ cảnh

33 701 0
Văn phạm phi ngữ cảnh

Đ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

Tài liệu này dành cho sinh viên, giáo viên khối ngành công nghệ thông tin tham khảo và có những bài học bổ ích hơn, bổ trợ cho việc tìm kiếm tài liệu, giáo án, giáo trình, bài giảng các môn học khối ngành công nghệ thông tin

Nguyễn Phương Thái Bộ môn Khoa học Máy tính http://www.coltech.vnu.vn/~thainp/  Cú pháp • Là khuôn dạng hay cấu trúc của chương trình • Không liên quan đến ý nghĩa chương trình • Được mô tả bằng văn phạm phi ngữ cảnh  Tại sao chúng ta sử dụng văn phạm phi ngữ cảnh (VPPNC) cho phân tích cú pháp • Cho phép mô tả rõ ràng và dễ hiểu cú pháp một ngôn ngữ lập trình • Dễ sửa đổi và mở rộng ngôn ngữ lập trình • Dễ tạo ra các bộ parser • Cho phép dịch dựa vào cú pháp 22/10/14 2 Nguyễn Phương Thái - Coltech - Compiler 2009  Văn phạm  Phân loại văn phạm của Chomsky  Cây phân tích, dẫn xuất, và văn phạm nhập nhằng  Ôtômát đẩy xuống 22/10/14 3 Nguyễn Phương Thái - Coltech - Compiler 2009  Một ngôn ngữ L trên bộ chữ Σ là một tập con của Σ*.  Bài toán đối với L: • Cho một xâu w, xâu w có thuộc L? • Làm thế nào để sinh ra w trong L? 22/10/14 4 Nguyễn Phương Thái - Coltech - Compiler 2009  Thường dùng: văn phạm • Là một công cụ mô tả hữu hạn ngôn ngữ rất hiệu quả • Là công cụ có định nghĩa toán học chặt chẽ, đã được nghiên cứu kỹ  văn phạm = ngữ pháp = cú pháp 22/10/14 5 Nguyễn Phương Thái - Coltech - Compiler 2009  Ví dụ phân tích văn phạm 22/10/14 6 Nguyễn Phương Thái - Coltech - Compiler 2009 Định nghĩa Một văn phạm là một hệ thống G = ( Σ , ∆ , P, S) trong đó:  Σ là tập hữu hạn các ký hiệu, gọi là ký hiệu kết thúc (terminal)  ∆ là tập hữu hạn các ký hiệu, gọi là ký hiệu không kết thúc (nonterminal)  S ∈∆ gọi là ký hiệu khởi đầu  P là tập hữu hạn các cặp xâu ( α , β ) được gọi là các sản xuất hay luật cú pháp ( α → β ) 22/10/14 7 Nguyễn Phương Thái - Coltech - Compiler 2009 Ví dụ:  Σ = {“bò”, “vàng”, “gặm”, “cỏ”, “non”}  ∆ = {<câu>,<chủ ngữ>, <vị ngữ>, <danh ngữ>, <động từ>, <bổ ngữ>, <danh từ>, <tính từ> }  S =<câu>  P= <câu>→<chủ ngữ><vị ngữ>; <chủ ngữ>→<danh ngữ>; < danh ngữ >→<danh từ><tính từ>; <vị ngữ>→<động từ> <bổ ngữ> <bổ ngữ>→<danh ngữ>; <danh từ>→”bò”|”cỏ”; <tính từ>→”vàng”|”non”; <động từ>→”gặm”; 22/10/14 8 Nguyễn Phương Thái - Coltech - Compiler 2009 Các qui ước:  Dùng các chữ in hoa A, B, C, D, E hoặc cụm từ trong cặp ngoặc nhọn (như <chủ ngữ>) để trỏ các ký hiệu không kết thúc;  Dùng các chữ thường a, b, c, d, e và các con số, các phép toán +, -, *, /, cặp ngoặc đơn để trỏ các ký hiệu kết thúc. Trong một số trường hợp dùng qui ước là một từ được in đậm (như số và chữ) hoặc cụm từ trong cặp ngoặc kép (như "bò");  Dùng các chữ in hoa X, Y, Z để trỏ các ký hiệu có thể là kết thúc hoặc không kết thúc;  Dùng các chữ thường u, v, w, x, y, z để trỏ các xâu ký hiệu cuối;  Dùng các chữ thường Hy lạp α , β , χ để trỏ các xâu gồm các biến và ký hiệu cuối;  Nếu có các sản xuất cùng vế trái A → α và A → β thì ta viết gộp lại cho gọn thành A → α | β . Các sản xuất có cùng một kí hiệu không kết thúc vế trái có thể gọi chung bằng tên kí hiệu vế trái. Ví dụ, sản xuất-A. 22/10/14 9 Nguyễn Phương Thái - Coltech - Compiler 2009  V = ( Σ ∪ ∆ )* là một xâu (có thể rỗng) bao gồm cả ký hiệu không kết thúc và ký hiệu kết thúc;  V* là tập tất cả các xâu V có thể có;  V+ cũng như vậy trừ xâu rỗng;  | | là ký hiệu độ dài xâu (ví dụ | α | là độ dài của xâu α );  Ký hiệu ε là một kí hiệu đặc biệt, chỉ xâu rỗng hoặc kí hiệu rỗng 22/10/14 10 Nguyễn Phương Thái - Coltech - Compiler 2009 [...]... nghĩa: Hai văn phạm G1 và G2 (sản sinh hoặc đoán nhận) là tương đương khi và chỉ khi L(G1) = L(G2) Nguyễn Phương Thái - Coltech - Compiler 2009 22/10/14 13 Nguyễn Phương Thái - Coltech - Compiler 2009 22/10/14 14 Cho văn phạm G = (Σ, ∆, P, S), ta gọi nó là văn phạm:  Lớp 0, văn phạm ngữ cấu (phrase - structure) nếu sản xuất có dạng: α → β trong đó α ∈ V+, β∈V* hoặc cũng có thể nói, lớp văn phạm này... Compiler 2009 22/10/14 15 Lớp 1, văn phạm cảm ngữ cảnh (context - sensitive) nếu sản xuất có dạng: α → β thỏa mãn điều kiện | α | ≤ | β |  Nguyễn Phương Thái - Coltech - Compiler 2009 22/10/14 16  Lớp 2, văn phạm phi ngữ cảnh (context free - viết tắt là VPPNC) nếu sản xuất có dạng: A → α trong đó A ∈ ∆, α ∈V* Nguyễn Phương Thái - Coltech - Compiler 2009 22/10/14 17  Lớp 3, văn phạm chính quy (regular -... 22/10/14 18 Nguyễn Phương Thái - Coltech - Compiler 2009 22/10/14 19  Ngôn ngữ loại 0 được đoán nhận bởi một máy Turing;  Ngôn ngữ loại 1 (cảm ngữ cảnh) được đoán nhận bởi một ôtômát tuyến tính giới nội (sai khác xâu rỗng);  Ngôn ngữ loại 2 (phi ngữ cảnh - viết tắt là NNPNC) đoán nhận bởi một ôtômát đẩy xuống (không đơn định);  Ngôn ngữ loại 3 (chính qui - viết tắt là NNCQ) được đoán nhận bởi một ôtômát... A của văn phạm G = (Σ, ∆, P, S) gọi là đệ quy nếu: A ⇒+ αAβ với α , β ∈ V*  Nếu α = ε , A gọi là đệ quy trái  Nếu β = ε, A gọi là đệ quy phải  Nếu α ≠ ε và β ≠ ε, A gọi là đệ quy trong Nguyễn Phương Thái - Coltech - Compiler 2009 22/10/14 26   Một VPPNC G gọi là văn phạm nhập nhằng nếu có một xâu là kết quả của hai cây suy dẫn khác nhau trong G Ngôn ngữ do văn phạm này sinh ra gọi là ngôn ngữ nhập... ngôn ngữ nhập nhằng cố hữu nếu mọi VPPNC sản sinh ra L đều nhập nhằng Nguyễn Phương Thái - Coltech - Compiler 2009 22/10/14 27 →S+S|S*S|( S)|a S 22/10/14 Nguyễn Phương Thái - Coltech Compiler 2009 28   Viết lại văn phạm để nó không nhập nhằng nữa Sử dụng qui tắc xử lý nhập nhằng Nguyễn Phương Thái - Coltech - Compiler 2009 22/10/14 29  Định lý: Tồn tại giải thuật để xác định, với mỗi văn phạm phi ngữ. .. nghĩa suy dẫn (derivation): Cho văn phạm G = (Σ, ∆ , P, S) như trên, ta gọi suy dẫn trực tiếp là một quan hệ hai ngôi ký hiệu ⇒ trên tập V* nếu αβγ là một xâu thuộc V* và β→δ là một sản xuất trong P, thì αβγ ⇒ αδγ Suy dẫn k bước ⇒k Xâu α suy dẫn xâu β: α ⇒* β Suy dẫn không tầm thường: ⇒+ Nguyễn Phương Thái - Coltech - Compiler 2009 22/10/14 11 Định nghĩa: Ngôn ngữ của văn phạm G là tập hợp các xâu ký... nghiêng;  Các ký tự viết chữ nhỏ và dấu toán học biểu diễn các ký hiệu kết thúc (terninal), cũng có thể thay bằng một xâu đặt trong cặp dấu nháy kép " " hoặc một từ in đậm;  Ký hiệu → hoặc = là ký hiệu chỉ phạm trù cú pháp ở vế trái được giải thích bởi vế phải;  Ký hiệu | chỉ sự lựa chọn Nguyễn Phương Thái - Coltech - Compiler 2009 22/10/14 21 Định nghĩa toán hạng: có thể là một biến (tên), số hoặc một... Viết lại văn phạm để nó không nhập nhằng nữa Sử dụng qui tắc xử lý nhập nhằng Nguyễn Phương Thái - Coltech - Compiler 2009 22/10/14 29  Định lý: Tồn tại giải thuật để xác định, với mỗi văn phạm phi ngữ cảnh bất kỳ G = (Σ, ∆, P, S) và một xâu bất kỳ w ∈ Σ*, xác định được w ∈ L(G) hay không  Chứng minh được định lý này bằng cách đưa ra các giải thuật cài đặt trên thực tế: • Thuật toán phân tích Top - . trình • Được mô tả bằng văn phạm phi ngữ cảnh  Tại sao chúng ta sử dụng văn phạm phi ngữ cảnh (VPPNC) cho phân tích cú pháp • Cho phép mô tả rõ ràng và dễ hiểu cú pháp một ngôn ngữ lập trình • Dễ. 2009 Cho văn phạm G = ( Σ , ∆ , P, S), ta gọi nó là văn phạm:  Lớp 0, văn phạm ngữ cấu (phrase - structure) nếu sản xuất có dạng: α → β trong đó α ∈ V+, β∈V* hoặc cũng có thể nói, lớp văn phạm. 2009  Ngôn ngữ loại 0 được đoán nhận bởi một máy Turing;  Ngôn ngữ loại 1 (cảm ngữ cảnh) được đoán nhận bởi một ôtômát tuyến tính giới nội (sai khác xâu rỗng);  Ngôn ngữ loại 2 (phi ngữ cảnh -

Ngày đăng: 22/10/2014, 19:08

Từ khóa liên quan

Mục lục

  • Văn phạm phi ngữ cảnh

  • Dẫn nhập

  • Nội dung bài giảng

  • Biểu diễn ngôn ngữ

  • Biểu diễn ngôn ngữ (tt)

  • Văn phạm (grammar)

  • Văn phạm (tt)

  • Slide 8

  • Slide 9

  • Slide 10

  • Slide 11

  • Slide 12

  • Slide 13

  • Phân loại Chomsky

  • Phân loại Chomsky (tt)

  • Slide 16

  • Slide 17

  • Slide 18

  • Slide 19

  • Đoán nhận ngôn ngữ

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan