1. Trang chủ
  2. » Mẫu Slide

Ngon ngu hinh thuc va otomat

174 23 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 174
Dung lượng 1,38 MB

Nội dung

Biểu diễn PDA bằng biểu đồ dịch chuyển - Các trạng thái được đặt trong các vòng tròn - Trạng thái đầu có dấu “>” gắn phía trước - Trạng thái kết thúc đặt trong vòng tròn kép - δq,a,x=p,[r]

(1)ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN NGÔN NGỮ HÌNH THỨC & ÔTÔMÁT Giáo trình Kiến trúc máy tính và Hệ điều hành (2) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG Giới thiệu Mục tiêu giáo trình Cung cấp kiến thức ngôn ngữ, văn phạm và ôtômát Cung cấp các phương pháp phân tích từ vựng, phân tích cú pháp Cơ sở cho việc tìm hiểu các ngôn ngữ lập trình Rèn luyện kỹ lập trình cho sinh viênGiáo trình Kiến trúc máy tính và Hệ điều hành (3) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG Giới thiệu Nội dung giáo trình CHƯƠNG MỞ ĐẦU CHƯƠNG ÔTÔMÁT HỮU HẠN CHƯƠNG BIỂU THỨC VÀ VĂN PHẠM CHÍNH QUI CHƯƠNG VĂN PHẠM VÀ NGÔN NGỮ PHI NGỮ CẢNH CHƯƠNG ÔTÔMÁT ĐẨY XUỐNG CHƯƠNG MÁY TURING Giáo trình Kiến trúc máy tính và Hệ điều hành (4) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG MỞ ĐẦU  Một số vấn đề ngôn ngữ  Khái niệm văn phạm  Khái niệm Ôtômát Giáo trình Kiến trúc máy tính và Hệ điều hành (5) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG MỞ ĐẦU Một số vấn đề ngôn ngữ 1.1 Xâu - Bộ chữ (bảng chữ) là tập hợp hữu hạn các ký hiệu Ví dụ:{0,1} chữ gồm ký hiệu và {a,b,c,…,z} chữ gồm các ký hiệu a z Tập các chữ cái tiếng việt Giáo trình Kiến trúc máy tính và Hệ điều hành (6) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG MỞ ĐẦU Một số vấn đề ngôn ngữ 1.1 Xâu - Xâu trên chữ V là dãy các ký hiệu V Ví dụ: 0110 là xâu trên chữ {0,1} a, ab, giathanh là xâu trên chữ {a,b, …,z} - Độ dài xâu là số các ký hiệu xâu Ký hiệu: độ dài xâu x là |x| Ví dụ: Giáo trình Kiến trúc máy tính và Hệ điều hành |01110|=5 (7) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG MỞ ĐẦU Một số vấn đề ngôn ngữ 1.1 Xâu - Xâu rỗng là xâu có độ dài Ký hiệu: , ||=0 - Tập tất các xâu trên V là V*, {}V* V+ =V *-{} V*: tập vô hạn đếm Ví dụ: V={a,b}V*={,a,b,aa,bb,ab,ba,…} Giáo trình Kiến trúc máy tính và Hệ điều hành (8) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG MỞ ĐẦU Một số vấn đề ngôn ngữ 1.1 Xâu - Các phép toán trên xâu • Ghép tiếp: cho xâu x,y Ghép tiếp x, y là x.y hay xy là xâu viết x trước, đến y sau không có dấu cách Ví dụ: x=01 y=0110 Giáo trình Kiến trúc máy tính và Hệ điều hành xy=010110 (9) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG MỞ ĐẦU Một số vấn đề ngôn ngữ 1.1 Xâu • Đảo ngược xâu x (xr): xâu viết theo thứ tự ngược lại xâu x Ví dụ: x=0101 xr =1010 Chú ý: r= , 1r =1 - Xâu x mà x=xr thì x là xâu hình tháp (xâu đối xứng) Giáo trình Kiến trúc máy r tính và Ví dụ: x=0110 x =0110, x: xâu hình tháp Hệ điều hành (10) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG MỞ ĐẦU Một số vấn đề ngôn ngữ 1.1 Xâu • Lũy thừa xâu x (xn): xâu nhận cách ghép tiếp chính xâu x n lần xn = x.x.x x (n lần x) x0 =  với xâu x Ví dụ: x=01 x3 =010101 10=  Giáo trình Kiến trúc máy tính và Hệ điều hành 10 (11) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG MỞ ĐẦU Một số vấn đề ngôn ngữ 1.2 Ngôn ngữ - Ngôn ngữ L trên chữ V là tập hợp các xâu trên V, LV* - Các phép toán trên ngôn ngữ • Vì ngôn ngữ là tập hợp nên có các phép toán tập hợp: (giao), (hợp), -(hiệu), bù • Ghép tiếp ngôn ngữ Giáo trình Kiến trúc máy tính và Hệ điều hành 11 (12) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG MỞ ĐẦU Một số vấn đề ngôn ngữ 1.2 Ngôn ngữ - Các phép toán trên ngôn ngữ: Cho L1, L2 trên chữ V • Phép giao: L1L2 = {x | xL1 và xL2} • Phép hợp: L1L2 = {x | xL1 xL2} • Phép hiệu: L1- L2 = {x | xL1 và xL2} * • Phép bù:Giáo L=V trình Ki-ếnL trúc máy tính và Hệ điều hành 12 (13) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG MỞ ĐẦU Một số vấn đề ngôn ngữ 1.2 Ngôn ngữ • Ghép tiếp ngôn ngữ Cho ngôn ngữ L1, L2 Ta gọi ghép tiếp L1.L2 (L1L2) L1 và L2 là tập hợp L1L2={xy/(xL1) và (yL2)} x.x=x2; x.x.x=x3; x0=; xi=xi-1x L0={}; Li=Li-1.L trình Ki ến trúc máy tính và+ Giáo - L*=L0L L …; L =L L … Hệ điều hành 13 (14) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG MỞ ĐẦU Một số vấn đề ngôn ngữ 1.3 Biểu diễn ngôn ngữ  Ngôn ngữ đơn giản - Phương pháp liệt kê: ngôn ngữ có số xâu là hữu hạn và có thể xác định Ví dụ: ngôn ngữ là các số tự nhiên nhỏ 20 và lớn 12 L={13, 14, 15, 16, 17, 18, 19} Giáo trình Kiến trúc máy tính và Hệ điều hành 14 (15) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG MỞ ĐẦU Một số vấn đề ngôn ngữ 1.3 Biểu diễn ngôn ngữ  Ngôn ngữ đơn giản - Phương pháp sử dụng tân từ P(x): ngôn ngữ mà các xâu có cùng các đặc điểm Ví dụ: ngôn ngữ là các số thực nhỏ L={x/ (x R) và (x<5)} Giáo trình Kiến trúc máy tính và Hệ điều hành 15 (16) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG MỞ ĐẦU Một số vấn đề ngôn ngữ 1.3 Biểu diễn ngôn ngữ  Ngôn ngữ phức tạp - Văn phạm: chế để sản sinh ngôn ngữ - Đối với ngôn ngữ tự nhiên: văn phạm là hệ thống ngữ pháp - Đối với ngôn ngữ lập trình: văn phạm là qui tắc cú pháp viết chương trình Giáo trình Kiến trúc máy tính và Hệ điều hành 16 (17) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG MỞ ĐẦU Văn phạm 2.1 Định nghĩa: G=(Σ, Δ, s, p) đó: Σ: tập hữu hạn các ký hiệu kết thúc Δ: tập hữu hạn các ký hiệu chưa kết thúc s: ký hiệu bắt đầu; sΔ p: tập hữu hạn các sản xuất có dạng  với  (Σ  Δ)+, có ít ký hiệu chưa kết thúc Giáo trình Kiến trúc máy tính và Hệ điều hành  (ΣΔ)* 17 (18) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG MỞ ĐẦU Văn phạm 2.1 Định nghĩa: G=(Σ, Δ, s, p) đó: Σ: tập hữu hạn các ký hiệu kết thúc Δ: tập hữu hạn các ký hiệu chưa kết thúc s: ký hiệu bắt đầu; sΔ p: tập hữu hạn các sản xuất có dạng  với  (Σ  Δ)+, có ít ký hiệu chưa kết thúc Giáo trình Kiến trúc máy tính và Hệ điều hành  (ΣΔ)* 18 (19) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG MỞ ĐẦU Văn phạm  Qui ước: - Ký hiệu kết thúc viết chữ thường - Ký hiệu chưa kết thúc viết chữ in - Ký hiệu chưa kết thúc nằm bên trái sản xuất đầu tiên là ký hiệu bắt đầu Giáo trình Kiến trúc máy tính và Hệ điều hành 19 (20) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG MỞ ĐẦU Văn phạm 2.2 Các khái niệm  Xâu (câu) và dạng câu:   gọi là xâu   Σ*   gọi là dạng câu (ΣΔ)* Giáo trình Kiến trúc máy tính và Hệ điều hành 20 (21) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG MỞ ĐẦU Văn phạm 2.2 Các khái niệm  Quan hệ suy dẫn: - A có quan hệ suy dẫn  hay  suy dẫn từ A, có nghĩa là từ A áp dụng các sản xuất sinh  - Quan hệ suy dẫn trực tiếp: từ A áp dụng sản xuất sinh  * Ký hiệu:Giáo A AΔ trình Kiếvới n trúc máy tính và và (ΣΔ) Hệ điều hành 21 (22) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG MỞ ĐẦU Văn phạm 2.2 Các khái niệm  Quan hệ suy dẫn: - Quan hệ suy dẫn nhiều lần: từ A áp dụng nhiều sản xuất sinh  Ký hiệu: A +  với AΔ và (ΣΔ)* - Độ dài suy dẫn: số lần áp dụng các sản xuất - Độ dài suy dẫn trực tiếp Giáo trình Kiến trúc máy tính và Hệ điều hành 22 (23) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG MỞ ĐẦU Văn phạm 2.3 Ngôn ngữ sinh từ văn phạm - Tập hợp các câu sinh từ văn phạm tạo nên ngôn ngữ - Xác định câu sinh từ văn phạm: Từ ký hiệu bắt đầu văn phạm áp dụng các sản xuất để sinh các câu Giáo trình Kiến trúc máy tính và Hệ điều hành 23 (24) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG MỞ ĐẦU Văn phạm 2.3 Ngôn ngữ sinh từ văn phạm (1) (2) - Ví dụ: cho G: S0S1 |  (1) (2) (1) (1) (2) (1) (1) (1) S==>0S1==>01 S==>0S1==>00S11==>0011 (2) S==>0S1==>00S11==>000S111==>000111 Vậy L(G)={0n1n | với n>=0} Giáo trình Kiến trúc máy tính và Hệ điều hành 24 (25) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG MỞ ĐẦU Văn phạm 2.3 Ngôn ngữ sinh từ văn phạm - Ví dụ 2: Cho G: SaA AaA | b L(G)={anb | n>0} Giáo trình Kiến trúc máy tính và Hệ điều hành 25 (26) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG MỞ ĐẦU Văn phạm 2.4 Phân cấp văn phạm Chomsky - Nếu các sản xuất có dạng Aa |aB với A,B ;a : văn phạm chính quy (VP loại 3) - Nếu các sản xuất có dạng A với A; ()*: văn phạm phi ngữ cảnh (VP loại 2) - Nếu các sản xuất có dạng  với , ()*: văn phạm cảm ngữ cảnh (VP loại 1) - Nếu không cóKihạn Giáo trình ến trúc chế máy tínhgì và trên sản xuất: văn 26 phạm Hệ điều hành tự (VP loại 0) (27) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG MỞ ĐẦU Văn phạm 2.4 Phân cấp văn phạm Chomsky  Lưu ý: - Văn phạm loại là trường hợp đặc biệt văn phạm loại - Văn phạm loại là trường hợp đặc biệt văn phạm loại - Văn phạm loại là trường hợp đặc biệt văn phạm loại Giáo0 trình Kiến trúc máy tính và 27 Hệ điều hành (28) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG MỞ ĐẦU Khái niệm Ôtômát - Bộ gồm: tập các trạng thái và các điều khiển dịch chuyển từ trạng thái này sang trạng thái khác nhận liệu vào - Ôtômát biểu diễn hoạt động bóng điện ấn công tắc Tắt Bật - Ôtômát đoán nhận từ khóa int i i n in Giáo trình Kiến trúc máy tính và Hệ điều hành t int 28 (29) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT HỮU HẠN  Ôtômát hữu hạn đơn định(DFA)  Ôtômát hữu hạn không đơn định(NFA)  Sự tương đương DFA và NFA  Ứng dụng Giáo trình Kiến trúc máy tính và Hệ điều hành 29 (30) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT HỮU HẠN Ôtômát hữu hạn đơn định(Deterministic finite automata –DFA) 1.1 Mô tả - Ôtômát hữu hạn là cái máy đoán nhận xâu gồm: • Một băng vào chia thành nhiều ô, ô chứa ký hiệu xâu vào • Một đầu đọc, thời điểm trỏ vào ô trên băng Giáo trình Kiến trúc máy tính và Hệ điều hành 30 (31) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT HỮU HẠN Ôtômát hữu hạn đơn định 1.1 Mô tả • Một điều khiển Q gồm các trạng thái, thời điểm nó có trạng thái xác định qua hàm chuyển trạng thái Bộ điều khiển 1 Băng vào Đầu đọc q Giáo trình Kiến trúc máy tính và Hệ điều hành 31 (32) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT HỮU HẠN Ôtômát hữu hạn đơn định 1.1 Mô tả - Tại thời điểm, trạng thái q điều khiển và ký hiệu mà đầu đọc đọc xác định trạng thái điều khiển - Mỗi lần đọc xong ô, đầu đọc chuyển sang phải ô - Trạng thái đầu tiên điều khiển: trạng thái bắt đầu ôtômát Giáo trình Kiến trúc máy tính và Hệ điều hành 32 (33) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT HỮU HẠN Ôtômát hữu hạn đơn định 1.2 Định nghĩa: M(Σ, Q, δ, q0, F) Σ: chữ vào Q: tập hữu hạn các trạng thái q0  Q: trạng thái đầu F  Q: tập các trạng thái kết thúc δ: hàm chuyển trạng thái có dạng δ(q,a)=p Với q,p  Q, a  Σ Với δ(q,a)=p có trạng thái p Giáo trình Kiến trúc máy tính và Hệ điều hành 33 (34) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT HỮU HẠN Ôtômát hữu hạn đơn định 1.2 Định nghĩa: - Ví dụ: DFA M(Σ, Q, δ, q0, F) Σ: {0,1} Q: {0,1} q0: F: {1} tập các trạng thái kết thúc δ: δ(0,0)=0, Giáo trình Kiếδ(0,1)=1, n trúc máy tính và δ(1,1)=1 và δ(1,0)=0 34 Hệ điều hành (35) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT HỮU HẠN Otomat hữu hạn đơn định 1.3 Biểu diễn các hàm chuyển trạng thái  Dùng bảng: sử dụng ma trận δ có: - Chỉ số hàng: trạng thái - Chỉ số cột: ký hiệu vào - Giá trị hàng q, cột a là trạng thái p, cho δ(q,a)=p Giáo trình Kiến trúc máy tính và Hệ điều hành 35 (36) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT HỮU HẠN Otomat hữu hạn đơn định 1.3 Biểu diễn các hàm chuyển trạng thái  Dùng bảng: Ví dụ: có hàm chuyển Otomat sau: δ(1,a)=2, δ(2,b)=2, δ(2,c)=2 δ a 2 Giáo trình Kiến trúc máy tính và Hệ điều hành b c 2 36 (37) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT HỮU HẠN Otomat hữu hạn đơn định 1.3 Biểu diễn các hàm chuyển trạng thái  Biểu đồ dịch chuyển: - Mỗi trạng thái qQ đặt các vòng tròn - Trạng thái bắt đầu q0 có thêm dấu ‘>’ đầu - Trạng thái kết thúc qF đặt vòng tròn kép - Các cungGiáo nối từ trạng thái q sang trạng thái37p có trình Kiến trúc máy tính và điều hành mang cácHệnhãn aΣ, có nghĩa δ(q,a)=p (38) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT HỮU HẠN Ôtômat hữu hạn đơn định 1.3 Biểu diễn các hàm chuyển trạng thái  Biểu đồ dịch chuyển: Ví dụ: có hàm chuyển Otomat sau: δ(1,a)=2, δ(2,b)=2, δ(2,c)=2 b a Giáo trình Kiến trúc máy tính và Hệ điều hành c 38 (39) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT HỮU HẠN Ôtômát hữu hạn đơn định 1.4 Hàm chuyển trạng thái mở rộng - Ở trạng thái q1đọc xong xâu x=a1a2a3 ai-1=yai-1 chuyển sang trạng thái qi - Có (q1,a1)=q2; (q2,a2)=q3; , (qi-1,ai-1)=qi : ta có thể biểu diễn sau: *(q1,x)=qi  *(q1,x)= (*(q1,y),ai-1)=qi: hàm chuyển trạng thái mở rộng Giáo trình Kiến trúc máy tính và Hệ điều hành 39 (40) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT HỮU HẠN Ôtômát hữu hạn đơn định 1.4 Hàm chuyển trạng thái mở rộng Cho δ: δ(0,0)=0, δ(0,1)=1, δ(1,1)=1 và δ(1,0)=0 Xác định *(0,01101)=? (0,0) = *(0,01) = ((0,0),1) = *(0,011) = (*(0,01),1) = *(0,0110) = (*(0,011),0) = Giáo trình Kiến trúc máy tính và Hệ điều hành * *(0,01101) = ( (0,0110),1) = 40 (41) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT HỮU HẠN Ôtômát hữu hạn đơn định 1.5 Hoạt động đoán nhận xâu - Từ trạng thái bắt đầu, đọc ký hiệu vào từ trái sang phải Mỗi lần đọc thì xác định lại trạng thái qua hàm chuyển trạng thái - Nếu đọc xong xâu vào mà rơi vào trạng thái kết thúc thì xâu vào đoán nhận ngược lại xâu vào không đoán nhận - Nếu không thể đọc xong xâu vào thì xâu vào Giáo trình Kiến trúc máy tính và 41 không đoán nhận Hệ điều hành (42) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT HỮU HẠN Ôtômát hữu hạn đơn định 1.5 Hoạt động đoán nhận xâu - Xâu x đoán nhận ôtômat DFA  *(q0,x)=pF - Cho DFA M({a,b},{0,1,2,3,4},,0,{4}), δ: δ(0,a)=1, δ(1,b)=2, δ(2,a)=3, δ(2,b)=4 δ(3,a)=3, δ(3,b)=4, δ(4,b)=4 xâu x=abaabbb có đoán nhận k0? Giáo trình Kiến trúc máy tính và Hệ điều hành 42 (43) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT HỮU HẠN Ôtômát hữu hạn đơn định 1.5 Hoạt động đoán nhận xâu (0,a) = *(0,ab) = ((0,a),b) =  (0,aba) = ( (0,ab),a) = * * a b b a a *(0,abaa) = (*(0,aba),a) = *(0,abaab) = (*(0,abaa),b) = b b *(0,abaabb) = (*(0,abaab),b) = *(0,abaabbb) = (*(0,abaabb),b) = 4F, xâu x Giáo trình Kiến trúc máy tính và 43 đoán Hệ nhận điều hành (44) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT HỮU HẠN Ôtômát hữu hạn đơn định 1.5 Hoạt động đoán nhận xâu Ta có thể viết lại sau: 0abaabbb 1baabbb 2aabbb a b b a a b 3abbb 3bbb b 4bb 4b Giáo trình Kiến trúc máy tính và Hệ điều hành 44 (45) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT HỮU HẠN Ôtômát hữu hạn đơn định 1.6 Ngôn ngữ đoán nhận DFA - Cho DFA M(Σ, Q, δ, q0, F), ngôn ngữ L đoán nhận M xác định sau: L(M)={x*| *(q0,x)=pF} - Ví dụ: vẽ ôtômat đoán nhận ngôn ngữ L gồm các xâu là số nhị phân có độ dài >=2 0|1 0|1 Giáo trình Kiến trúc máy tính và Hệ điều hành 0|1 45 (46) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT HỮU HẠN Ôtômát hữu hạn đơn định  Trạng thái không chấp nhận - Trạng thái không có mũi tên vào có mũ tên (trừ trạng thái bắt đầu) - Trạng thái có mũi tên vào không có mũi tên (trừ trạng thái kết thúc q Giáo trình Kiến trúc máy tính và Hệ điều hành q 46 (47) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT HỮU HẠN Ôtômát hữu hạn đơn định  Bài tập: (1) Cho M, xâu x: kiểm tra xâu x có đoán nhận hay không? x: aabbca, abbbca, abbaca, aaaca a a b b c Giáo trình Kiến trúc máy tính và Hệ điều hành c a 47 (48) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT HỮU HẠN Ôtômát hữu hạn đơn định  Bài tập: (2) Xây dựng DFA đoán nhận ngôn ngữ L(M) sau: - L(M)={abcnbm với n>=0, m>0} - L(M)={0(10)n với n>0} - L(M)={0n1m với n>=0, m>0} - L(M)={0n1m với n>0, m>0} Giáo trình Kiến trúc máy tính và Hệ điều hành 48 (49) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT HỮU HẠN Ôtômát hữu hạn đơn định  Bài tập: (3) Xây dựng ôtômat đoán nhận L(M) là: - Một số nhị phân chẵn có độ dài xâu lớn - Một số nguyên có dấu, không dấu - Một số nguyên không dấu NNLT C - Một số thực tĩnh có dấu, không dấu Giáo trình Kiến trúc máy tính và Hệ điều hành 49 (50) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT HỮU HẠN Ôtômat hữu hạn không đơn định (Nondeterministic finite automata –NFA) 2.1 Định nghĩa: M(Σ, Q, δ, q0, F) Σ: chữ vào Q: tập hữu hạn các trạng thái q0  Q: trạng thái đầu F  Q: tập các trạng thái kết thúc δ: hàm chuyển trạng thái có dạng δ(q,a)=P Với qQ, a(Σ), PQ Giáo trình Kiến trúc máy tính và Hệ điều hành 50 (51) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT HỮU HẠN Ôtômat hữu hạn không đơn định Ví dụ: Ôtômát đoán nhận các xâu có độ dài chẵn trên chữ {0,1} 0|1 0|1  Giáo trình Kiến trúc máy tính và Hệ điều hành 51 (52) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT HỮU HẠN Ôtômat hữu hạn không đơn định  Sự khác DFA và NFA - NFA: δ(q,a)=P, với qQ, a(Σ), PQ DFA: δ(q,a)=p, với q,p  Q, a  Σ - NFA: có thể có dịch chuyển đọc  DFA: không thể dịch chuyển đọc  Giáo trình Kiến trúc máy tính và Hệ điều hành 52 (53) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT HỮU HẠN Ôtômat hữu hạn không đơn định 2.2 Hàm dịch chuyển mở rộng  (q0,a1)={q1, q2} và (q1,a2)={q3,q4} (q2,a2)={q5,q6}  *(q0,a1a2)= (q1,a2)(q2,a2)={q3,q4,q5,q6} - Có *(q,x)={p k 1, p2, ,pk} thì *(q,xa)=  ( p , a) i i 1 với x*, a Giáo trình Kiến trúc máy tính và Hệ điều hành 53 (54) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT HỮU HẠN Ôtômat hữu hạn không đơn định 2.2 Hàm dịch chuyển mở rộng - Cho NFA, *(0,01001)=? (0,0)={1} 0 *(0,01)= (1,1)={1,2} 1 0|1 *(0,010)= (1,0)  (2,0) ={1} *(0,0100)= (1,0) ={1} *(0,01001)= (1,1) Giáo trình Ki ến trúc máy={1,2} tính và Hệ điều hành 54 (55) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT HỮU HẠN Ôtômat hữu hạn không đơn định 2.3 Đoán nhận xâu x NFA - Xâu x đoán nhận ôtômat  *(q0,x)F - Theo ví dụ trước: *(0,01001)= {1,2} {1,2}F ={2}  : xâu 01001 đoán nhận Giáo trình Kiến trúc máy tính và Hệ điều hành 55 (56) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT HỮU HẠN Ôtômat hữu hạn không đơn định 2.4 Ngôn ngữ đoán nhận NFA - Cho NFA M(Σ, Q, δ, q0, F), ngôn ngữ L đoán nhận M xác định sau: L(M)={x*| *(q0,x)  F} - Theo ví dụ trước các xâu bắt đầu và kết thúc đoán nhận: 00111, 0100101, 0111, 010101, Giáo trình Kiến trúc máy tính và Hệ điều hành 56 (57) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT HỮU HẠN Xây dựng DFA từ NFA - Cho NFA M(ΣN, QN, δN, q0, FN) thì DFA M(ΣN, QD, δD, q0, FD) - Xác định QD, δD, FD • Tạo tất các tập T từ tập QN • Xác định D(T,a)=N(qi,a) với qi T, a • Mỗi tập T tương ứng với trạng thái DFA • Loại bỏ các trạng thái không chấp nhận • Giáo trình Kiến trúc máy tính và Hệ điều hành 57 Trạng thái tương ứng với tập T có chứa trạng (58) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT HỮU HẠN Xây dựng DFA từ NFA - 0|1 Ví dụ: 0 {0} {0,1} {1} {0} q0 {2} q1 *{2} q3 q0 q2 *q2 {0,1} {0,1} {0,2} *{0,2} {0,1} *{1,2} *{1,2,0} 1 q3 q3 q4 {0} * q4 q3 q0 {2} * q5 Giáo trình Kiến trúc máy tính và H{0,1} ệ điều hành {0,2} * q6 q2 q3 58 q4 (59) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT HỮU HẠN Xây dựng DFA từ NFA - Ví dụ: q0 q3 q0 q1 q0 q2 *q2 q3 q3 q4 *q4 q3 q0 *q5 *q6 q3 q1 q4 q2 q3 1 q2 q6 q5 q4 Giáo trình Kiến trúc máy tính và Hệ điều hành 59 (60) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT HỮU HẠN Xây dựng DFA từ NFA - Các trạng thái q1, q2, q5, q6: không chấp nhận - q4 tương ứng {0,2}: là trạng thái kết thúc 1 q0 q3 q0 q3 q3 q4 *q4 q3 q0 q0 Giáo trình Kiến trúc máy tính và Hệ điều hành 0 q3 1 q4 60 (61) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT HỮU HẠN Ứng dụng - Đoán nhận từ khóa, số, , từ tố - DFA đoán nhận khóa float f l o a t - NFA đoán nhận số nguyên có dấu 0| |9 +| - | Giáo trình Kiến trúc máy tính và Hệ điều hành 0| |9 61 (62) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT HỮU HẠN  Bài tập (1) Vẽ NFA đoán nhận - các số nhị phân có độ dài là bội số - các từ 110, 101 - Các từ 0(101)+1 (2) Chuyển NFA thành DFA - Các NFA câu (1) Giáo trình Kiến trúc máy tính và Hệ điều hành 62 (63) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT HỮU HẠN  Bài tập - NFA hình vẽ sau: 0|1 0|1 0 0|1 - NFA có hàm chuyển sau:  a 0 {1,2} *2 b {0} Giáo trình Kiến trúc máy tính và Hệ điều hành c d {1} {2} {2} {0,1} 63 (64) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT HỮU HẠN  Bài tập - NFA có hàm chuyển sau:  0 {1,3} {1} *1 {2} {1,2} {3} {0} *3 Giáo trình Kiến trúc máy tính và Hệ điều hành {0} 64 (65) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY  Biểu thức chính quy  Ngôn ngữ chính quy  Văn phạm chính qui Giáo trình Kiến trúc máy tính và Hệ điều hành 65 (66) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Biểu Thức chính quy 1.1 Định nghĩa: Cho chữ , biểu thức chính quy (BTCQ) trên  định nghĩa đệ qui sau:   là BTCQ   là BTCQ  a, a là BTCQ - Với r, s là BTCQ thì (r+s), rs, r*, s* là BTCQ Giáo trình Kiến trúc máy tính và Hệ điều hành Có thể viết (r+s) hay (r  s) 66 (67) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Biểu Thức chính quy 1.1 Định nghĩa: Ví dụ: Cho ={0,1} ta có:  , , 0, là BTCQ - (0+1), 01, 0*, 1*, (0+1)01, (0+1)0*, (01)*, ((0+1)01)* là BTCQ Giáo trình Kiến trúc máy tính và Hệ điều hành 67 (68) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Biểu Thức chính quy 1.1 Định nghĩa:  Ví dụ: - (a+b+c) là BTCQ định xâu a, b, c trên chữ {a, b, c} - (a+b)* là BTCQ định xâu trên {a, b} - aa*bb* hay a+b+ là BTCQ định các xâu bắt đầu số ký hiệu a, là số ký hiệu bGiáotrong hiệu a và b xuất hiện68 ít trình Kiếnđó trúc ký máy tính và Hệ điều hành lần (69) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Biểu Thức chính quy 1.1 Định nghĩa:  Ví dụ: - (b+)(a+ab)* là BTCQ định các xâu trên {a, b} không chứa bb - (0+1)*1 là BTCQ định các xâu là số nhị phân lẻ Giáo trình Kiến trúc máy tính và Hệ điều hành 69 (70) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Biểu Thức chính quy 1.2 Thứ tự ưu tiên các phép toán - Phép bao đóng (*) - Phép ghép tiếp (.) - Phép hợp (+)  Ví dụ: 10*+0 : (1(0)*)+0 Giáo trình Kiến trúc máy tính và Hệ điều hành 70 (71) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Biểu Thức chính quy 1.3 Tính chất đại số - Tính giao hoán: r+s=s+r - Tính kết hợp: (r + s) + t = r + (s + t) r(st)=(rs)t Giáo trình Kiến trúc máy tính và Hệ điều hành 71 (72) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Biểu Thức chính quy 1.3 Tính chất đại số - Tính chất phân bổ r (s + t) = rs + rt (r + s)t = rt + st - Một số tính chất khác (r*)* = r* r = r = r r+r=r r* = r+ +  + Giáo trình Kiến trúc máy tính và Hệ điều hành *=  72 (73) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Biểu Thức chính quy 1.4 Ngôn ngữ định BTCQ Ngôn ngữ L(r) định BTCQ r là xây dựng dựa trên quy tắc - L( ) = {} - L(a) = {a} - L(r+s)=L(r)L(s) - L(rs) = L(r)L(s) trình Kiến trúc máy tính và - L(r*)Giáo =ều(L(r))* Hệ hành 73 (74) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Biểu Thức chính quy 1.4 Ngôn ngữ định BTCQ  Ví dụ: xây dựng BTCQ định ngôn ngữ L có ít ký hiệu a và ký hiệu b trên {a, b} - L(r) = L(r1)  L(r2)=L(r1+r2) - L(r1): các xâu r1 có dạng w1aw2bw3 - L(r2): các xâu r2 có dạng w1bw2aw3 - BTCQ định L: Giáo trình Kiến trúc máy tính và Hệ điều hành 74 (a+b)*a(a+b)*b(a+b)* + (a+b)*b(a+b)*a(a+b)* (75) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Biểu Thức chính quy  Bài tập (1) Xây dựng BTCQ định các ngôn ngữ sau: - Tập hợp các xâu trên {a,b} có độ dài chia hết cho - Tập hợp các xâu trên {a, b, c} chứa ký hiệu a, còn lại là các ký hiệu b và c - Tập hợp các số nhị phân có tận cùng là 11 trình Kiến trúc máy tính và 75 - Tập hợp Giáo các số nguyên k0 dấu chia hết cho Hệ điều hành (76) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Biểu Thức chính quy  Bài tập (2) Mô tả ngôn ngữ định BTCQ sau: - (a+b+c+d)*(a+d) - 1(0+1)(0+1)(0+1) - ((0+1)(0+1))+ - a(a+b)*a - (ab)* + (ba)* Giáo trình Kiến trúc máy tính và Hệ điều hành 76 (77) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Ngôn ngữ chính quy 2.1 Khái niệm - Ngôn ngữ chính quy là ngôn ngữ biểu diễn biểu thức chính qui - Ngôn ngữ chính qui đoán nhận ôtômát hữu hạn - Ngôn ngữ sản sinh từ văn phạm chính quy là ngôn ngữ chính qui Giáo trình Kiến trúc máy tính và Hệ điều hành 77 (78) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Ngôn ngữ chính quy 2.2 Ôtômat NFA đoán nhận ngôn ngữ biểu diễn BTCQ - BTCQ là a a - BTCQ là   Giáo trình Kiến trúc máy tính và Hệ điều hành 78 (79) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Ngôn ngữ chính quy 2.2 Ôtômat NFA đoán nhận ngôn ngữ biểu diễn BTCQ - BTCQ là rs r  Giáo trình Kiến trúc máy tính và Hệ điều hành s 79 (80) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Ngôn ngữ chính quy 2.2 Ôtômat NFA đoán nhận ngôn ngữ biểu diễn BTCQ - BTCQ là (r+s)  r    s Giáo trình Kiến trúc máy tính và Hệ điều hành 80 (81) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Ngôn ngữ chính quy 2.2 Ôtômat NFA đoán nhận ngôn ngữ biểu diễn BTCQ - BTCQ là r*   r   Giáo trình Kiến trúc máy tính và Hệ điều hành 81 (82) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Ngôn ngữ chính quy 2.2 Ôtômat NFA đoán nhận ngôn ngữ biểu diễn BTCQ - Ví dụ: xây dựng NFA đoán nhận (0+1)(01)*    Giáo trình Kiến trúc máy tính và Hệ điều hành  82 (83) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Ngôn ngữ chính quy 2.2 Ôtômat đoán nhận ngôn ngữ biểu diễn BTCQ - Ví dụ: (0+1)(01)*     Giáo trình Kiến trúc máy tính và Hệ điều hành 83 (84) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Ngôn ngữ chính quy         0|1 Giáo trình Kiến trúc máy tính và Hệ điều hành  84 (85) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Ngôn ngữ chính quy 2.3 Tính chất đóng ngôn ngữ chính quy Cho L1(r) và L2(s) là ngôn ngữ chính quy thì: - L1(r)  L2(s): ngôn ngữ chính quy - L1(r)  L2(s): ngôn ngữ chính quy - L1(r).L2(s): ngôn ngữ chính quy - (L1(r))*: ngôn ngữ chính quy Giáo trình Kiến trúc máy tính và Hệ điều hành 85 (86) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Ngôn ngữ chính quy  Bài tập (1) Vẽ NFA đoán nhận ngôn ngữ biểu diễn BTCQ sau: - (01)*(0+10*) - (10+(0+01)1*0) - (0+1)*(11+00)(0+1)* Giáo trình Kiến trúc máy tính và Hệ điều hành 86 (87) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Ngôn ngữ chính quy  Bài tập (2) Vẽ DFA đoán nhận ngôn ngữ biểu diễn BTCQ sau: - 1*01+ - 10*11* - (a+b)c*ab* Giáo trình Kiến trúc máy tính và Hệ điều hành 87 (88) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Văn phạm chính quy 3.1 Định nghĩa văn phạm tuyến tính trái - Một văn phạm G=(Σ, Δ, s, p) gọi là văn phạm tuyến tính trái tất các sản xuất có dạng ABw hay AB với A,BΔ; wΣ* - Ví dụ: SS a | S b | a Giáo trình Kiến trúc máy tính và Hệ điều hành 88 (89) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Văn phạm chính quy 3.2 Định nghĩa văn phạm tuyến tính phải - Một văn phạm G=(Σ, Δ, s, p) gọi là văn phạm tuyến tính phải tất các sản xuất có dạng AwB hay AB với A,BΔ; wΣ* - Ví dụ: Sa A Aa A | b A |  Giáo trình Kiến trúc máy tính và Hệ điều hành 89 (90) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Văn phạm chính quy 3.3 Định nghĩa văn phạm chính quy - Văn phạm tuyến tính trái, văn phạm tuyến tính phải là văn phạm chính quy Giáo trình Kiến trúc máy tính và Hệ điều hành 90 (91) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Văn phạm chính quy 3.4 Xây dựng NFA từ văn phạm tuyến tính phải Cho văn phạm chính qui G=(ΣG , Δ, s, p) xây dựng NFA M=(Q, Σ, q0, , F) đoán nhận ngôn ngữ sinh từ G - Σ = ΣG - Với AΔ thì AQ - q0 = S Giáo trình Kiến trúc máy tính và Hệ điều hành 91 (92) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Văn phạm chính quy 3.4 Xây dựng NFA từ văn phạm tuyến tính phải - Nếu Aa1a2 thì *(A,a1a2 ai)=qi : thêm qi vào Q và F - Nếu Aa1a2 thì đặt vào  các dịch chuyển trạng thái và thêm vào Q các trạng thái cho *(A,a1a2 ai)=qi a1 a2 A Giáo trình Kiến trúc máy tính và Hệ điều hành q92i (93) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Văn phạm chính quy 3.4 Xây dựng NFA từ văn phạm tuyến tính phải - Nếu Aa1a2 aiB thì đặt vào  các dịch chuyển trạng thái và thêm vào Q các trạng thái cho *(A,a1a2 ai)=B A a1 a2 Giáothì trình Ki ến trúc máy tính và F - Nếu A thêm A vào Hệ điều hành B 93 (94) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Văn phạm chính quy 3.4 Xây dựng NFA từ văn phạm tuyến tính phải - Ví dụ: Sa A Aa A | b A |  a |b S a A Giáo trình Kiến trúc máy tính và Hệ điều hành 94 (95) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Văn phạm chính quy 3.4 Xây dựng văn phạm chính quy từ NFA Cho NFA M=(Q, Σ, q0, , F) xây dựng văn phạm chính qui G=(ΣG , Δ, s, p) - ΣG = Σ - Δ=Q - S=q0 - qap Giáo(q,a)=p trình Kiến trúc máy tính và Hệ điều hành 95 (96) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Văn phạm chính quy 3.4 Xây dựng văn phạm chính quy từ NFA Ví dụ: a |b - ΣG = {a,b} - Δ={S, A} S a A - S=S - SaA vì (S,a)=A ; AaA vì (A,a)=A - AbA vì Giáo(A,b)=A; trình Kiến trúc máy tính và A vì A  F Hệ điều hành 96 (97) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Văn phạm chính quy  Bài tập (1) Vẽ otomat NFA từ G sau: - S0S| 1S | - S + A |- A A0 A| 1A| | 9A |0| |9 - SabA AbB| B Giáo trình Kiến trúc máy tính và Hệ điều hành 97 (98) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Văn phạm chính quy  Bài tập (2) Xây dựng G từ NFA sau: 0|1 0|1 A B 0|1 Giáo trình Kiến trúc máy tính và Hệ điều hành C D 98 (99) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Cực tiểu hóa DFA 4.1 Trạng thái tương đương - Với w* *(p,w)=ql và * (q,w)=qt qt, ql cùng kết thúc không kết thúc có {p, q} là cặp trạng thái mà tương đương cùng - {q,p} và {p,k} các cặp trạng thái tương đương thì cặp {q,k} tương đương (t/c bắt cầu) trình Kiến trúc máy tính và 99 - Hai trạngGiáo thái không tương đương gọi là Hệ điều hành (100) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Cực tiểu hóa DFA 4.1 Trạng thái tương đương - Xây dựng bảng đánh dấu cặp trạng thái phân biệt (1) Nếu p là trạng thái không kết thúc và q là trạng thái kết thúc thì {p,q} là trạng thái phân biệt (2) Với a có (p,a)=ql và (q,a)=qt mà {qt, ql} là cặp trạng thái phân biệt thì {p, q} cặp trạng thái phân biệt Giáo trình Kiến trúc máy tính và Hệ điều hành 100 (101) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Cực tiểu hóa DFA 4.1 Trạng thái tương đương  Ví dụ: xây dựng bảng đánh dấu cặp trạng thái phân biệt cho otomat sau B A 1 C D Giáo trình Kiến trúc máy tính và Hệ điều hành E 0,1 0,1 0,1 G F 101 (102) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Cực tiểu hóa DFA 4.1 Trạng thái tương đương - Ta có B, D, E, G: trạng thái kết thúc A,C,F: trạng thái không kết thúc Áp dụng (qt1) nên các cặp sau là phân biệt: {A,B}, {A,D}, {A,E}, {A,G}, {C,B}, {C,D}, {C,E}, {C,G}, {F,B}, Giáo {F,D}, trình Kiến{F,E}, trúc máy tính{F,G} và Hệ điều hành 102 (103) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Cực tiểu hóa DFA 4.1 Trạng thái tương đương - Đánh dấu x vào các ô là cặp trạng thái phân biệt B X C X D X X E X X F G X X X X X Giáo trình Kiến trúc máy tính và A B C Hệ điều hành X D E F 103 (104) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Cực tiểu hóa DFA 4.1 Trạng thái tương đương - Áp dụng (qt2) cặp trạng thái phân biệt • {A,B}, {A,D}, {A,E}, {A,G}: vì A là trạng thái bắt đầu nên không có qt2 • {C,B}: tạo từ cùng trạng thái A nên k0 có (qt2) • {C,D}: (A,1)=C nên {A,B}104phân Giáo trình Kiến trúcvà máy(B,1)=D tính và Hệ điều hành biệt (đã đánh dấu rồi) (105) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Cực tiểu hóa DFA 4.1 Trạng thái tương đương • {C,E}: k0 có a thỏa (qt2) • {C,G}: (A,1)=C và (E,1)=G nên {A,E} phân biệt (đã đánh dấu rồi) • {F,B}: k0 có a thỏa (qt2) • {F,D}: (C,1)=F và (B,1)=D nên {C,B} phân biệt (đã đánh dấu rồi) trình Kiến trúc máy tính và • {F,E}: k0Giáo có a thỏa (qt2) Hệ điều hành 105 (106) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Cực tiểu hóa DFA 4.1 Trạng thái tương đương • {F,G}: (E,1)=G và (C,1)=F nên {C,E} phân biệt (đã đánh dấu rồi) (G,1)=G và (C,1)=F nên {G,C} phân biệt (đã đánh dấu rồi) (F,1)=F và (G,1)=G nên {F,G} phân biệt (đã đánh dấu rồi) trình Kiến trúc máy tính và 106 Ta k0 tìmGiáo thêm cặp trạng thái phân biệt nào Hệ điều hành (107) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Cực tiểu hóa DFA 4.1 Trạng thái tương đương - Ta bảng đánh dấu trạng thái phân biệt sau B X C X D X X E X X F G X X A X X X B C Giáo trình Kiến trúc máy tính và Hệ điều hành X D E F 107 (108) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Cực tiểu hóa DFA 4.1 Trạng thái tương đương - Ta các cặp trạng thái tương đương sau: {A,C}, {A,F}, {B,D}, {B,E}, {B,G}, {C,F}, {D,E}, {D,G}, {E,G} Giáo trình Kiến trúc máy tính và Hệ điều hành 108 (109) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Cực tiểu hóa DFA 4.2 Hai otomat tương đương - Hai otomat cùng đoán nhận ngôn ngữ thì tương đương - Hai DFA tương đương thì cặp trạng thái đầu tương đương - Cực tiểu hóa DFA: tìm DFA tương đương có số trạng thái ít Giáo trình Kiến trúc máy tính và Hệ điều hành 109 (110) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Cực tiểu hóa DFA 4.3 Thuật toán - Loại bỏ các trạng thái không chấp nhận - Xác định tất các cặp trạng thái tương đương - Chia các trạng thái thành các nhóm, cho: • các trạng thái cùng nhóm tương đương • Không có cặp trạng thái nào nhóm khác Giáo trình Kiến trúc máy tính và 110 là tương đương Hệ điều hành (111) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Cực tiểu hóa DFA 4.3 Thuật toán  min(S,a)=T qS thì (q,a)=pT - Trạng thái đầu Mmin là trạng thái có chứa trạng thái đầu M - Trạng thái kết thúc Mmin là trạng thái có chứa trạng thái kết thúc M Giáo trình Kiến trúc máy tính và Hệ điều hành 111 (112) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Cực tiểu hóa DFA 4.3 Thuật toán  Ví dụ: Cực tiểu hóa DFA ví dụ trước - Ta có các cặp trạng thái tương đương sau: {A,C}, {A,F}, {B,D}, {B,E}, {B,G}, {C,F}, {D,E}, {D,G}, {E,G} - Tạo thành các nhóm trạng thái tương đương: {A,C,F}, {B,D,E,G} 0|1 ACF Giáo trình Kiến trúc máy tính và Hệ điều hành 112 BDEG (113) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Cực tiểu hóa DFA  Bài tập: Cực tiểu các DFA sau: (1)  A B F B G C *C A C D C G E H F F C G G G E G tính vàC Giáo trình KiH ến trúc máy Hệ điều hành 113 (114) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG BIỂU THỨC & VĂN PHẠM CHÍNH QUY Cực tiểu hóa DFA  Bài tập: Cực tiểu các DFA sau: (2)  A B E B D C *C C C D E C *E D C Giáo trình Kiến trúc máy tính và Hệ điều hành 114 (115) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG VĂN PHẠM & NGÔN NGỮ PHI NGỮ CẢNH  Văn phạm phi ngữ cảnh  Sự nhập nhằng văn phạm phi ngữ cảnh  Ngôn ngữ phi ngữ cảnh  Dạng chuẩn văn phạm phi ngữ cảnh Giáo trình Kiến trúc máy tính và Hệ điều hành 115 (116) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG VĂN PHẠM & NGÔN NGỮ PHI NGỮ CẢNH Văn phạm phi ngữ cảnh  Định nghĩa: G=(Σ, Δ, s, p) đó: Σ: tập hữu hạn các ký hiệu kết thúc Δ: tập hữu hạn các ký hiệu chưa kết thúc s: ký hiệu bắt đầu; sΔ p: tập hữu hạn các sản xuất có dạng A với AΔ và (ΣΔ)* Giáo trình Kiến trúc máy tính và Hệ điều hành 116 (117) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG VĂN PHẠM & NGÔN NGỮ PHI NGỮ CẢNH Văn phạm phi ngữ cảnh  Ví dụ: SS(S)S |  Giáo trình Kiến trúc máy tính và Hệ điều hành 117 (118) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG VĂN PHẠM & NGÔN NGỮ PHI NGỮ CẢNH Văn phạm phi ngữ cảnh  Suy dẫn trái, suy dẫn phải - Nếu luôn luôn thay ký hiệu chưa kết thúc bên trái gọi là suy dẫn trái - Tương tự ta có suy dẫn phải - Ví dụ: viết suy dẫn trái, suy dẫn phải tạo xâu a+a*a văn phạm sau: EE+E |E*E| (E) |a Giáo trình Kiến trúc máy tính và Hệ điều hành 118 (119) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG VĂN PHẠM & NGÔN NGỮ PHI NGỮ CẢNH Văn phạm phi ngữ cảnh  Cây suy dẫn: cây thoả mãn các điều kiện: - Mỗi nút có nhãn: ký hiệu kết thúc chưa kết thúc - Nhãn nút gốc: ký hiệu bắt đầu - Nhãn nút lá: ký hiệu kết thúc - Nếu nút có nhãn A có các nút nó từ trái sang phải có nhãn x1, x2, x3, …xn thì Ax1x2x3…xn máy p tính và Giáo trình Kiến trúc 119 Hệ điều hành (120) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG VĂN PHẠM & NGÔN NGỮ PHI NGỮ CẢNH Văn phạm phi ngữ cảnh  Cây suy dẫn - Suy dẫn trái tạo cây suy dẫn trái - Suy dẫn phải tạo cây suy dẫn phải - Ví dụ: vẽ cây suy dẫn trái, cây suy dẫn phải tạo xâu a+a*a văn phạm sau: EE+E |E*E| (E) |a Giáo trình Kiến trúc máy tính và Hệ điều hành 120 (121) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG VĂN PHẠM & NGÔN NGỮ PHI NGỮ CẢNH Sự nhập nhằng văn phạm phi ngữ cảnh  Khái niệm văn phạm nhập nhằng - Cho văn phạm phi ngữ cảnh G Nếu xL(G) sinh từ cây suy dẫn khác thì G gọi là văn phạm nhập nhằng - Ví dụ: EE+E | E*E | (E) | a Giáo trình Kiến trúc máy tính và Hệ điều hành 121 (122) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG VĂN PHẠM & NGÔN NGỮ PHI NGỮ CẢNH Sự nhập nhằng văn phạm phi ngữ cảnh  Khử nhập nhằng - Đưa vào văn phạm luật ưu tiên - Đặt thừa số chung Giáo trình Kiến trúc máy tính và Hệ điều hành 122 (123) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG VĂN PHẠM & NGÔN NGỮ PHI NGỮ CẢNH Sự nhập nhằng văn phạm phi ngữ cảnh  Khử nhập nhằng - Ví dụ: SaS | aSbS |  Giáo trình Kiến trúc máy tính và Hệ điều hành 123 (124) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG VĂN PHẠM & NGÔN NGỮ PHI NGỮ CẢNH Ngôn ngữ phi ngữ cảnh - Tập hợp các xâu sinh từ văn phạm phi ngữ cảnh là ngôn ngữ phi ngữ cảnh Giáo trình Kiến trúc máy tính và Hệ điều hành 124 (125) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG VĂN PHẠM & NGÔN NGỮ PHI NGỮ CẢNH Dạng chuẩn văn phạm phi ngữ cảnh  Khái niệm Văn phạm phi ngữ cảnh k0 chứa: • Ký hiệu thừa • Sản xuất  • Sản xuất đơn vị Được gọi là văn phạm phi ngữ cảnh dạng chuẩn Giáo trình Kiến trúc máy tính và Hệ điều hành 125 (126) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG VĂN PHẠM & NGÔN NGỮ PHI NGỮ CẢNH Dạng chuẩn văn phạm phi ngữ cảnh  Xác định và khử ký hiệu thừa - Ký hiệu thừa có loại: • Ký hiệu vô sinh • Ký hiệu k0 đạt đến - Ký hiệu A gọi là ký hiệu vô sinh A* - Ký hiệu A gọi là ký hiệu k0 đạt đến trình 126 + Kiến trúc máy tính và khiGiáo S A Hệ điều hành (127) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG VĂN PHẠM & NGÔN NGỮ PHI NGỮ CẢNH Dạng chuẩn văn phạm phi ngữ cảnh  Xác định và khử ký hiệu thừa - Ví dụ: xác định ký hiệu thừa VP sau: (1) S0S | 1S | A|  A0A (2) S0S | 1S |  A0A | Giáo trình Kiến trúc máy tính và Hệ điều hành 127 (128) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG VĂN PHẠM & NGÔN NGỮ PHI NGỮ CẢNH Dạng chuẩn văn phạm phi ngữ cảnh  Xác định và khử ký hiệu thừa - Xác định ký hiệu k0 vô sinh:   k0 vô sinh  a k0 vô sinh • Với A mà ký hiệu thuộc  k0 vô sinh thì A k0 vô sinh - Ký hiệu k0 phải là ký hiệu k0 vô sinh thì là ký Giáo trình Kiến trúc máy tính và 128 hiệu vô sinh Hệ điều hành (129) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG VĂN PHẠM & NGÔN NGỮ PHI NGỮ CẢNH Dạng chuẩn văn phạm phi ngữ cảnh  Xác định và khử ký hiệu thừa - Xác định ký hiệu đạt đến được: • S là ký hiệu đạt đến • Với A mà A là ký hiệu đạt đến thì ký hiệu thuộc  là ký hiệu đạt đến - Ký hiệu k0 phải là ký hiệu đạt đến thì là ký hiệu k0 đạt đến Giáo trình Kiếnđược trúc máy tính và 129 Hệ điều hành (130) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG VĂN PHẠM & NGÔN NGỮ PHI NGỮ CẢNH Dạng chuẩn văn phạm phi ngữ cảnh  Xác định và khử ký hiệu thừa - Khử ký hiệu thừa: • Loại bỏ tất các ký hiệu vô sinh và các sản xuất chứa nó • Loại bỏ tất các ký hiệu k0 đạt đến và các sản xuất chứa nó Giáo trình Kiến trúc máy tính và Hệ điều hành 130 (131) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG VĂN PHẠM & NGÔN NGỮ PHI NGỮ CẢNH Dạng chuẩn văn phạm phi ngữ cảnh  Xác định và khử ký hiệu thừa - Ví dụ: Khử ký hiệu thừa các văn phạm: (1) S0S | 1S | A|  A0A (2) S0S | 1S |  A0A | Giáo trình Kiến trúc máy tính và Hệ điều hành 131 (132) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG VĂN PHẠM & NGÔN NGỮ PHI NGỮ CẢNH Dạng chuẩn văn phạm phi ngữ cảnh  Khử sản xuất  - A là biến triệt tiêu A+ - Xác định biến triệt tiêu: • A  thì A: biến triệt tiêu • AC1C2 Cn C1, C2, ,Cn là biến triệt tiêu thì A là biến triệt tiêu Giáo trình Kiến trúc máy tính và Hệ điều hành 132 (133) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG VĂN PHẠM & NGÔN NGỮ PHI NGỮ CẢNH Dạng chuẩn văn phạm phi ngữ cảnh  Khử sản xuất  - Cho G(, , S, p), khử sản xuất  ta G’(, , S, p’) với p’ xác định sau: Với AB1B2 Bn p ta thêm các Ax1x2 xn vào p’ đó xi thay Bi thỏa mãn: • Nếu Bi là biến k0 triệt tiêu thì xi=Bi biến triệt tiêu xi= và xi=Bi • Nếu Bi làGiáo trình Ki ến trúc máy tính thì và Hệ điều hành 133 (134) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG VĂN PHẠM & NGÔN NGỮ PHI NGỮ CẢNH Dạng chuẩn văn phạm phi ngữ cảnh  Khử sản xuất  - Ví dụ: khử sản xuất  văn phạm : SAB AaAB |  BbAB |  Giáo trình Kiến trúc máy tính và Hệ điều hành 134 (135) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG VĂN PHẠM & NGÔN NGỮ PHI NGỮ CẢNH Dạng chuẩn văn phạm phi ngữ cảnh  Khử sản xuất  - Ta có S, A, B: là biến triệt tiêu - Xét SAB có A là biến triệt tiêu nên thay A  và A B là biến triệt tiêu nên thay B  và B ta được: SAB | B | A Giáo trình Kiến trúc máy tính và Hệ điều hành 135 (136) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG VĂN PHẠM & NGÔN NGỮ PHI NGỮ CẢNH Dạng chuẩn văn phạm phi ngữ cảnh  Khử sản xuất  - Xét AaAB ta được: AaAB | aB | aA | a - Xét BbAB ta được: BbAB| bB | bA | b Vậy ta văn phạm sau: SAB | B | A AaAB | aB | aA | a BbAB| | bA | bvà Giáo trìnhbB Kiến trúc máy tính Hệ điều hành 136 (137) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG VĂN PHẠM & NGÔN NGỮ PHI NGỮ CẢNH Dạng chuẩn văn phạm phi ngữ cảnh  Khử sản xuất   Bài tập: khử sản xuất  các văn phạm sau: (1) S0S |1S |  (2) SS(S)S |  (3) Sa S b | b S a |  Giáo trình Kiến trúc máy tính và Hệ điều hành 137 (138) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG VĂN PHẠM & NGÔN NGỮ PHI NGỮ CẢNH Dạng chuẩn văn phạm phi ngữ cảnh  Sản xuất đơn vị - Sản xuất có dạng AB gọi là sản xuất đơn vị; với A,B - Cặp (A,B) cặp biến sản xuất đơn vị Giáo trình Kiến trúc máy tính và Hệ điều hành 138 (139) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG VĂN PHẠM & NGÔN NGỮ PHI NGỮ CẢNH Dạng chuẩn văn phạm phi ngữ cảnh  Khử sản xuất đơn vị Cho G(, , S, p), khử sản xuất đơn vị ta G’(, , S, p’) với p’ xác định sau: - Thêm các sản xuất không đơn vị vào p’ - Xác định các cặp biến (A,B) mà A+B (chỉ sử dụng các sản xuất đơn vị) - Với cặp biến (A,B) xác định trên, thêm vào p’ các A; với B là sản Giáosản trình Kixuất ến trúc máy tính và 139 xuất Hệ điều hành không đơn vị G (140) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG VĂN PHẠM & NGÔN NGỮ PHI NGỮ CẢNH Dạng chuẩn văn phạm phi ngữ cảnh  Khử sản xuất đơn vị - Ví dụ: Khử sản xuất đơn vị cho văn phạm sau: SaA |A | bB AB | a BA | ab | bb Giáo trình Kiến trúc máy tính và Hệ điều hành 140 (141) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG VĂN PHẠM & NGÔN NGỮ PHI NGỮ CẢNH Dạng chuẩn văn phạm phi ngữ cảnh  Khử sản xuất đơn vị - Ta có các sản xuất không đơn vị: SaA| bB Aa Bab |bb - Ta có các cặp biến (S,A), (S,B), (A,B), (B,A) thỏa mãn S+A; S+B; A+B; B+A Giáo trình Kiến trúc máy tính và Hệ điều hành • cặp (S,A), có Aa nên thêm: Sa 141 (142) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG VĂN PHẠM & NGÔN NGỮ PHI NGỮ CẢNH Dạng chuẩn văn phạm phi ngữ cảnh  Khử sản xuất đơn vị • cặp (S,B), có Bab và Bbb nên thêm: Sab |bb • cặp (A,B), có Bab và Bbb nên thêm: Aab |bb • cặp (B,A), có Aa nên thêm: Ba Giáo trình Kiến trúc máy tính và Hệ điều hành 142 (143) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG VĂN PHẠM & NGÔN NGỮ PHI NGỮ CẢNH Dạng chuẩn văn phạm phi ngữ cảnh  Khử sản xuất đơn vị Vậy ta văn phạm sau: SaA | a | ab |bb |bB Aa | ab | bb Bab |bb | a Giáo trình Kiến trúc máy tính và Hệ điều hành 143 (144) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG VĂN PHẠM & NGÔN NGỮ PHI NGỮ CẢNH Dạng chuẩn văn phạm phi ngữ cảnh  Khử sản xuất đơn vị  Bài tập: khử sản xuất đơn vị cho văn phạm sau: (1) S0A | A | A AS | | (2) EE+T | T TT*F | F F(E) | Giáo a trình Kiến trúc máy tính và Hệ điều hành 144 (145) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT ĐẨY XUỐNG  Ôtômat đẩy xuống (PDA)  Ngôn ngữ đoán nhận PDA  Sự tương đương PDA và văn phạm phi ngữ cảnh  Ôtômat đẩy xuống đơn định Giáo trình Kiến trúc máy tính và Hệ điều hành 145 (146) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT ĐẨY XUỐNG Ôtômat đẩy xuống (Push Down Automat - PDA) 1.1 Mô tả 1 Băng vào Đầu đọc q Giáo trình Kiến trúc máy tính và Hệ điều hành Ngăn xếp Bộ điều khiển 146 (147) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT ĐẨY XUỐNG Ôtômat đẩy xuống 1.1 Mô tả Tại thời điểm điểu khiển: • Trạng thái q • Đọc ký hiệu trên băng vào (: k0 đọc) • Nhìn ký hiệu đỉnh ngăn xếp xác định trạng thái và định hành động liên quan đến ngăn xếp Giáo trình Kiến trúc máy tính và Hệ điều hành 147 (148) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT ĐẨY XUỐNG Ôtômat đẩy xuống 1.1 Mô tả Có cách để ôtômát đẩy xuống đoán nhận xâu vào: • Đọc xong xâu vào và ôtômat trạng thái kết thúc • Đọc xong xâu vào và ngăn xếp rỗng Giáo trình Kiến trúc máy tính và Hệ điều hành 148 (149) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT ĐẨY XUỐNG Ôtômat đẩy xuống 1.2 Định nghĩa: M(Σ, Q, , z, δ, q0, F) Σ: chữ vào Q: tập hữu hạn các trạng thái q0  Q: trạng thái đầu F  Q: tập các trạng thái kết thúc  : tập ký hiệu trên ngăn xếp z   : ký hiệu đầu tiên đỉnh ngăn xếp δ: hàm chuyển trạng thái δ(q,a,x)={(p,149 )} Với Giáo trình Ki ến trúc máy tính dạng và điều hành q,p  Q, aHệ Σ{}, x ,   * (150) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT ĐẨY XUỐNG Ôtômat đẩy xuống 1.2 Định nghĩa: M(Σ, Q, , z, δ, q0, F) δ: hàm chuyển trạng thái dạng δ(q,a,x)={(p, )} Với q,p  Q, a  Σ{}, x ,   * X: ký hiệu đỉnh ngăn xếp : chuỗi ký hiệu thay x đỉnh ngăn xếp = : ký hiệu x trên đỉnh ngăn xếp lấy =x: ngăn xếp không thay đổi =yz: lấy x ra, đẩy z vào, đẩy y vào Giáo trình Kiến trúc máy tính và Hệ điều hành 150 (151) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT ĐẨY XUỐNG Ôtômat đẩy xuống 1.2 Định nghĩa Ví dụ: Otomát đẩy xuống đoán nhận các xâu anbn với n>=0: M(Σ, Q, , z, δ, q0, F) Σ: {a,b} Q: {q0, q1, q2, q3} q0: trạng thái đầu {q3}: tập các trạng thái kết thúc {1,z} : tậpGiáoký hiệu trên ngăn xếp trình Kiến trúc máy tính và Hệ điều hành 151 (152) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT ĐẨY XUỐNG Ôtômat đẩy xuống 1.2 Định nghĩa δ(q0,a,z)={(q1,1z )} δ(q0,,z)={(q3, )} δ(q1,a,1)={(q1,11)} δ(q1,b,1)={(q2,)} δ(q2,b,1)={(q2, )} Giáo trình Kiến trúc máy tính và δ(q2,,z)={(q , )} Hệ điều hành 152 (153) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT ĐẨY XUỐNG Ôtômat đẩy xuống 1.3 Biểu diễn PDA biểu đồ dịch chuyển - Các trạng thái đặt các vòng tròn - Trạng thái đầu có dấu “>” gắn phía trước - Trạng thái kết thúc đặt vòng tròn kép - δ(q,a,x)=(p, ): từ trạng thái q sang trạng thái p có nhãn a, x| - Ký hiệu đầu đỉnh ngăn xếp qui ước là z Giáo trình Kiến trúc máy tính và Hệ điều hành 153 (154) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT ĐẨY XUỐNG Ôtômat đẩy xuống 1.3 Biểu diễn PDA biểu đồ dịch chuyển - Ví dụ: vẽ ôtômat PDA đoán nhận xâu anbn với n>=0 a,1|11 q0 a,z|1z q1 b,1| b,1| ,z| Giáo trình Kiến trúc máy tính và Hệ điều hành q2 ,z| q3 154 (155) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT ĐẨY XUỐNG Ôtômat đẩy xuống 1.4 Cấu hình PDA Cấu hình PDA là (q,w, ): - q: trạng thái - w: phần xâu vào đọc  : nội dung ngăn xếp (đỉnh-đáy: trái-phải) Giáo trình Kiến trúc máy tính và Hệ điều hành 155 (156) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT ĐẨY XUỐNG Ôtômat đẩy xuống 1.4 Cấu hình PDA Ví dụ: Cấu hình PDA ví dụ trước đoán nhận xâu: aaabbb - (q0,aaabbb,z) |- (q1,aabbb,1z) |- (q1,abbb,11z) |(q1,bbb,111z) |- (q2,bb,11z) |- (q2,b,1z) |- (q2,,z) |- (q3,,) - Có nghĩa (q0,aaabbb,z) |-* (q3,,) : xâu vào đoán Giáo nhận trình Kiến trúc máy tính và 156 Hệ điều hành (157) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT ĐẨY XUỐNG Ngôn ngữ đoán nhận PDA 2.1 Đoán nhận trạng thái kết thúc - Ngôn ngữ L PDA M đoán nhận trạng thái kết thúc là: L(M)={w | (q0,w,z ) |-* (qf ,,)} với qf F, * Giáo trình Kiến trúc máy tính và Hệ điều hành 157 (158) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT ĐẨY XUỐNG Ngôn ngữ đoán nhận PDA 2.2 Đoán nhận ngăn xếp rỗng - Ngôn ngữ L PDA M đoán nhận ngăn xếp rỗng : L(M)={w | (q0,w,z ) |-* (qk ,,)} với qk Q Giáo trình Kiến trúc máy tính và Hệ điều hành 158 (159) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT ĐẨY XUỐNG Ngôn ngữ đoán nhận PDA  Bài tập: vẽ PDA đoán nhận xâu x là: (1) anbmcm với n,m>=0 (2) anbmcn với n,m>0 (3) Các cặp dấu () tương thích (4) Số nhị phân có số chữ số số chữ số (5) biểu thức số học dạng hậu tố có số hạng a (6) Số nhị phân cóKiếsố sốvà gấp đôi số chữ159số Giáo trình n trúcchữ máy tính Hệ điều hành và xâu khác  (160) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT ĐẨY XUỐNG Ngôn ngữ đoán nhận PDA 2.3 Chuyển PDA từ đoán nhận ngăn xếp rỗng sang đoán nhận trạng thái kết thúc Cho PDA M(Σ, Q, , z, δ, q0) đoán nhận ngăn xếp rỗng thành M’(Σ, Q’, ’, z’, δ’, q0’, F) đoán nhận trạng thái kết thúc có: - Q’=Q{q0’,qf} - F={qf} Giáo trình Kiến trúc máy tính và  ’= {z’} Hệ điều hành 160 (161) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT ĐẨY XUỐNG Ngôn ngữ đoán nhận PDA 2.3 Chuyển PDA từ đoán nhận ngăn xếp rỗng sang đoán nhận trạng thái kết thúc - δ’ xác định: ,z’|  ,z’|  q0’ ,z’|zz’ q0 M Giáo trình Kiến trúc máy tính và Hệ điều hành ,z’|  qf 161 (162) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT ĐẨY XUỐNG Ngôn ngữ đoán nhận PDA 2.3 Chuyển PDA từ đoán nhận ngăn xếp rỗng sang đoán nhận trạng thái kết thúc Ví dụ: a,z|1z a,1| 11b,1|  ,z| q0 Giáo trình Kiến trúc máy tính và Hệ điều hành q1 162 (163) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT ĐẨY XUỐNG Ngôn ngữ đoán nhận PDA 2.3 Chuyển PDA từ đoán nhận ngăn xếp rỗng sang đoán nhận trạng thái kết thúc a,z|1z a,1| 11b,1|  ,z| q0 Ví dụ: q0’ a,z| 1za,1| 11b,1|  ,z| ,z’|zz’ q0 Giáo trình Kiến trúc máy tính và Hệ điều hành q1 ,z’| q1 qf 163 (164) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT ĐẨY XUỐNG Ngôn ngữ đoán nhận PDA 2.3 Chuyển PDA từ đoán nhận ngăn xếp rỗng sang đoán nhận trạng thái kết thúc Ví dụ: a,z| 1za,1| 11b,1|  ,z| q0 Giáo trình Kiến trúc máy tính và Hệ điều hành q1 164 (165) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT ĐẨY XUỐNG Ngôn ngữ đoán nhận PDA 2.3 Chuyển PDA từ đoán nhận ngăn xếp rỗng sang đoán nhận trạng thái kết thúc Ví dụ: (ab)n với n>0 a,z|zz q0 a,z|zz q1 b,z| Giáo trình Kiến trúc máy tính và Hệ điều hành q1 ,z| q3 165 (166) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT ĐẨY XUỐNG Ngôn ngữ đoán nhận PDA 2.4 Chuyển PDA từ đoán nhận trạng thái cuối sang đoán nhận ngăn xếp rỗng Cho PDA M(Σ, Q, , z, δ, q0, F) đoán nhận ngăn xếp rỗng thành M’(Σ,Q’,’, z’, δ’,q0’) đoán nhận trạng thái kết thúc có: - Q’=Q{q0’,qk}  ’= {z’} Giáo trình Kiến trúc máy tính và Hệ điều hành 166 (167) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT ĐẨY XUỐNG Ngôn ngữ đoán nhận PDA 2.4 Chuyển PDA từ đoán nhận trạng thái cuối sang đoán nhận ngăn xếp rỗng - δ’ xác định: ,’|  q0’ ,z’|zz’ q0 M ,’|  qk ,’|  Giáo trình Kiến trúc máy tính và Hệ điều hành 167 (168) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT ĐẨY XUỐNG Ngôn ngữ đoán nhận PDA 2.4 Chuyển PDA từ đoán nhận trạng thái cuối sang đoán nhận ngăn xếp rỗng Ví dụ: anbm với n,m>=0 a,z|1z a,1|11 b,1|11 b,z|1z q b,1|11 q ,z|z Giáo trình Kiến trúc máy tính và Hệ điều hành 168 (169) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT ĐẨY XUỐNG Ngôn ngữ đoán nhận PDA 2.4 Chuyển PDA từ đoán nhận trạng thái cuối sang đoán nhận ngăn xếp rỗng Ví dụ: anbn với n>=0 ,z| a,z|1z ,1| a,1|11 b,1|11 b,z|1z ,z| ,1| q b,1|11 q  q f ,z|z Giáo trình Kiến trúc máy tính và Hệ điều hành 169 (170) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT ĐẨY XUỐNG Ôtômat đẩy xuống đơn định - Ôtômát đẩy xuống thỏa mãn: (1) (q,a,X) chứa giá trị (2)(q,a,X) không rỗng thì (q,,X) phải rỗng Giáo trình Kiến trúc máy tính và Hệ điều hành 170 (171) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT ĐẨY XUỐNG Sự tương đương PDA và văn phạm phi ngữ cảnh 4.1 Chuyển văn phạm phi ngữ cảnh thành PDA - Bộ chữ (bảng chữ) là tập hợp hữu hạn các ký hiệu Ví dụ:{0,1} chữ gồm ký hiệu và {a,b,c,…,z} chữ gồm các ký hiệu a z Tập các chữ cái tiếng việt Giáo trình Kiến trúc máy tính và Hệ điều hành 171 (172) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG ÔTÔMÁT ĐẨY XUỐNG Sự tương đương PDA và văn phạm phi ngữ cảnh 4.2 Chuyển PDA thành văn phạm phi ngữ cảnh - Bộ chữ (bảng chữ) là tập hợp hữu hạn các ký hiệu Ví dụ:{0,1} chữ gồm ký hiệu và {a,b,c,…,z} chữ gồm các ký hiệu a z Tập các chữ cái tiếng việt Giáo trình Kiến trúc máy tính và Hệ điều hành 172 (173) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG MÁY TURING Một số vấn đề ngôn ngữ 1.1 Xâu - Bộ chữ (bảng chữ) là tập hợp hữu hạn các ký hiệu Ví dụ:{0,1} chữ gồm ký hiệu và {a,b,c,…,z} chữ gồm các ký hiệu a z Tập các chữ cái tiếng việt Giáo trình Kiến trúc máy tính và Hệ điều hành 173 (174) TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƯƠNG MÁY TURING Một số vấn đề ngôn ngữ 1.1 Xâu - Bộ chữ (bảng chữ) là tập hợp hữu hạn các ký hiệu Ví dụ:{0,1} chữ gồm ký hiệu và {a,b,c,…,z} chữ gồm các ký hiệu a z Tập các chữ cái tiếng việt Giáo trình Kiến trúc máy tính và Hệ điều hành 174 (175)

Ngày đăng: 13/06/2021, 16:04

TỪ KHÓA LIÊN QUAN

w