Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 55 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
55
Dung lượng
499,37 KB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI ĐẶNG VĂN QUÂN VĂNPHẠMPHINGỮCẢNHVÀỨNGDỤNGTRONGPHÂNTÍCHCÚPHÁPLUẬNVĂN THẠC SĨ TOÁN HỌC Hà Nội - 2018 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI ĐẶNG VĂN QUÂN VĂNPHẠMPHINGỮCẢNHVÀỨNGDỤNGTRONGPHÂNTÍCHCÚPHÁP Chuyên ngành: Toán ứngdụng Mã số: 8460112 LUẬNVĂN THẠC SĨ TOÁN HỌC Người hướng dẫn khoa học: TS KIỀU VĂN HƯNG Hà Nội - 2018 LỜI CẢM ƠN Sau thời gian cố gắng, nỗ lực học tập nghiên cứu, đến tơi hồn thành luậnvăn tốt nghiệp thạc sĩ Để có kết này, tơi xin bày tỏ lòng biết ơn sâu sắc lời cảm ơn chân thành đến thầy giáo, TS Kiều Văn Hưng, người định hướng nghiên cứu truyền thụ kiến thức cho suốt thời gian thực luậnvăn Tơi xin chân thành cảm ơn giúp đỡ quý báu thầy giáo mơn Tốn Ứngdụng nói riêng khoa Tốn, trường Đại học Sư phạm Hà Nội nói chung Xin cảm ơn người thân gia đình tất người bạn thân yêu thông cảm, chia sẻ tạo điều kiện tốt cho để học tập, nghiên cứu thực luậnvăn Tơi mong nhận đóng góp ý kiến thầy bạn để luậnvăn hồn thiện Tơi xin chân thành cảm ơn! Hà Nội, ngày 08 tháng 06 năm 2018 Tác giả luậnvăn Đặng Văn Quân LỜI CAM ĐOAN Tôi xin cam đoan luậnvăn cơng trình nghiên cứu riêng tơi, thực hướng dẫn thầy giáo TS Kiều Văn Hưng Trong q trình nghiên cứu, tơi kế thừa thành khoa học nhà khoa học với trân trọng biết ơn Các kết trích dẫn luậnvăn rõ nguồn gốc Hà Nội, ngày 08 tháng 06 năm 2018 Tác giả luậnvăn Đặng Văn Quân Mục lục MỞ ĐẦU Kiến thức chuẩn bị 1.1 Ngôn ngữ biểu diễn ngôn ngữ 1.1.1 Ngôn ngữ 1.1.2 Biểu diễn ngôn ngữ 14 Vănphạm 15 1.3 Ngôn ngữphingữcảnh 18 1.2 Vănphạmphingữcảnh 20 2.1 Định nghĩa 20 2.2 Cây dẫn xuất vănphạmphingữcảnh 25 2.3 Các chiến lược phântíchcúpháp 29 Ứngdụngvănphạmphingữcảnh 35 3.1 Tổng quan ứngdụngvănphạmphingữcảnh 36 3.2 Một số thuật toán phântíchcúpháp 43 3.2.1 Thuật toán Left to right parse - Leftmost derivation (LL) 43 3.2.2 Thuật toán Earley 47 3.2.3 Thuật toán Cocke-Younger-Kasami (CYK) 49 Kết luận 52 Tài liệu tham khảo 52 Mở đầu Lý chọn đề tài Vănphạmphingữcảnh mơ hình tốn học sản sinh lớp ngôn ngữphingữ cảnh.Văn phạmphingữcảnh cho phép mô tả biểu thức số học dấu ngoặc lồng hay cấu trúc khối ngơn ngữ lập trình, có nhiều ứngdụng thực tế quan trọng, đặc biệt phântíchcúpháp Ngơn ngữ hình thức nhà ngôn ngữ học tiếng Noam Chomsky phân làm bốn loại: ngơn ngữngữ cấu (nhóm 0), ngơn ngữ cảm ngữcảnh (nhóm 1), ngơn ngữphingữcảnh (nhóm 2) ngơn ngữ quy (nhóm 3) Với mong muốn tìm hiểu sâu lớp ngơn ngữphingữcảnhvănphạmphingữcảnh em định chọn đề tài nghiên cứu cho luậnvăn tốt nghiệp thạc sĩ chuyên ngành Toán ứngdụng “Văn phạmphingữcảnhứngdụngphântíchcú pháp” Mục đích nghiên cứu Tìm hiểu vănphạm ngơn ngữphingữcảnh lý thuyết ngơn ngữ hình thức Nhiệm vụ nghiên cứu Trình bày cách hệ thống văn phạm, ngôn ngữphingữcảnhứngdụng liên quan Đối tượng phạm vi nghiên nghiên cứu • Đối tượng nghiên cứu: Vănphạm ngơn ngữphingữcảnh • Phạm vi nghiên cứu: Nghiên cứu tổng quan vănphạm ngôn ngữphingữcảnh Phương pháp nghiên cứu Tìm hiểu tài liệu, sách, báo liên quan đến kết có vănphạm ngơn ngữphingữcảnh Tổng hợp kiến thức trình bày cách hệ thống Đóng góp Hệ thống kiến thức vănphạmphingữcảnhứngdụng chúng, góp phần làm phong phú kết quả, hiểu biết vănphạm ngôn ngữphingữcảnh Hi vọng luậnvăn tài liệu tham khảo hữu ích lý thuyết ngơn ngữ hình thức Chương Kiến thức chuẩn bị Có thể hình dungvănphạm “thiết bị tự động” có khả sinh tập hợp từ bảng chữ cho trước Mỗi từ sinh sau số hữu hạn bước thực quy tắc vănphạm Việc xác định ngôn ngữ bảng chữ cho trước thực cách thức sau: Cách 1: Đối với từ thuộc ngôn ngữ cho, ta chọn quy cách hoạt động “thiết bị tự động” để sau số hữu hạn bước làm việc dừng sinh từ Cách 2: “Thiết bị tự động” có khả sinh tất từ ngôn ngữ cho Cách 3: Với từ cho trước, “thiết bị tự động” cho biết từ có thuộc ngơn ngữ cho hay không Trong lý thuyết văn phạm, người ta chứng minh ba cách thức tương đương hay vănphạm làm việc theo cách tương đương Vì vậy, ta quan tâm đến cách thứ nhất, tức ta xét vănphạm “thiết bị tự động” sinh từ Vì lẽ mà người ta gọi “thiết bị tự động” vănphạm sinh Việc sinh từ thực nhiều cách khác Các từ sinh văn phạm, Otomat, máy hình thức máy Turing, Ở ta đề cập đến cách N.Chomsky đưa vào năm 1956-1957 1.1 Ngôn ngữ biểu diễn ngôn ngữ 1.1.1 Ngôn ngữ Tập Σ khác rỗng gồm hữu hạn hay vô hạn ký hiệu gọi bảng chữ Mỗi phần tử a ∈ Σ gọi chữ hay ký hiệu Ở ta xét bảng chữ có hữu hạn phần tử Ví dụ 1.1 Dưới bảng chữ: + Σ = {a, b, c, , x, y, z} + ∆ = {α, β, γ, δ, ε, η, ϕ, κ, µ, χ, ν, π, θ, ρ, σ, τ, ω, ξ, ψ}, + Γ = {0, 1}, + W = {if, then, else, a, b, c, d, e, f, +, −, ∗, /, =, =} Giả sử có bảng chữ Σ = {a1 , a2 , , am }, dãy chữ α = ai1 ai2 ait , với aij ∈ Σ (1 ≤ j ≤ t) gọi từ hay xâu bảng chữ Σ Tổng số vị trí ký hiệu xuất xâu α gọi độ dài từ α ký hiệu |α| Như vậy, từ bảng chữ Σ xâu hữu hạn gồm số tập hữu hạn trạng thái Đầu đọc otomat cho phép đọc ký hiệu băng vào từ trái sang phải Ngoài ra, otomat đẩy xuống có thêm băng làm việc (ngăn xếp hay stack), nhờ có mà nhớ otomat đẩy xuống tăng lên so với khả nhớ otomat hữu hạn Ngăn xếp tổ chức theo nguyên tắc ký hiệu vào sau trước (LIFO), giống ổ nạp đạn Khi đưa ký hiệu vào ngăn xếp ký hiệu trở thành ký hiệu đầu ngăn xếp Khi ngăn xếp đọc ký hiệu ký hiệu ký hiệu xong bị loại khỏi ngăn xếp Một ngăn xếp gọi danh sách đẩy xuống Một otomat đẩy xuống bao gồm băng vào, nhớ Stack điều khiển hình 3.1 đây: Hình 3.1: Mơ hình làm việc otomat đẩy xuống Căn vào trạng thái điều khiển, ký hiệu vào mà đầu đọc quan sát ký hiệu ngăn xếp, otomat đẩy xuống chuyển sang trạng thái đồng thời đầu đọc chuyển sang ô bên phải Nếu đầu đọc chuyển sang ô bên phải ta gọi trình bước chuyển Ngược lại, ký hiệu vào không ảnh hưởng tới bước chuyển ta gọi bước chuyển “nhắm mắt” bước chuyển đầu đọc đứng yên chỗ 39 Thực chất bước chuyển “nhắm mắt” tạm ngừng quan sát băng vào để chấn chỉnh lại ngăn xếp Có hai cách đốn nhận xâu vào otomat đẩy xuống: Cách 1: Xâu vào đọc xong otomat đẩy xuống chuyển trạng thái kết thúc Cách 2: Xâu vào đọc xong ngăn xếp trở thành rỗng Sau ta hai cách đoán nhận tương đương Ví dụ 3.2 Cho vănphạmphingữ cảnh: G = {0, 1, c}, {S}, S, {S → 0S0, S → 1S1, S → c} Dễ dàng thấy L(G) = {ωcω R |ω ∈ {0, 1}∗ } (ω R xâu viết ký hiệu xâu ω theo thứ tự ngược lại) Chẳng hạn, xâu ω = 010011 xâu ωcω R = 010011c110010 có dẫn xuất sau đây: (S, 0S0, 01S10, 010S010, 0100S0010, 01001S10010, 010011S110010, 010011c110010) Mặt khác xâu ωcω R đốn nhận otomat đẩy xuống sau: Trước hết đặt xâu x = ωcω R lên băng vào Đầu đọc dịch chuyển từ trái sang phải Ban đầu ngăn xếp rỗng Otomat đẩy xuống có hai trạng thái p, q p trạng thái đầu Khi trạng thái đầu p, đầu đọc đọc ký hiệu băng vào đưa ký hiệu vào ngăn xếp Trạng thái otomat đẩy xuống lúc p Đầu đọc dịch chuyển sang bên phải ô đọc ký hiệu ô Nếu ký hiệu otomat đẩy xuống đưa ký hiệu vào ngăn xếp, trạng thái otomat p đầu đọc lại chuyển sang phải Q trình tiếp tục đầu đọc gặp ký hiệu c Khi 40 otomat chuyển trạng thái p sang trạng thái q đầu đọc chuyển sang phải ô Tại thời điểm ngăn xếp xuất xâu ω Ký hiệu bên phải ω nằm ngăn xếp, trạng thái otomat q Đầu đọc ô bên phải ký hiệu c Nếu ký hiệu ô ký hiệu ngăn xếp otomat đẩy xuống loại ký hiệu khỏi ngăn xếp, ký hiệu lại lên vị trí ngăn xếp, otomat đẩy xuống chuyển đầu đọc sang phải ơ, trạng thái q Q trình tiếp tục có hai khả xảy ra: 1/ Otomat đẩy xuống đọc hết xâu x ngăn xếp trở thành rỗng otomat dừng lại đoán nhận xâu x = ωcω R 2/ Các ký hiệu ngăn xếp chưa bị loại hết đầu đọc gặp ký hiệu xâu vào khác với ký hiệu ngăn xếp Trong trường hợp otomat đẩy xuống khơng đốn nhận xâu x Nhờ có ngăn xếp mà otomat đẩy xuống có khả nhớ nửa đầu xâu x = ωcω R với ω có độ dài tuỳ ý sau so sánh dần với nửa cuối ω R x Otomat hữu hạn khơng có khả Định nghĩa 3.2 Một otomat đẩy xuống bảy: M = Q, Σ, ∆, δ, q0 , z0 , F , đó, + Σ tập hữu hạn khác rỗng ký hiệu, gọi bảng chữ vào, ký hiệu Σ gọi ký hiệu vào; + Q tập hữu hạn, khác rỗng trạng thái cho Σ ∩ Q = ∅; + ∆ tập hữu hạn khác rỗng ký hiệu, gọi bảng chữ ngăn xếp, mà ký hiệu gọi ký hiệu ngăn xếp; + z0 ∈ ∆ ký hiệu đặc biệt, gọi ký hiệu đáy ngăn xếp (còn gọi ký hiệu danh sách đẩy xuống); + q0 ∈ Q gọi trạng thái khởi đầu; 41 + F ⊂ Q gọi tập trạng thái kết thúc; ∗ ∗ + δ : Q × (Σ ∪ {ε}) × ∆ → 2(Q×∆ ) gọi hàm chuyển M, 2(Q×∆ ) tập tập Q × ∆∗ Định nghĩa 3.3 Một đẳng thức dạng: δ(q, a, z) = { q1 , γ1 , q2 , γ2 , , qm , γm }, q, qi ∈ Q, a ∈ Σ, z ∈ ∆, γi ∈ ∆∗ , (i = 1, , m) gọi bước chuyển otomat đẩy xuống M Nó trạng thái q, đọc ký hiệu a băng vào z ký hiệu đỉnh ngăn xếp Khi chuyển sang trạng thái qi , thay ký hiệu z đỉnh ngăn xếp xâu γi (i = 1, , m), đồng thời chuyển đầu đọc sang bên phải ô Quy ước đưa γi vào ngăn xếp, ký hiệu bên trái γi nằm phần dưới, ký hiệu bên phải γi nằm ô ngăn xếp Một đẳng thức dạng: δ(q, ε, z) = { q1 , γ1 , q2 , γ2 , , qm , γm } diễn tả bước chuyển “nhắm mắt” otomat đẩy xuống M : Otomat trạng thái q, ký hiệu z đỉnh ngăn xếp Khi otomat đẩy xuống chuyển trạng thái q qi thay z ∈ ∆ đỉnh ngăn xếp xâu γi (1 ≤ i ≤ m), đầu đọc khơng dịch chuyển Như vậy, thời điểm, tình tức thời otomat đẩy xuống xác định ba yếu tố sau: - Xâu γ ∈ ∆∗ ngăn xếp (với quy ước ký hiệu bên trái γ nằm đáy ngăn xếp) - Trạng thái q ∈ Q - Phần xâu vào x ∈ Σ∗ chưa đọc đến băng vào (với quy ước ký hiệu bên trái x ký hiệu đọc tiếp) 42 Ta có định nghĩa cho tình tức thời PDA sau: Định nghĩa 3.4 Cho otomat đẩy xuống M = Q, Σ, ∆, δ, q0 , z0 , F Một hình trạng otomat M ba K = q, α, β , q ∈ Q, α ∈ Σ∗ , β ∈ ∆∗ Giả sử α = a1 a2 ak ∈ Σ∗ , β = x1 x2 xm ∈ ∆∗ Dưới tác động ánh xạ chuyển trạng thái δ, otomat M chuyển từ hình trạng sang hình trạng khác theo nguyên tắc sau: 1) Nếu p, γ ∈ δ(q, a1 , xm ) hình trạng q, a1 a2 ak , x1 x2 xm chuyển sang hình trạng p, a2 ak , x1 x2 xm−1 γ ký hiệu: q, a1 a2 ak , x1 x2 xm p, a2 ak , x1 x2 xm−1 γ 2) Nếu p, γ ∈ δ(q, ε, xm ) hình trạng q, a1 a2 ak , x1 x2 xm chuyển sang hình trạng p, a1a2 ak , x1 x2 xm−1 γ ký hiệu: q, a1 a2 ak , x1 x2 xm 3.2 p, a1 a2 ak , x1 x2 xm−1 γ Một số thuật tốn phântíchcúpháp 3.2.1 Thuật toán Left to right parse - Leftmost derivation (LL) Tư tưởng phương phápphântích LL ta triển khai ký hiệu không kết thúc, lựa chọn cẩn thận sản xuất để tránh việc quay lui thời gian Tức phải có cách xác định dực lựa chọn mà thử lựa chọn khác Thông tin để xác định lựa chọn dựa vào biết trạng thái kí hiệu kết thúc 43 Left to right parse - Leftmost derivation phương phápphântích hiệu quả, thuộc chiến lược phântích topdown hiệu chỗ phương phápphântích khơng quay lui Cơ sở phântích Left to right parse - Leftmost derivation(k) dựa phương phápphântích top-down máy ơtơmát đẩy xuống Thuật tốn phântích Left to right parse - Leftmost derivation(1)( Thuật tốn LL(1)) Đầu vào: bảng phântích M, xâu vào Đầu ra: Cây phântích cho x lỗi Các bước thuật tốn: Bước 1: Đẩy kí hiệu $, S (kí tự đầu) vào Stack Thêm $ vào cuối xâu x Kí tự xét kí tự đầu xâu x (Lặp) Bước 2: X kí hiệu đỉnh Stack, a kí hiệu xét Nếu X = a = $ → Thành công Nếu X = a = $: Lấy X khỏi Stack, kí hiệu xét kí hiệu xâu vào Nếu X kí hiệu khơng kết thúc: Xét ô M [X, a] sản xuất X → Y1 Y2 Yk thì: Lấy X khỏi Stack Đẩy Yk , , Y1 vào Stack Định nghĩa First Follow: First (α) tập kí hiệu kết thúc bắt đầu xâu suy dẫn từ α Nếu α ⇒∗ ε ε ∈ First(α) Follow(A) tập kí hiệu kết thúc mà đứng bên phải A dạng câu 44 Tính First kí hiệu (1) Nếu X ký hiệu kết thúc First(X)={X} (2) Nếu X → ε sản xuất ε ∈ First(X) (3) Nếu X → Y1 Y2 Yk sản xuất: First(Y1 )\{ε} ⊂ First(X) Nếu ε ∈ First(Yj )(j < i)→First(Yj ) \{ε} ⊂ First(X) Nếu ε ∈ First(Yj )(i = 1, 2, , k) ε ∈ First(X) Lặp lại quy tắc khơng thêm vào First(X) Tính First xâu α = X1 X2 Xk First(X1 )\{ε} ⊂ First(α) Nếu ε ∈ First(Xj )(j < i)→First(Yj ) \{ε} ⊂ First(α) Nếu ε ∈ First(Xi )(i = 1, 2, , k) ε ∈ First(α) Tính Follow(A) (1) Đặt $ vào Follow(A) với A kí hiệu bắt đầu (2) B → αAβ (với β = ε) First(β)\{ε} ⊂ Follow(A) (3) B → αA (hoặc B → αAβ với ε ∈ First(β)) Follow(B)⊂ Follow(A) Lặp lại quy tắc khơng thêm vào Follow(A) Ví dụ 3.3 Cho bảng phântích sau: Xâu vào a + a∗ a Thuật toán LL(1) cho xâu a + a∗ a cụ thể sau: Bước 1: Đẩy $E vào stack, đọc a + a∗ a Bước 2: Đỉnh stack E, chữ đọc a, tra Bảng dùng E → T E Lấy E stack, đẩy E T vào stack Stack $E T , xâu đọc a + a∗ a$ Bước 3: Đỉnh stack T, chữ đọc a + a∗ a, tra Bảng dùng T → F T Lấy T stack, đẩy T F vào ngăn xếp Stack $E T F , xâu đọc a + a∗ a$ Bước 4: Đỉnh stack F, chữ đọc a, tra Bảng dùng F → a Lấy F 45 khỏi stack, đẩy a vào stack Stack $E T a, xâu đọc a + a∗ a$ Bước 5: Đỉnh stack a, chữ đọc a, sánh hai chữ nhau: lấy a khỏi stack, dịch xâu đầu vào sang phải Stack $E T , xâu đọc a + a∗ a$ Bước 6: Đỉnh stack T’, chữ đọc + Tra Bảng dùng T → espilon: Stack $E, xâu đọc +a∗ a$ Bước 7: Đỉnh stack E’, chữ đọc + Tra Bảng E → +T E Lấy E’ khỏi Stack, đẩy E , T, + vào Stack Stack $E T +, xâu đọc +a∗ a$ Bước 8: Đỉnh stack +, chữ đọc +, sánh hai chữ nhau, lấy + khỏi Stack, dịch chữ đọc sang phải Stack $E T , xâu đọc a∗ a$ 46 3.2.2 Thuật toán Earley Giải thuật Earley [1, 2] số giải thuật sử dụng để phântíchcúpháp xử lý ngơn ngữ tự nhiên Nó giải thuật tổng qt, phântíchvănphạmphingữcảnh Nhưng giải thuật nhiều hạn chế cần khắc phục Giải thuật Earley: Cho G = (V, W, S, P ) vănphạmphingữ cảnh, w = a1 an ∈ W ∗ Khi đó, A → α • β luật có chấm A → αβ ∈ P Giải thuật Earley biểu diễn thông qua việc xây dựng bảng chứa tập luật có chấm Người ta xây dựng bảng Earley với cột Ii (i = n), cột I0 nhận giá trị khởi tạo, n độ dài chuỗi từ loại nhập Mỗi có giá trị: giá trị gốc để biết luật phát sinh từ cột nào, luật có chấm Thuật tốn phântích Earley thực theo bước: Dự đốn Đối với luật có ký tự khơng kết thúc bên phải dấu chấm, ta thêm luật mà ký tự khơng kết thúc vế trái luật với giá trị gốc i Điều có nghĩa là, với [A → α • aβ, j] Ii ta thêm [B → •γ, i] vào Ii B → γ ∈ P Duyệt Đối với luật mà ký tự kết thúc bên phải dấu chấm, luật chuyển sang cột Ii+1 với dấu chấm dịch sau ký tự kết thúc Điều có nghĩa là, với [A → α • aβ, j] đổi thành [A → αa • β, j] cột Ii+1 Hoàn thiện 47 Khi có luật [A → α•, j] chép đổi [B → α • Aβ, k] cột Ij thành [B → αA • β, k] cột Ii Ví dụ 3.4 Cho vănphạm G với luật sinh sau: S → CN VN CN → DL DT CN → DT VN → ĐT CN VN → VN BN BN → GT CN DT → mẹ DT →con DT → chân DL → ĐT → rửa GT →cho Chú thích: CN – Chủ ngữ VN – Vị ngữ DT – Danh từ DL – Danh từ loại ĐT – Động từ BN – Bổ ngữ GT – Giới từ chuỗi nhập là: mẹ rửa chân cho Với thuật toán Earley trình bày ta có bảng sau: 48 3.2.3 Thuật toán Cocke-Younger-Kasami (CYK) CYK viết tắt từ Cocke-Younger-Kasami, thuật toán dùng để xác định xem xâu có tạo (hay đốn nhận) vănphạmphingữcảnh hay không (context-free grammar) Thuật toán sử dụng nhiều phântích ngơn ngữ tự nhiên CYK thuật tốn bottom-up chi phí O(n) trường hợp tồi với n độ dài xâu phântích Giải thuật CYK Đầu vào: Vănphạm G = (V, W, S, P ) dạng chuẩn Chomsky, không chứa sản xuất rỗng Xâu vào ω = a1 a2 an ∈ W ∗ Đầu ra: Bảng phântích W ω cho tij chứa A A ⇒+ a1 a2 ai+j−1 Phương pháp: Bước Tập hợp ti1 = {A | A → ∈ P } với i Sau bước ti1 chứa A ta có A ⇒+ aj Bước Giả sử tij tính ∀i(1 ≤ i ≤ n) ∀j(1 ≤ j ≤ j) Tập hợp tij = {A | với k (1 ≤ k < j), A → BC ∈ P, B ∈ tik ; C ∈ ti+kj−k } 49 Từ điều kiện ≤ k < j suy k j − k nhỏ j Do tik ti+kj−k tính trước tij phải tính Sau bước này, tij chứa A A ⇒ BC ⇒+ a1 a2 ai+k−1 C ⇒+ a1 a2 ai+k−1 ai+k ai+j−1 Bước Lặp lại bước tij tính với ≤ i ≤ n, ≤ j < n − i + Giải thuật phântích trái CYK Đầu vào: Vănphạm G = (V, W, S, P ) dạng chuẩn Chomsky, luật sản xuất (luật sinh) đánh số từ 1, , q Xâu vào ω = a1 a2 an Bảng phântích W ω Đầu ra: Phântích trái ω thông báo ”sai” Phương pháp: Ta sử dụng thủ tục đệ quy SINH(i, j, A) để sinh phântích trái suy dẫn: A ⇒+ a1 a2 ai+j−1 Thủ tục SINH(i, j, A) xác định sau: Nếu j = sản xuất thứ m P A ⇒ , ta viết số thứ tự sản xuất m Nếu j > 1, gọi k số nguyên nhỏ ≤ k < j cho với B ∈ tik C ∈ ti+1,k ta có A → BC ∈ P có số thứ tự m (Trong trường hợp có nhiều sản xuất dạng A → BC, ta chọn tùy ý sản xuất với số thứ tự m nhỏ nhất), viết số thứ tự m thực S I N H (i, k, b) S I N H (i + k, j − k, C) Giải thuật S I N H (1, n, S) với điều kiện S ∈ t1n , S ∈ / t1n đưa thơng báo sai Ví dụ 3.5 Cho vănphạmphingữcảnh G với luật sinh sau: S → AA 50 S → AS S → b A → SA A → AS A → a Chuỗi nhập vào w = abaab Với thuật toán CYK ta có bảng phântích Hình 3.2 ⇒ Đầu : 164356263 Hình 3.2: Bảng phântích luật sinh 51 Kết luậnVănphạmphingữcảnh công cụ sinh lớp ngôn ngữphingữcảnh có nhiều ứngdụng thực tiễn Trongluậnvăn này, khái niệm ngôn ngữ hình thức, ngơn ngữphingữ cảnh; định nghĩa, mô tả hoạt động số vấn đề liên quan tới vănphạmphingữcảnh trình bày Đặc biệt, luậnvăn trình bày tổng qt mơ tả chi tiết số mơ hình ứngdụngvănphạmphingữcảnh Do lần nghiên cứu, luậnvăn có nhiều thiếu sót Rất mong thầy giáo, giáo bạn góp ý để luậnvăn hoàn thiện 52 Tài liệu tham khảo [A] Tài liệu tiếng Việt [1] Nguyễn Văn Định (2012), Giáo trình Otomat Ngơn ngữ hình thức, NXB Đại học Nơng nghiệp [2] Hồ Văn Qn (2002), Giáo trình lý ơtơmát ngơn ngữ hình thức, NXB Đại học Quốc gia TP Hồ Chí Minh [3] Đặng Huy Ruận (2002), Lý thuyết ngơn ngữ hình thức Otomat, NXB Đại học Quốc gia Hà Nội [B] Tài liệu tiếng Anh [4] Hopcroft J E., Ullman J D (1969), Formal Languages and Their Relation to Automata, Addison-Wesley Publishing Company, Massachussetts [5] Hopcroft J E., R Motwani, Ullman J D (2001), Introduction to Automata Theory, Languages, and Computation, Addision – Wesley Publishing Company, Massachussetts [6] Peter L (1990), An Introduction to Formal Languages and Automata, D.C Heath and Company [7] Smith V J R (1995), A First course in Formal Language Theory (Second Editor), McGraw-Hill Book Company Europe 53 ... thấy lớp văn phạm không hạn chế rộng nhất, chứa đựng văn phạm cảm ngữ cảnh, lớp văn phạm 23 cảm ngữ cảnh chứa văn phạm phi ngữ cảnh lớp văn phạm phi ngữ cảnh chứa văn phạm quy Ngơn ngữ hình thức... nghiệp thạc sĩ chuyên ngành Toán ứng dụng Văn phạm phi ngữ cảnh ứng dụng phân tích cú pháp Mục đích nghiên cứu Tìm hiểu văn phạm ngơn ngữ phi ngữ cảnh lý thuyết ngơn ngữ hình thức Nhiệm vụ nghiên... gọi văn phạm nhóm hay văn phạm cảm ngữ cảnh c) G gọi văn phạm phi ngữ cảnh nếu: Văn phạm G = Σ, ∆, S, P mà quy tắc có dạng A → ω, A ∈ ∆, ω ∈ (Σ ∩ ∆)∗ , gọi văn phạm nhóm hay văn phạm phi ngữ cảnh