1. Trang chủ
  2. » Công Nghệ Thông Tin

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

33 701 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 33
Dung lượng 1,47 MB

Nội dung

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

Trang 1

Nguyễn Phương Thái

Bộ môn Khoa học Máy tính

http://www.coltech.vnu.vn/~thainp/

Trang 2

 Cú pháp

Trang 3

 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

Trang 4

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:

Trang 5

 Thường dùng: văn phạm

hiệu quả

đã được nghiên cứu kỹ

 văn phạm = ngữ pháp = cú pháp

Trang 7

S gọi là ký hiệu khởi đầu

là các sản xuất hay luật cú pháp (→)

Trang 8

Ví dụ:

  = {“bò”, “vàng”, “gặm”, “cỏ”, “non”bò”, “vàng”, “gặm”, “cỏ”, “non””, “bò”, “vàng”, “gặm”, “cỏ”, “non”vàng”, “gặm”, “cỏ”, “non””, “bò”, “vàng”, “gặm”, “cỏ”, “non”g”, “gặm”, “cỏ”, “non”ặm”, “cỏ”, “non””, “bò”, “vàng”, “gặm”, “cỏ”, “non”cỏ”, “non””, “bò”, “vàng”, “gặm”, “cỏ”, “non”non”}

  = {<câu>,<chủ ngữ>, <vị ngữ>, câu>,<câu>,<chủ ngữ>, <vị ngữ>, chủ ngữ>, <câu>,<chủ ngữ>, <vị ngữ>, vị ngữ>,

<câu>,<chủ ngữ>, <vị ngữ>, danh ngữ>, <câu>,<chủ ngữ>, <vị ngữ>, động từ>, <bổ ngữ>, >, <câu>,<chủ ngữ>, <vị ngữ>, bổ ngữ>,

<câu>,<chủ ngữ>, <vị ngữ>, danh từ>, <bổ ngữ>, >, <câu>,<chủ ngữ>, <vị ngữ>, tính từ>, <bổ ngữ>, > }

Trang 9

Các qui ước:

 Dùng các chữ in hoa A, B, C, D, E hoặc cụm từ>, <bổ ngữ>, trong

cặp ngoặc nhọn (như <câu>,<chủ ngữ>, <vị ngữ>, 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ừ>, <bổ ngữ>, được in đậm (như số và chữ) hoặc cụm từ>, <bổ ngữ>,

trong cặp ngoặc kép (như "bò");

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.

Trang 10

 V+ cũng như vậy trừ>, <bổ ngữ>, 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

Trang 11

 Định 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: +

Trang 12

 Định nghĩa: Ngôn ngữ của văn phạm

G là tập hợp các xâu ký hiệu kết thúc,

ta ký hiệu là L(G), được sinh ra từ>, <bổ ngữ>, S,

hoặc được phân tích (đoán nhận) về

S:

L(G) = { w | w  * và S * w }

hoặc:

L(G) = { w | w  * và w * S }

Trang 13

 Định 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)

Trang 15

Cho văn phạm G = (, , P, S), ta gọi

nó là văn phạm:

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

không bị ràng buộc gì.

Trang 17

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*

Trang 18

Lớp 3, văn phạm chính quy (regular -

viết tắt là VPCQ) nếu sản xuất có

dạng:

A  a, A  Ba trong đó A, B  , a  

hoặc tương tự

A  a, A  aB với A, B  , a  

Trang 19

0 1 2 3

Trang 20

 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

hữu hạn (sai khác xâu rỗng).

Trang 21

Dạng BNF (Backus - Naur Form): thực chất chỉ là

một cách biểu diễn khác của VPPNC Quy ước:

 Các ký tự viết hoa biểu diễn các ký hiệu không kết thúc (nonterninal), cũng có thể thay bằng một xâu đặt trong cặp dấu <câu>,<chủ ngữ>, <vị ngữ>, > hoặc một từ>, <bổ ngữ>, in 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ừ>, <bổ ngữ>, 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.

Trang 22

Định nghĩa toán hạng: có thể là một

biến (tên), số hoặc một biểu thức ở

trong cặp dấu ngoặc đơn

Trang 23

Định nghĩa: Cây phân tích trong một

n k là các con của nút n, theo thứ tự từ>, <bổ ngữ>, trái

sang phải, và lần lượt mang các nhãn

X1,X2, Xk thì XX1X2…Xk phải là một sản

xuất trong P

Trang 25

 Bắt đầu từ>, <bổ ngữ>, S

 Hai thứ tự dẫn xuất thường dùng:

• Suy dẫn trái: chọn kí hiệu bên trái nhất

• Suy dẫn phải: chọn kí hiệu bên phải nhất

 Ví dụ: Dẫn xuất trái nhất và dẫn xuất phải nhất của cây cú pháp trên

Trang 26

Ký hiệu không kết thúc 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

Trang 27

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 nhằng

Một NNPNC L được gọi là 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.

Trang 28

*

Trang 29

 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

Trang 30

Đị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 - Down.

• Thuật toán phân tích Bottom - Up.

• Thuật toán phân tích CYK

(Coke-Younger-Kasami).

• Thuật toán phân tích Earley.

Trang 31

 Ôtômát đẩy xuống dùng để đoán

nhận một xâu vào có thuộc một NN

PNC cho trước hay không

 Là một cái “máy” trừ>, <bổ ngữ>, u tượng

Trang 32

Đầ u điề u khiể n

Xâu vào

0 1 1

Ngăn xế p

Trang 33

Có hai cách khác nhau để thừ>, <bổ ngữ>, a nhận

xâu vào:

 Xâu vào được đọc xong và ôtômát

đến được một trong các trạng thái

cuối mong muốn

 Xâu vào được đọc xong và ngăn xếp

trở thành rỗng

Hai cách thừ>, <bổ ngữ>, a nhận xâu vào như trên

là tương đương với nhau

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

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w