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

Bài giảng Lý thuyết tính toán: Bài 05 - Nguyễn Ngọc Tú

28 19 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

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.

LÝ THUYẾT TÍNH TỐN INTRODUCTION TO COMPUTATION THEORY (FORMAL LANGUAGES & AUTOMATA) Bài 05 Ngôn ngữ phi ngữ cảnh Sử dụng slides tác giả: Hồ Văn Quân + Nick Hopper TIN331 GV: Nguyễn Ngọc Tú Tu.NguyenNgoc@hoasen.edu.vn Nội dung    Văn phạm phi ngữ cảnh Phân tích cú pháp tính nhập nhằng Văn phạm phi ngữ cảnh 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) gọi phi ngữ cảnh (context free) luật sinh P có dạng A → x,  A ∈ V cịn x ∈ (V ∪T)*  Một ngơn ngữ gọi phi ngữ cảnh IFF có VPPNC G cho L = L(G) Ex  Văn phạm G = ({S}, {a, b}, S, P), có luật sinh S → aSa | bSb | λ, PNC Một dẫn xuất điển hình văn phạm S ⇒ aSa ⇒ aaSaa ⇒ aabSbaa ⇒ aabbaa  Dễ thấy  L(G) = {wwR: w ∈ {a, b}*} Ex  Ngôn ngữ sau PNC {anbn: n ≥ 0}  VPPNC cho ngôn ngữ là:  S → aSb | λ L=  Ngôn ngữ sau PNC L= {anbm: n ≠ m} Trường hợp n > m S → AS1 S1→ aS1b | λ A → aA | a Trường hợp m > n S → S 1B S1→ aS1b | λ B → bB | b VP kết S → AS1 | S1B S1→ aS1b | λ A → aA | a B → bB | b Ex  Xét văn phạm sau → aSb | SS | λ  Văn phạm sinh ngôn ngữ L = {w ∈ {a, b}*: na(w) = nb(w) na(v) ≥ nb(v),  với v tiếp đầu ngữ w} S Dẫn xuất   Trong VPPNC mà khơng tuyến tính, dẫn xuất bao gồm nhiều dạng câu với nhiều biến Như vậy, có lựa chọn thứ tự biến để thay Xét văn phạm G = ({A, B, S}, {a,b}, S, P) với luật sinh S → AB, A → λ,  A → aaA, B → λ B → Bb, Dễ dàng thấy văn phạm sinh ngôn ngữ L(G) = {a2nbm : n ≥ 0, m ≥ 0} Xét hai dẫn xuất chuỗi aab Dẫn xuất  Định nghĩa 5.2  Một dẫn xuất gọi trái (DXTN – leftmost derivation) bước biến trái dạng câu thay  Nếu biến phải thay thế, gọi dẫn xuất phải (DXPN - rightmost derivation) Ex  Xét văn phạm với luật sinh (được đánh số bên tay phải) S → aAB,  A → bBb,  B → A | λ, S ⇒ aAB ⇒ abbbb   3, abBbB ⇒ abAbB ⇒ abbBbbB ⇒ abbbbB ⇒ DXTN DXPN có lợi điểm ta cần trình bày dãy số hiệu luật sinh dùng để sinh câu mà khơng sợ bị nhầm lẫn DXTN abbbb là: 123244 DXPN abbbb là: 142324 Cây dẫn xuất    Một cách thứ hai để trình bày dẫn xuất, độc lập với thứ tự luật sinh áp dụng, dẫn xuất (CDX) Một CDX có thứ tự nốt gán nhãn với vế trái luật sinh nốt biểu diễn vế phải tương ứng VD A → abABc a b A B c Mối quan hệ dạng CDX  Định lý 5.1 G = (V, T, S, P) VPPNC, ∀ w ∈ L(G), tồn CDX G mà kết w Ngược lại, kết CDX thuộc L(G) Tương tự, tG CDX riêng phần G mà gốc gán nhãn S kết tG dạng câu G  Cho Phân tích cú pháp tính nhập nhằng  Phân tích cú pháp (Syntax analysis hay parsing) tích cú pháp (PTCP) q trình xác định chuỗi có sinh văn phạm khơng, cụ thể q trình tìm CDX cho chuỗi  Kết qủa trình PTCP rơi vào hai khả “yes” “no”  Phân  “Yes” có nghĩa chuỗi sinh văn phạm kèm theo hay số dẫn xuất sinh chuỗi  “No”có nghĩa chuỗi khơng sinh văn phạm hay cịn gọi chuỗi khơng cú pháp, có lỗi (error) Phân tích cú pháp tính nhập nhằng  Có hai trường phái PTCP PTCP từ xuống (Top-down parsing): xây dựng CDX từ gốc xuống  PTCP từ lên (Bottom-up parsing): xây dựng CDX từ lên gốc  Ex TD  Cho văn phạm G sau: S → aAbS | bBS | λ A → aAA | aS | b B → bBB | bS | a  (1, 2, 3) (4, 5, 6) (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) A → aAA | aS | b (4, 5, 6) B → bBB | bS | a (7, 8, 9) Ex TD DXTN: 1.4.6.6.2.9.3 Khởiđầu Chuỗinhập •aabbbba •aabbbba a•abbbba a•abbbba aa•bbbba Dạngcâu •S •aAbS a•AbS a•aAAbS aa•AAbS 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 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ừ lên cho w = abbcde văn phạm G sau: → aABe (1)  A → Abc | b (2, 3) B→d S B1 B2 B3 B4 B5 Các dẫn xuất Thu giảm A → b Thu giảm A → Abc Thu giảm B → d Thu giảm S → aABe a b A b c d e a b b c d e c d e A A a b b VPPNC  Định lý 5.2 Giả sử G = (V, T, S, P) VPPNC mà khơng có luật sinh có dạng  A → λ, hay  A → B, A, B ∈V, PPPTCPVC thực thành giải thuật mà ∀ w ∈ T*, tạo PTCP w, biết khơng có PTCP PT cho Ở bước dẫn xuất chiều dài số kí hiệu kết thúc dạng câu tăng đơn vị Vì sau khơng q (2|w| - 1) lượt, xác định w có ∈ L(G) khơng  Định lý 5.3 ∀ VPPNC ∃ giải thuật mà phân tích chuỗi w có ∈ L(G) khơng số bước tỉ lệ với |w|3 Văn phạm-s  Văn phạm-s (simple grammar) VPPNC luật sinh có dạng  A → ax  A ∈ V, a ∈ T, x ∈ V*, cặp (A, a) xuất tối đa luật sinh Nói cách khác, hai luật sinh mà có vế trái giống vế phải chúng phải bắt đầu kí hiệu kết thúc khác  Là S → aS | bA A → aAA | b Tính nhập nhằng VP NN  Định nghĩa 5.4 VPPNC G gọi nhập nhằng ∃ w ∈ L(G) mà có hai CDX khác Nói cách khác, nhập nhằng suy tồn hai hay nhiều DXTN hay PN  Một Ex  Xét văn phạm sau G = (V, T, E, P) với V = {E, I}, T = {a, b, c, +, *, (, )} luật sinh → I | E + E | E * E | (E) I→a|b|c Văn phạm nhập nhằng với chuỗi a + b * c có hai CDX khác G sau E Tính nhập nhằng VP NN  Định nghĩa 5.5 L NNPNC mà ∃ VP khơng nhập nhằng, L gọi không nhập nhằng  Nếu VP sinh L mà nhập nhằng, NN gọi nhập nhằng cố hữu  Nếu Ex  Ngôn ngữ L = {anbncm} ∪ { anbmcm } với n, m không âm NNPNC nhập nhằng cố hữu (Chú ý L = L1 ∪ L2) G1: S1 → X1C X1 → aX1b | λ C → cC | λ  G2: S2 → AX2 X2 → bX2c | λ A → aA | λ Một VP cho L cách kết hợp hai VP với luật sinh thêm vào S → S1 | S2 Văn phạm phi ngữ cảnh NNLT   Một ứng dụng quan trọng lý thuyết NNHT định nghĩa NNLT xây dựng trình dịch cho chúng Theo truyền thống người ta dùng dạng ký pháp Backus-Naur (viết tắt BNF) để viết NNLT  ::= | + ,  ::= | * , ... Vì sau không (2|w| - 1) lượt, xác định w có ∈ L(G) khơng  Định lý 5.3 ∀ VPPNC ∃ giải thuật mà phân tích chuỗi w có ∈ L(G) khơng số bước tỉ lệ với |w|3 Văn phạm-s  Văn phạm-s (simple grammar)... có lỗi (error) Phân tích cú pháp tính nhập nhằng  Có hai trường phái PTCP PTCP từ xuống (Top-down parsing): xây dựng CDX từ gốc xuống  PTCP từ lên (Bottom-up parsing): xây dựng CDX từ lên... chị em, tức là, nốt với gán nhãn λ có khác Cây dẫn xuất   Một mà có tính chất 3, 5, cịn tính chất (1) khơng thiết giữ tính chất thay 2’.Mỗi có nhãn lấy từ tập V ∪ T ∪ {λ} gọi dẫn xuất riêng

Ngày đăng: 08/05/2021, 18:18

Xem thêm:

TỪ KHÓA LIÊN QUAN

w