Bài giảng Lý thuyết tính toán: Bài 05 - Nguyễn Ngọc Tú
lượt xem 3
download
Văn phạm phi ngữ cảnh; phân tích cú pháp và tính nhập nhằng; văn phạm phi ngữ cảnh và ngôn ngữ lập trình là những nội dung chính mà "Bài giảng Lý thuyết tính toán: Bài 05 - Ngôn ngữ phi ngữ cảnh" hướng đến trình bày. Hy vọng tài liệu là nguồn thông tin hữu ích cho quá trình học tập và nghiên cứu của các bạn.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Lý thuyết tính toán: Bài 05 - Nguyễn Ngọc Tú
- LÝ THUYẾT TÍNH TOÁN INTRODUCTION TO COMPUTATION THEORY (FORMAL LANGUAGES & AUTOMATA) Bài 05. Ngôn ngữ phi ngữ cảnh Sử dụng slides của các tác giả: Hồ Văn Quân + Nick Hopper GV: Nguyễn Ngọc Tú TIN331 Tu.NguyenNgoc@hoasen.edu.vn
- Nội dung Văn phạm phi ngữ cảnh Phân tích cú pháp và tính nhập nhằng Văn phạm phi ngữ cảnh và ngôn ngữ lập trình
- Văn phạm phi ngữ cảnh Định nghĩa 5.1 Một văn phạm G = (V, T, S, P) được gọi là phi ngữ cảnh (context free) nếu mọi luật sinh trong P có dạng A → x, trong đó A ∈ V còn x ∈ (V ∪T)*. Một ngôn ngữ được gọi là phi ngữ cảnh IFF có một VPPNC G sao cho L = L(G).
- Ex. Văn phạm G = ({S}, {a, b}, S, P), có các luật sinh S → aSa | bSb | λ, là PNC. Một dẫn xuất điển hình trong văn phạm này là S ⇒ aSa ⇒ aaSaa ⇒ aabSbaa ⇒ aabbaa Dễ thấy L(G) = {wwR: w ∈ {a, b}*}
- Ex. Ngôn ngữ sau là PNC. L= {anbn: n ≥ 0} VPPNC cho ngôn ngữ này là: S → aSb | λ Ngôn ngữ sau là PNC. VP kết quả L= {anbm: n ≠ m} S → AS1 | S1B Trường hợp n > m Trường hợp m > n S1→ aS1b | λ S → AS1 S → S 1B A → aA | a S1→ aS1b | λ S1→ aS1b | λ A → aA | a B → bB | b B → bB | b
- Ex. Xét văn phạm sau S → aSb | SS | λ. Văn phạm này sinh ra ngôn ngữ L = {w ∈ {a, b}*: na(w) = nb(w) và na(v) ≥ nb(v), với v là một tiếp đầu ngữ bất kỳ của w}
- Dẫn xuất Trong VPPNC mà không tuyến tính, một dẫn xuất có thể bao gồm nhiều dạng câu với nhiều hơn một biến. Như vậy, chúng ta có một sự lựa chọn thứ tự biến để thay thế. Xét văn phạm G = ({A, B, S}, {a,b}, S, P) với các luật sinh 1. S → AB, 2. A → aaA, 4. B → Bb, 3. A → λ, 5. B → λ. Dễ dàng thấy rằng văn phạm này sinh ra ngôn ngữ L(G) = {a2nbm : n ≥ 0, m ≥ 0}. Xét hai dẫn xuất của chuỗi aab
- Dẫn xuất Định nghĩa 5.2 Một dẫn xuất được gọi là trái nhất (DXTN – leftmost derivation) nếu trong mỗi bước biến trái nhất trong dạng câu được thay thế. Nếu biến phải nhất được thay thế, chúng ta gọi là dẫn xuất phải nhất (DXPN - rightmost derivation).
- Ex. Xét văn phạm với các luật sinh (được đánh chỉ số bên tay phải) S → aAB, 1 A → bBb, 2 B → A | λ, 3, 4 S ⇒ aAB ⇒ abBbB ⇒ abAbB ⇒ abbBbbB ⇒ abbbbB ⇒ abbbb DXTN và DXPN có lợi điểm là ta chỉ cần trình bày dãy số hiệu luật sinh được dùng để sinh ra câu đó mà không sợ bị nhầm lẫn. DXTN của abbbb là: 123244. DXPN của abbbb là: 142324.
- Cây dẫn xuất Một cách thứ hai để trình bày các dẫn xuất, độc lập với thứ tự các luật sinh được áp dụng, là bằng cây dẫn xuất (CDX). Một CDX là một cây có thứ tự trong đó các nốt được gán nhãn với vế trái của luật sinh còn các con của các nốt biểu diễn vế phải tương ứng của nó. VD. A → abABc. a b A B c
- Cây dẫn xuất Định nghĩa 5.3 Cho G = (V, T, S, P) là một VPPNC. Một cây có thứ tự là một cây dẫn xuất cho G nếu và chỉ nếu có các tính chất sau. 1. Gốc được gán nhãn là S. 2. Mỗi lá có một nhãn lấy từ tập T ∪ {λ}. 3. Mỗi nốt bên trong (không phải là lá) có một nhãn lấy từ V. 4. Nếu mỗi nốt có nhãn A ∈ V, và các con của nó được gán nhãn (từ trái sang phải) a1, a2, ... , an, thì P phải chứa một luật sinh có dạng A → a1a2 ... an 1. Một lá được gán nhãn λ thì không có anh chị em, tức là, một nốt với một con được gán nhãn λ không thể có con nào khác.
- Cây dẫn xuất Một cây mà có các tính chất 3, 4 và 5, còn tính chất (1) không nhất thiết được giữ và tính chất 2 được thay thế bằng 2’.Mỗi lá có một nhãn lấy từ tập V ∪ T ∪ {λ} thì được gọi là một cây dẫn xuất riêng phần (CDXRP). Chuỗi kí hiệu nhận được bằng cách đọc các nốt lá của cây từ trái sang phải, bỏ qua bất kỳ λ nào được bắt gặp, được gọi là kết quả (yield) của cây.
- Ex. Xét văn phạm G với các luật sinh sau S → aAB, A → bBb, B → A | λ, CDX riêng phần S a A B b B b
- Mối quan hệ giữa dạng cây và CDX Định lý 5.1 Cho G = (V, T, S, P) là một VPPNC, thì ∀ w ∈ L(G), tồn tại một CDX của G mà kết quả của nó là w. Ngược lại, kết quả của một CDX bất kỳ là thuộc L(G). Tương tự, nếu tG là một CDX riêng phần bất kỳ của G mà gốc của nó được gán nhãn là S thì kết quả của tG là một dạng câu của G.
- Phân tích cú pháp và tính nhập nhằng Phân tích cú pháp (Syntax analysis hay parsing) Phân tích cú pháp (PTCP) là quá trình xác định một chuỗi có được sinh ra bởi một văn phạm nào đó không, cụ thể là quá trình tìm CDX cho chuỗi đó. Kết qủa của quá trình PTCP rơi vào một trong hai khả năng “yes” hoặc “no”. “Yes” có nghĩa là chuỗi được sinh ra bởi văn phạm và kèm theo một hay một số dẫn xuất sinh ra chuỗi. “No”có nghĩa là chuỗi không được sinh ra bởi văn phạm hay còn gọi là chuỗi không đúng cú pháp, có lỗi (error).
- Phân tích cú pháp và tính nhập nhằng Có hai trường phái PTCP cơ bản 1. PTCP từ trên xuống (Top-down parsing): xây dựng CDX từ gốc xuống lá. 2. PTCP từ dưới lên (Bottom-up parsing): xây dựng CDX từ lá lên gốc.
- Ex. TD Cho văn phạm G sau: S → aAbS | bBS | λ (1, 2, 3) A → aAA | aS | b (4, 5, 6) B → bBB | bS | a (7, 8, 9) Phân tích chuỗi w = aabbbba DXTN: 1.4.6.6.2.9.3
- S → aAbS | bBS | λ (1, 2, 3) Ex. TD A → aAA | aS | b (4, 5, 6) B → bBB | bS | a (7, 8, 9) DXTN: 1.4.6.6.2.9.3 Khởiđầu 1 4 Chuỗinhập •aabbbba •aabbbba a•abbbba a•abbbba aa•bbbba Dạngcâu •S •aAbS a•AbS a•aAAbS aa•AAbS 6 6 Chuỗinhập aa•bbbb aab•bbba aab•bbba aabb•bba aabbb•ba Dạngcâu aaa•bAbS aab•AbS aab•bbS aabb•bS aabbb•S 2 9 3 Chuỗinhập aabbb•ba aabbbb•a aabbbb•a aabbbba• aabbbba• Dạngcâu aabbb•bBS aabbbb•BS aabbbb•aS aabbbba•S aabbbba•
- Ex. BT Hãy PTCP từ dưới lên cho w = abbcde trên văn phạm G sau: S → aABe (1) a b b c d e A → Abc | b (2, 3) A B→d a b b c d e B1. Các lá của cây dẫn xuất B2. Thu giảm bằng A → b A B3. Thu giảm bằng A → Abc A B4. Thu giảm bằng B → d B5. Thu giảm bằng S → aABe a b b c d e
- VPPNC Định lý 5.2 Giả sử rằng G = (V, T, S, P) là một VPPNC mà không có bất kỳ luật sinh nào có dạng A → λ, hay A → B, trong đó A, B ∈V, thì PPPTCPVC có thể được hiện thực thành một giải thuật mà ∀ w ∈ T*, hoặc tạo ra được sự PTCP của w, hoặc biết rằng không có PTCP nào là có thể PT cho nó. Ở mỗi bước dẫn xuất hoặc chiều dài hoặc số kí hiệu kết thúc của dạng câu tăng ít nhất 1 đơn vị. Vì vậy sau không quá (2|w| - 1) lượt, chúng ta sẽ xác định được w có ∈ L(G) không.
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Lý thuyết tính toán Otomat và ngôn ngữ hình thức - GV. Hồ Văn Quân
316 p | 226 | 56
-
Bài giảng Lý thuyết độ phức tạp: Lý thuyết NP - Đầy đủ - PGS. TSKH Vũ Đình Hòa (tt)
41 p | 219 | 51
-
Bài giảng Lý thuyết mật mã và an toàn thông tin: Mật mã cổ điển - Vũ Đình Hòa
48 p | 163 | 22
-
Bài giảng Lý thuyết tính toán: Chương 3 - PGS.TS. Phan Huy Khánh
13 p | 100 | 11
-
Bài giảng Lý thuyết tính toán: Chương 4 - PGS.TS. Phan Huy Khánh
10 p | 116 | 11
-
Bài giảng Lý thuyết tính toán: Chương 1 - PGS.TS. Phan Huy Khánh
10 p | 152 | 8
-
Bài giảng Lý thuyết đồ thị: Chương 10 - PGS.TS. Hoàng Chí Thành
25 p | 10 | 6
-
Bài giảng Lý thuyết ngôn ngữ lập trình: Chương 6 - CĐ CNTT Hữu nghị Việt Hàn
13 p | 91 | 6
-
Bài giảng Lý thuyết tính toán: Bài 03 - Nguyễn Ngọc Tú
53 p | 87 | 5
-
Bài giảng Lý thuyết tính toán: Bài 04 - Nguyễn Ngọc Tú
32 p | 90 | 5
-
Bài giảng Lý thuyết mật mã: Chương 1 - PGS.TS Đỗ Trọng Tuấn
57 p | 36 | 5
-
Bài giảng Lý thuyết tính toán: Bài 02 - Nguyễn Ngọc Tú
43 p | 79 | 4
-
Bài giảng Lý thuyết mạng máy tính: Chương 7 - ThS. Nguyễn Đức Thiện
13 p | 11 | 4
-
Bài giảng Lý thuyết tính toán: Bài 00 - Nguyễn Ngọc Tú
7 p | 81 | 3
-
Bài giảng Lý thuyết nhận dạng – Chương 4: Phân lớp dựa trên tối ưu hóa hàm lượng giá
47 p | 53 | 3
-
Bài giảng Lý thuyết tính toán: Bài 06 - Nguyễn Ngọc Tú
23 p | 84 | 3
-
Bài giảng Lý thuyết tính toán: Bài 01 - Nguyễn Ngọc Tú
29 p | 91 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn