đồ án tốt nghiệp xây dựng bộ công cụ thực hiện một số giải thuật trong môn học ngôn ngữ hình thức và automata

192 761 0
đồ án tốt nghiệp xây dựng bộ công cụ thực hiện một số giải thuật trong môn học ngôn ngữ hình thức và automata

Đ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

Luận Tốt Nghiệp KS2-K7 LỜI NÓI ĐẦU Môn học ngôn ngữ hình thức và automata có rất nhiều ứng dụng trong lónh vực khoa học máy tính như xây dựng các trình biên dòch, nhận dạng và chuyển đổi giữa các ngôn ngữ khác nhau… Do đó mà môn học này là một môn học bắt buộc cho các sinh viên ngành CNTT trong các trường đại học. Để giúp cho các sinh viên có điều kiện học tốt và thực hành các bài tập của môn học này, luận văn này đi sâu vào việc mô phỏng lại hoạt động của các giải thuật trong phần ngôn ngữ phi ngữ cảnh đặc biệt là các giải thuật phân tích cú pháp Earley và CYK. Sinh viên có thể khai thác cơ sở lý thuyết của môn học thông qua hệ thống Help của chương trình. Xin cám ơn thầy Hồ Văn Quân đã tận tình hướng dẫn và giúp đỡ tôi hoàn thành bản luận văn tốt nghiệp như yêu cầu của đề bài. Sinh Viên Thực Hiện Thái Thuần Thạch Trang 1 Luận Tốt Nghiệp KS2-K7 PHẦN 1 GIỚI THIỆU 1. GIỚI THIỆU ĐỀ TÀI Yêu cầu của đề tài là : “Xây dựng bộ công cụ thực hiện một số giải thuật trong môn học ngôn ngữ hình thức và Automata.” Ngoài các giải thuật biến đổi văn phạm, tập trung vào nghiên cứu và hiện thực hai giải thuật phân tích cú pháp CYK và Earley, Đánh giá số bước phân tích của mỗi giải thuật. p dụng nhận dạng một câu nhập thuộc ngôn ngữ tự nhiên (Tiếng Anh) 2. MỤC ĐÍCH & Ý NGHĨA Hiện nay, ở nước ta việc áp dụng giảng dạy các môn học thông qua các mô hình giảng dạy thiết kế trên máy tính còn gặp nhiều khó khăn, một trong những nguyên nhân là thiếu các phần mềm hỗ trợ việc học và giảng dạy. Luận văn này ra đời không nằm ngoài mục đích giúp sinh viên nghành CNTT có một công cụ để hỗ trợ thêm cho việc học môn học “Ngôn Ngữ Hình Thức & Automata” . Bộ công cụ này cho phép sinh thấy rõ cách thức hoạt động của một số giải thuật của phần ngôn ngữ phi ngữ cảnh, cũng như thấy được ứng dụng của các giải thuật phân tích cú pháp. 3. NỘI DUNG CHÍNH CỦA LUẬN VĂN TỐT NGHIỆP Nội dung của luận văn được chia làm 8 phần, cụ thể như sau: ♦ Phần 1 : Là phần giới thiệu về đề tài, cùng ý nghóa và tầm quan trọng của nó. Trang 2 Luận Tốt Nghiệp KS2-K7 ♦ Phần 2 : Đây là phần tìm hiểu về cơ sở lý thuyết có liên quan, trong phần 2 này được chia làm 4 chương với các chủ đề tìm hiểu khác nhau cụ thể là : Chương 1 : Một số khái niệm cơ bản của môn học Mục đích của chương này là giúp cho người đọc làm quen với một số khái niệm về Ngôn ngữ Hình thức & Automat như chuỗi, ngôn ngữ và văn phạm chính qui, ngôn ngữ và văn phạm PNC, cây dẫn xuất… để có thể dễ dàng đọc tiếp những phần sau.Tuy nhiên, người đọc có thể bỏ qua chương này nếu đã nắm được các khái niệm trên. Chương 2 :Các giải thuật biến đổi văn phạm PNC & các dạng chuẩn Trong chương này tập trung tìm hiểu các giải thuật biến đổi văn phạm PNC như : Loại bỏ các luật sinh rỗng, đơn vò, vô dụng cũng như chuyển đổi một văn phạm PNC bất kỳ về hai dạng chuẩn Chomsky và Greibach, đây là phần lý thuết cơ bản làm nền tảng cho việc thực hiện giải thuật phân tích cú pháp CYK sau này. Chương 3 : Trình bày Một số giải thuật và công cụ phân tích cú pháp thông dụng bao gồm phương pháp từ trên xuống (top -down) và từ dưới lên (bootom -up) mục đích là giúp cho người đọc có sơ sở để so sánh với hai giải thuật phân tích cú pháp tổng quát CYK và Earley Chng 4 : Giải thuật phân tích cú pháp Earley và CYK, đây là phần chính của luận văn, trong chương này chú trọng đến việc tìm hiểu về giải thuật để phân tích cú pháp và tạo chuỗi dẫn xuất cho câu nhập, cũng như so sánh độ phức tạp của hai giải thuật này với các giải thuật ở chương 3. ♦ Phần 3 : Tìm hiểu lý thuyết về phần mềm hỗ trợ học tập và giảng dạy, cách thức để thiết kế và lựa chọn mô hình giảng dạy tốt. ♦ Phần 4 : Tập trung phân tích và thiết kế cho mô hình vừa chọn, phần này dựa trên các lý thuyết đã tìm hiểu ở phần 2 và mô hình giảng dạy để đưa ra • Lựa chọn ngôn ngữ lập trình • Cấu trúc dữ liệu cho các giải thuật sử dụng trong chương trình • Cách thức nhập liệu, cấu trúc file lưu trữ • Cách trình bày dữ liệu xuất • Các lưu đồ thuật toán, tính toán độ phức tạp… Trang 3 Luận Tốt Nghiệp KS2-K7 • … ♦ Phần 5 : So sánh độ phức tạp giữa hai giải thuật phân tích cú pháp CYK và Earley, trong phần này đưa ra các giả thiết để thực hiện tính độ phức tạp cho hai giải thuật trên bằng chương trình cũng như đưa ra những minh họa bằng ví dụ thực tế (với các đồ thò minh họa) ♦ Phần 6 : p dụng nhận dạng ngôn ngữ tự nhiên, trong phần này sẽ trình bày các vấn đề liên quan đến việc nhận dạng một câu nhập (Tiếng Anh) và cách thức xây dựng bộ từ điển token. ♦ Phần 7 : Thiết kế Help : đây cũng là một phần quan trọng của một chương trình trợ giúp học tập, trong phần này chú trọng tìm hiểu thiết kế một hệ thống Help. Đặc biệt là thiết kế hệ thống Help cho chương trình thông qua công cụ Windows Help Designer Pro (down load từ http://www.devgr.com) ♦ Phần 8 : Giới thiệu chng trình kết quả. ♦ Phần 9 : Phụ lục - Mã chương trình ♦ Phần 10 : Giới thiệu các tài liệu tham khảo PHẦN 2 : CƠ SỞ LÝ THUYẾT LIÊN QUAN CHƯƠNG 1 MỘT SỐ KHÁI NIỆM CƠ BẢN Trong chương này chúng ta sẽ tìm hiểu một số khái niệm và đònh nghóa cơ bản liên quan đến môn học như : bảng chữ cái, chuỗi, ngôn ngữ, văn phạm, cây dẫn xuất…, tuy nhiên sinh viên có thể bỏ qua chương này nếu đã nắm bắt được các khái niệm trên. 1. BẢNG CHỮ CÁI ♦ Là một tập hữu hạn không trống các ký hiệu (symbol) tập này thường được ký hiệu bằng Σ Trang 4 Luận Tốt Nghiệp KS2-K7 ♦ Ví dụ : {A,B,C, ,Z} : Bảng chữ cái chữ La Tinh {0,1,2, 9} : Bảng chữ số thập phân 2. CHUỖI ♦ Cho Σ là bảng chữ cái (alphabet), một từ w trên Σ là một chuỗi hữu hạn các chữ cái. Ví dụ: w=aabba, v=aaabbb là các từ trên bảng chữ cái Σ={a,b} ♦ Chuỗi rỗng cũng là một từ trên bảng chữ cái Σ ký hiệu là λ ♦ Kết nối chuỗi (concatenation) : Cho hai chuỗi u,v trên bảng chữ cái Σ, kết nối giữa hai chuỗi u,v ký hiệu là uv là một từ trên bảng chữ cái Σ bao gồm các ký hiệu thuộc u theo sau là các ký hiệu thuộc v. Ví dụ: Σ ={a,b,1,2} u=aabb v=1122 uv=aabb1122 ♦ Đảo một chuỗi : là chuỗi nhận được bằng cách viết các ký hiệu theo thứ tự ngược lại. Ví dụ : v=1122 thì v R =2211 ♦ Tiếp đầu ngữ (prefix) và tiếp vó ngữ (suffix) của một chuỗi : Nêu w=uv thì u được gọi là tiếp đầu ngữ và v được gọi là tiếp vó ngữ của w ♦ Chiều dài của một chuỗi : Chiều dài của một chuỗi w được ký hiệu là |w| hay là l(w) là số ký hiệu có trong chuỗi. ♦ Với mọi chuỗi u,v trên Σ ta có: |uv|=|u|+|v| |uv|=|vu| ♦ Lũy thừa của một chuỗi: nêu w là một chuỗi thì w n là một chuỗi có được bằng cách kết nối chuỗi w với chính nó n lần, trường hợp đặc biệt w 0 =λ ♦ Σ * : Nếu Σ là một bảng chữ cái thì tập tất cả các chuỗi trên Σ kể cả chûi trống được gọi là Σ * Trang 5 Luận Tốt Nghiệp KS2-K7 ♦ Σ + : Nếu Σ là một bảng chữ cái thì tập tất cả các chuỗi trên Σ không kể chûi trống được gọi là Σ + 3. NGÔN NGỮ ♦ Bất kỳ một tập L nào trên bảng chữ cái Σ, hay tập con L của Σ * được gọi là một ngôn ngữ. Ví dụ : Cho Σ={a,b} thì Σ * ={λ,a,b,aa,ab,ba,aaa,aab, } Tập {a,aa,aab} là một ngôn ngữ trên ∑ Tập L={a n b n : n≥0} cũng là một ngôn ngữ trên tập ∑ ♦ Vì ngôn ngữ là một tập hợp các chuỗi nên hội (union), giao (intersection) và hiệu (diference) của hai ngôn ngữ dễ dàng xác đònh ngay lập tức. ♦ Bù của một ngôn ngữ : Bù của một ngôn ngữ L trên bảng chữ cái ∑ được ký hiệu là L =∑ * -L ♦ Cho L 1 và L 2 là hai ngôn ngữ trên bảng chữ cái ∑: + L 1 L 2 : Là một ngôn ngữ trên ∑ chứa các chuỗi có được bằng cách nối bất kỳ một chuỗi của ngôn ngữ L 1 với một chuỗi bất kỳ của ngôn ngữ thuộc L 2 L 1 L 2 ={w: w=uv, u∈L 1 , v∈L 2 } + L n : Lũy thừa của một ngôn ngữ bao gồm L nối với chính n lần với trường hợp đặc biệt : L 0 ={λ} L n =L n-1 L với n≥0 ♦ Bao đóng -sao của một ngôn ngữ L được ký hiệu là L * với : L * =L 0 ∪L 1 ∪L 2 ♦ Bao đóng -dương của một ngôn ngữ L được ký hiệu là L + với : L + =L 1 ∪L 2 4.VĂN PHẠM CHÍNH QUI VÀ NGÔN NGỮ CHÍNH QUI 4.1- Văn phạm Chính Qui Để nguyên cứu một ngôn ngữ, chúng ta cần một cơ chế để mô tả nó. Ngôn ngữ hàng ngày thường không chính xác (vì có thể hiểu theo nhiều nghóa tùy vào hoàn cảnh của từng người và bối cảnh sảy ra), cú pháp thì nhập nhằng Trang 6 Luận Tốt Nghiệp KS2-K7 không rõ ràng (câu có thể không xác đònh được ý nghóa chính xác), vì vậy chúng ta sẽ tìm hiểu một vài cơ chế đònh nghóa ngôn ngữ rất hiệu quả trong các trường hợp khác nhau đó là đònh nghóa ngôn ngữ thông qua văn phạm. ♦ Đònh Nghóa Một văn phạm G được xác đònh như là một bộ bốn : G=(V,T,S,P) Trong đó: + V là một tập hữu hạn các đối tượng được gọi là các biến (variable) + T là một tập hữu hạn các đối tượng được gọi là các ký hiệu kết thúc (terminal symbol) + S ∈ V là một ký hiệu đặt biệt được gọi là biến khởi đầu. + P là tập hữu hạn các luật sinh (Production) ♦ Văn phạm tuyến tính Phải và Trái + Một văn phạm G=(V,T,S,P) được gọi là tuyến tính - phải nếu tất cả các luật sinh có dạng : X  xB, X x Trong đó : A,B ∈ V, x ∈ T* . + Mộtvăn phạm được gọi là tuyến tính trái nếu tất cả các luật sinh có dạng : X Bx, X x + Một văn phạm gọi là chính qui là văn phạm mà hoặc là tuyến tính trái hoặc tuyến tính phải. Các luật sinh là trái tim của văn phạm, chúng chỉ ra làm thế nào văn phạm biến đổi một chuỗi thành một chuỗi khác, và thông qua cách này chúng (các luật sinh) đònh nghóa một ngôn ngữ liên kết với văn phạm. ♦ Chúng ta nói rằng w dẫn xuất ra z ký hiệu w= * >z hay z được dẫn xuất ra từ w. Các chuỗi lần lượt được dẫn xuất bằng cách áp dụng các luật sinh của văn phạm trong một thứ tự tùy ý nếu : w 1 =>w 2 => =>w n chúng ta nói w 1 dẫn xuất ra w n và viết w 1 = * > w 2. ♦ Dấu * chỉ ra rằng một số bước bất kỳ nào đó (kể cả không) có thể được áp dụng để dẫn xuất ra w n từ w 1 ♦ Để chỉ ra ít nhất một luật sinh áp dụng chúng ta phải viết : w 1 = + >w n 4.2- Ngôn Ngữ Chính Qui Trang 7 Luận Tốt Nghiệp KS2-K7 Một ngôn ngữ gọi là chính qui nếu tồn tại một automat hữu hạn chấp nhận nó. Vì vậy mỗi ngôn ngữ chính qui có thể được mô tả bằng một dfa hay một nfa nào đó, như vậy để trình bày một ngôn ngữ chính qui có thể mô tả nó như là một dfa hay nfa. Ngôn ngữ L là chính qui nếu và chỉ nếu tồn tại một văn phạm chính qui G sao cho L=L(G). 4.3- Biểu Thức Chính Qui Một cách để biểu diễn ngôn ngữ chính qui là thông qua khái niện biểu thức chính qui. Khái niệm về biểu thức chính qui bao gồm sự kết hợp các chuỗi kí hiệu của một bảng chữ các ∑ nào đó, các dấu ngoặc ( ) và các phép toán + , . và *. Ví dụ r=(a|b)*a ♦ Đònh nghóa Cho ∑ là một bảng chữ cái. Thì: + ∅ , λ và a ∈∑ tất cả đều là những biểu thức chính qui. Những cái này được gọi là những biểu thức chính qui nguyên thủy. + Nếu r 1 và r 2 là những biểu thức chính qui, thì r 1 +r 2, r 1. r 2 , và(r 1 ) cũng vậy. + Mộät chuỗi là một biểu thức chính quy nếu và chỉ nếu nó có thể được dẫn xuất từ các biểu thức chính qui nguyên thủy bằng một số lần hữu hạn áp dụng các qui tắc trong (2). ♦ Ngôn ngữ L(r) được biểu thò bỡi biểu thức chính qui bất kỳ và được đònh nghóa bởi các qui tắc sau: + ∅ là một biểu thức chính qui biểu thò tập trống. + λ là một biểu thức chính qui biểu thò tập {λ} + Đối với mọi a ∈∑, a là biểu thức chính qui biểu thò cho ngôn ngữ {a}. Nếu r 1 và r 2 những biểu thức chính qui thì : + L(r 1 +r 2 ) = L(r 1 ) ∪L(r 2 ) + L(r 1. r 2 ) = L(r 1 ).L(r 2 ) + L((r 1 )) = L(r 1 ) + L(r 1 * ) = (L(r 1 )) * 5. NGÔN NGỮ PHI NGỮ CẢNH Trong thực tế hàng ngày không phải tất cả các ngôn ngữ điều là chính qui. Trong khi ngôn ngữ chính qui hiệu quả trong việc mô tả một vài mẫu đơn giản do đó người ta không cần chú ý quá nhiều đến các ngôn ngữ chính qui vì có nhiều sự hạn chế của nó đối với ngôn ngữ lập trình. Trang 8 Luận Tốt Nghiệp KS2-K7 Ví dụ: Nếu trong L={a n b n : n≥0}, chúng ta thay thế dấu ngoặc trái cho a và dấu ngoặc phải cho b thì chuỗi các dấu ngoặc chẳng hạn như (( )) và ((( ))) là thuộc L nhưng (( ) thì không mà trong một ngôn ngữ lập trình thì thường xuyên gặp những cấu trúc lồng nhau như vậy. Do đó ta thấy một vài thuộc tính của ngôn ngữ lập trình yêu cầu một cái gì đó bên ngoài ngôn ngữ chính qui, để bao trùm những vấn đề này ta phải mở rộng ngôn ngữ dẫn đến việc nguyên cứu ngôn ngữ và văn phạm phi ngữ cảnh. 5.1- Văn Phạm Phi Ngữ Cảnh Các luật sinh trong văn phạm chính qui thì bò giới hạn theo 2 cách : Vế phải là một biến đơn, trong khi đó vế phải có một dạng đặc biệt. Để tạo ra văn phạm mạnh hơn, chúng ta phải nới lỏng một vài giới hạn như vậy, bằng cách duy trì giới hạn trên vế trái nhưng cho phép bất kỳ cái gì trên vế phải khi đó chúng ta nhận được một văn phạm phi ngữ cảnh. ♦ Đònh Nghóa Một văn phạm G =(V,T,S,P) được gọi là phi ngữ cảnh 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 nếu và chỉ nếu có một văn phạm phi ngữ cảnh G sao cho L= L(G). 5.2- Dẫn Xuất Trái Nhất Và Phải Nhất Trong văn phạm phi ngữ cảnh 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, trong trường hợp như vậy chúng có có một sự chọn lựa về thứ tự biến nào được thay thế. Một dẫn xuất được gọi là trái nhất nếu trong mỗi bước biến bên trái nhất được thay thế. nếu trong mỗi bước biến bên phải nhất được thay thế thì gọi dẫn xuất trái nhất. 5.3 - 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ự trong đó các luật sinh được áp dụng là bằng cây dẫn xuất. Một cây dẫn xuất 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 bằng vế phải tương ứng của nó Ví dụ : A > abABc thì cây dẫn xuất là : Trang 9 Luận Tốt Nghiệp KS2-K7 Đònh Nghóa Cho G=(V,T,S,P) là một văn phạm phi ngữ cảnh. 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: + Gốc được gán nhãn là S + Mỗi lá có một nhãn lấy từ tập (T ∪ { λ }) + Mỗi nốt bên trong không phải là lá có một nhãn lấy từ V. + Nếu nỗ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) a 1 , a 2 a n thì P phải chứa một luật sinh có dạng A > a 1 , a 2 a n + Một lá được gán nhãn λ không có anh chò e, tức là một nốt với một con được gán nhãn λ có thể không có con nào khác. Ngoài ra còn có một số khái niệm khác chưa được nêu ra ở đây, các bạn có thể tìm hiểu thêm trong “An Introduction To Formal Languages And Automata” của Peter Linz CHNG 2 MỘT SỐ GIẢI THUẬT BIẾN ĐỔI VĂN PHẠM PNC VÀ CÁC DẠNG CHUẨN Trong phần này, chúng ta đi sâu vào việc tìm hiểu một số giải thuật biến đổi văn phạm phi ngữ cảnh như : Trang 10 A BA cb a [...]... VÀ CYK I- GIẢI THUẬT PHÂN TÍCH CÚ PHÁP EARLEY 1.1 Giới Thiệu Văn phạm phi ngữ cảnh được sử dụng rộng rãi trong việc mô tả cú pháp của ngôn ngữ lập trình và ngôn ngữ tự nhiên Các giải thuật phân tích cú pháp cho các văn phạm phi ngữ cảnh đã và đang đóng một vai trò rất lớn trong việc thực hiện các chương trình dòch cho ngôn ngữ lập trình và các chương trình xử lý ngôn ngữ tự nhiên Earley đã đưa ra một. .. VÀ CÔNG CỤ PHÂN TÍCH CÚ PHÁP THÔNG DỤNG I- GIỚI THIỆU Hiện nay, đã có nhiều công cụ và giải thuật phân tích cú pháp, các giải thuật này có thể theo phương pháp từ trên xuống hay từ dưới lên và có thể xử lý được lớp văn phạm phi ngữ cảnh tổng quát hay là lớp con của nó (một tập văn phạm nhỏ của tập văn phạm phi ngữ cảnh tổng quát) Trang 20 Luận Tốt Nghiệp KS2-K7 Việc tìm hiểu các giải thuật và công cụ. .. giài thuật phân tích cú pháp cho văn phạm phi ngữ cảnh Đây là một giải thuật thuộc loại phân tích cú pháp từ trên xuống và xây dựng các dẫn xuất trái nhất của chuỗi ký hiệu nhập, giải thuật này hiệu quả hơn giải thuật CYK và chúng ta cũng không đưa văn phạm về một dạng chuẩn nào như giải thuật CYK 1.2 Mô Tả Sơ Lượt Giải Thuật Earley Ý tưởng cơ bản của giải thuật như sau :  Cho G=(N,∑, P,S) là một văn... và công cụ hiện có giúp chúng ta có một cái nhìn tổng thể về việc phân tích cú pháp cũng như có điều kiện để so sánh ưu nhược điển của từng giải thuật, hơn nữa nó giúp tìm ra những cách giải quyết thích hợp trong vấn đề phân tích cú pháp Sau đây chúng ta sẽ đi vào tìm hiểu một số giải thuật và công cụ phân tích cú pháp thông dụng II- CÁC GIẢI THUẬT Trong phần này tập trung tìm hiểu các giải thuật phân... ngữ L(G) nếu và chỉ nếu trong I n có chứa ít nhất một thực thể có dạng [S α ,0] 1.3 Giải Thuật Phân Tích Cú Pháp Của Earley  Nhập :Văn phạm phi ngữ cảnh G=(N,∑,P,S) và chuổi nhập w= a1a2 … an thuộc ∑*  Xuất : Danh sách các tập thực thể : I0, I1, … In Giải Thuật : • Đầu tiên chúng ta xây dựng tập I0 như sau : (1) Nếu S α là một luật sinh trong P thì ta cho [S.α , 0] vào trong I0, sau đó thực hiện. .. Ij-1 (4) Với mỗi thực thể trong Ij-1 có dạng [B α aβ ,i] (với a=aj) cho tập thực thể [B α a β ,i] vào trong Ij Thực hiện bước (5) và (6) sau cho đến khi không còn tập thực thể mới được thêm vào : Trang 32 Luận Tốt Nghiệp KS2-K7 (5) Nếu [A α , i] là một thực thể trong Ij, kiểm tra xem trong tập Ii các thực thể có dạng [B α Aβ , k] với mỗi tập thực thể tìm được như vậy ta cho vào Ij [B α A β... bằng giải thuật LR chứa lớp văn phạm có thể phân tích bằng giải thuật LL Ta cũng nhận xét tại một thời điểm trong quá trình phân tích thì giải thuật phân tích cú pháp LL chỉ làm việc với một luật sinh mà thôi, còn giải thuật phân tích cú pháp LR có thể làm việc với nhiều luật sinh cùng một lúc Chính vì vậy mà giải thuật LR có khả năng phân tích tập văn phạm phức tạp hơn giải thuật LL 3- Giải Thuật. .. phạm phi ngữ cảnh  w=a1a2 … an là một chuổi nhập trên ∑*  Một thực thể của văn phạm G là luật sinh của G có dạng : [A X1X2 … Xk Xk+1 … Xm , i] Trang 31 Luận Tốt Nghiệp KS2-K7 Dấu chấm nằm giữa Xk và Xk+1 là một ký hiệu không có trong N và ∑ và i đại diện cho tập thực thể chứa luật trên  Với mỗi số nguyên j (0 ≤ j ≤ n), chúng ta sẽ xây dựng một danh sách các tập thực thể Ij mà mỗi Ij chứa các thực. .. Bβ, i] là một thực thể trong I j, tìm trong P tất cả các luật sinh có dạng B γ ta thêm [B γ , j] vào Ij • Kết thúc giải thuật khi j=n Như vậy : Từ ý tưởng của giải thuật trên để dễ nhớ và dễ trình bày về sau ta có thể đặt tên cho từng tác vụ trong giải thuật như sau :  (4) : Scan  (5) : Complete  (6) : Predict Và có thể mô tả sơ lượt giải thuật như sau, sau khi đã tạo được tập I0: Giải thuật Earley... sau : - Giải thuật phân tích cú pháp LL - Giải thuật phân tích cú pháp LR - Giải thuật Chart Parsing 1- Giải Thuật Phân Tích Cú Pháp LL Giải thuật này là tiêu biểu cho phương pháp phân tích cú pháp từ trên xuống, giải thuật chỉ áp dụng cho một tập các văn phạm hạn chế có tính chất đặt biệt gọi là LL sau đây là cấu trúc dữ liệu chính và hoạt động của giải thuật : • Cấu trúc dữ liệu gồm : + Bộ đệm nhập . Thực Hiện Thái Thuần Thạch Trang 1 Luận Tốt Nghiệp KS2-K7 PHẦN 1 GIỚI THIỆU 1. GIỚI THIỆU ĐỀ TÀI Yêu cầu của đề tài là : Xây dựng bộ công cụ thực hiện một số giải thuật trong môn học ngôn ngữ. hỗ trợ thêm cho việc học môn học Ngôn Ngữ Hình Thức & Automata . Bộ công cụ này cho phép sinh thấy rõ cách thức hoạt động của một số giải thuật của phần ngôn ngữ phi ngữ cảnh, cũng như. ngữ hình thức và Automata. ” Ngoài các giải thuật biến đổi văn phạm, tập trung vào nghiên cứu và hiện thực hai giải thuật phân tích cú pháp CYK và Earley, Đánh giá số bước phân tích của mỗi giải

Ngày đăng: 22/08/2014, 16:40

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan