Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 71 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
71
Dung lượng
1,03 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI ————————————— PHAN THỊ TUYẾT CHINHMỘTSỐTÍNHCHẤTVÀỨNGDỤNGCỦANGƠNNGỮCHÍNHQUY LUẬN VĂN THẠC SĨ TOÁN HỌC HÀ NỘI - 2017 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI ————————————— PHAN THỊ TUYẾT CHINHMỘTSỐTÍNHCHẤTVÀỨNGDỤNGCỦANGƠNNGỮCHÍNHQUY LUẬN VĂN THẠC SĨ TỐN HỌC Chun ngành: TOÁN ỨNGDỤNG Mã số: 60 46 01 12 Người hướng dẫn khoa học: TS Kiều Văn Hưng HÀ NỘI - 2017 Lời cảm ơn Luận văn hoàn thành Trường Đại học Sư phạm Hà Nội hướng dẫn TS Kiều Văn Hưng Tác giả xin bày tỏ lòng biết ơn sâu sắc tới TS Kiều Văn Hưng, người thầy nhiệt tình giúp đỡ, trực tiếp bảo hướng dẫn để tác giả hoàn thành luận văn Tác giả xin bày tỏ lòng biết ơn chân thành tới phòng Sau đại học, thầy giáo dạy cao học chun ngành Tốn ứngdụng trường Đại học Sư phạm Hà Nội giúp đỡ tác giả suốt trình học tập Cuối tác giả xin gửi lời cảm ơn chân thành đến gia đình, bạn bè, người thân ln động viên khuyến khích, tạo điều kiện thuận lợi cho tác giả trình học tập hoàn thành luận văn Hà Nội, tháng 12 năm 2017 Học viên Phan Thị Tuyết Chinh Lời cam đoan Tôi xin cam đoan, hướng dẫn TS Kiều Văn Hưng, luận văn “Một sốtínhchấtứngdụngngơnngữ quy” hồn thành nhận thức thân tác giả, số liệu kết nghiên cứu luận văn trung thực, không trùng lặp với luận văn khác Tôi xin cam đoan giúp đỡ cho việc thực luận văn cảm ơn thơng tin trích dẫn luận văn rõ nguồn gốc Hà Nội, tháng 12 năm 2017 Tác giả Phan Thị Tuyết Chinh Mục lục Lời mở đầu 1 Mộtsố kiến thức chuẩn bị 1.1 1.2 1.3 Các khái niệm ngơnngữ hình thức 1.1.1 Bảng chữ từ 1.1.2 NgônngữNgơnngữquy biểu thức quy 1.2.1 Ngơnngữquy 1.2.2 Biểu thức quy Otomat hữu hạn 1.3.1 Định nghĩa otomat hữu hạn 1.3.2 Sự tương đương otomat đơn định không đơn định 1.3.3 13 Quan hệ otomat hữu hạn với ngơnngữquyMộtsốtínhchấtngơnngữquy 16 19 2.1 Bổ đề Bơm 19 2.2 Tínhchất đóng ngơnngữquy 23 2.2.1 2.2.2 Tínhchất đóng phép tốn tập hợp đơn giản 24 Tínhchất đóng phép toán khác 29 iii MỤC LỤC 2.3 MỤC LỤC Các toán định 2.3.1 Sự chuyển đổi đại diện ngônngữquy 41 2.3.2 Kiểm tra rỗng ngơnngữquy 43 2.3.3 Kiểm tra phần tử ngơnngữquy 43 Mộtsốứngdụngngơnngữquy 3.1 3.2 41 45 Tổng quan ứngdụngngơnngữquy 45 3.1.1 Thiết kế kiểm tra hoạt động mạch số 46 3.1.2 Tìm kiếm từ văn 47 Ứngdụng vào phân tích từ vựng 52 3.2.1 Biểu thức quy UNIX 53 3.2.2 Phân tích từ vựng 56 Tài liệu tham khảo 63 iv Danh sách hình vẽ 1.1 Mơ tả q trình đốn nhận từ w otomat A 1.2 Bảng chuyển trạng thái otomat A 10 1.3 Đồ thị chuyển otomat A 10 1.4 Q trình đốn nhận từ w otomat A 11 1.5 Bảng chuyển otomat A 11 1.6 Đồ thị chuyển otomat A 12 1.7 Q trình đốn nhận từ w otomat A 12 1.8 Bảng chuyển otomat A 12 1.9 Đồ thị chuyển otomat A 13 1.10 Q trình đốn nhận từ w1 otomat A 13 1.11 Quá trình đốn nhận từ w2 otomat A 13 2.1 Otomat đoán nhận ngônngữ L1 26 2.2 Otomat đốn nhận ngơnngữ L1 26 2.3 Otomat đốn nhận ngơnngữ L1 27 2.4 Otomat đốn nhận ngơnngữ L2 27 2.5 Otomat M đoán nhận ngônngữ L1 ∩ L2 28 2.6 Otomat M đoán nhận ngônngữ L1 ∩ L2 28 2.7 Otomat A đoán nhận ngônngữ L1 32 2.8 Otomat B đoán nhận ngônngữ L2 32 2.9 Bảng chuyển otomat M 33 2.10 Otomat M đốn nhận ngơnngữ L1 − L2 33 v DANH SÁCH HÌNH VẼ DANH SÁCH HÌNH VẼ 2.11 Otomat M đốn nhận ngơnngữ L1 − L2 33 2.12 Otomat A đốn nhận ngơnngữ L1 38 2.13 Otomat B đốn nhận ngơnngữ L2 39 2.14 Otomat đốn nhận ngơnngữ L1 40 2.15 Otomat đốn nhận ngơnngữ L2 40 2.16 Otomat đốn nhận ngơnngữ L3 40 2.17 Otomat đoán nhận ngônngữ L1 L−1 40 2.18 Otomat đốn nhận ngơnngữ L−1 L1 40 2.19 Sự chuyển đổi đại diện ngơnngữquy 41 3.1 Cơng tắc bật / tắt 47 3.2 Otomat nhận từ khoá luck 48 3.3 NFA tìm từ ab, bc ca 50 3.4 DFA tìm từ ab, bc ca 52 3.5 DFA tìm từ ebay web 53 3.6 Một ví dụ phần đầu vào lệnh lex 61 vi Lời mở đầu Lý chọn đề tài Từ sớm, ngônngữ tự nhiên (tiếng Việt, tiếng Anh, tiếng Nhật, ) người sử dụng để liên lạc với Do phát triển khoa học cơng nghệ, người nảy nhu cầu tìm kiếm loại ngơnngữ rộng lớn hơn, khơng phục vụ mục đích giao tiếp người với người mà phương tiện giao tiếp người với máy hay máy với máy Vì ngơnngữ hình thức đời, định nghĩa ngônngữ tự nhiên nhờ quy tắc ngữ pháp nghiêm ngặt mà từ câu có nghĩa Đấy điểm mấu chốt giúp cho việc giao tiếp với máy dễ dàng Ngônngữ hình thức nhà ngơnngữ học tiếng Noam Chomsky phân làm bốn loại: ngônngữngữ cấu (nhóm 0), ngơnngữ cảm ngữ cảnh (nhóm 1), ngơnngữ phi ngữ cảnh (nhóm 2) ngơnngữquy (nhóm 3) Dựa vào phân loại trên, ngơnngữquy lớp ngơnngữ nhỏ chứa ba lớp ngơnngữ lại Khơng có tínhchất đặc biệt ứngdụng nhiều việc thiết kế ngônngữ lập trình hay nghiên cứu chương trình dịch Với mong muốn tìm hiểu sâu lớp ngônngữ thú vị hướng dẫn TS Kiều Văn Hưng, định chọn đề tài nghiên cứu là: “Một sốtínhchấtứngdụngngơnngữ quy” Mục đích nghiên cứu Tìm hiểu sốtínhchấtứngdụngngơnngữquy Nhiệm vụ nghiên cứu Trình bày cách hệ thống lý thuyết sốtínhchấtứngdụngngơnngữquy Đối tượng phạm vi nghiên cứu Đối tượng nghiên cứu: tínhchấtứngdụngngơnngữquy Phạm vi nghiên cứu: tìm hiểu tổng quan ngơnngữquy Giả thuyết khoa học Hệ thống kiến thức sốtínhchấtứngdụngngơnngữquy để góp phần làm phong phú kết quả, hiểu biết ngônngữquy Đồng thời, tơi hi vọng tài liệu hữu ích cho bạn muốn tìm hiểu mơn ngơnngữ hình thức nói chung lớp ngơnngữquy nói riêng 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ó ngơnngữquy Tổng hợp kiến thức trình bày cách hệ thống chép Web thiết lập số Có sốứngdụng liên quan không phù hợp với số đảo ngược ứngdụng tốt cho kỹ thuật dựa otomat Các đặc điểm tạo ứngdụng phù hợp cho tìm kiếm sử dụng otomat là: Kho lưu trữ tìm kiếm thực nhanh chóng Ví dụ: (a) Mỗi ngày, nhà phân tích tin tức muốn tìm kiếm tin tức báo điện tử viết có chủ đề có liên quan như: nhà phân tích tài tìm kiếm với số biểu tượng cổ phiếu tên công ty (b) Một robot mua sắm muốn tìm kiếm giá bị tính phí cho mặt hàng mà khách hàng yêu cầu Robot lấy liệu trang danh mục từ Web sau tìm kiếm trang cho từ đề xuất giá cho mặt hàng cụ thể Các tài liệu cần tìm kiếm khơng liệt kê Ví dụ, trang bán hàng trực tuyến Amazon.com khơng giúp cho trình thu thập thơng tin dễ dàng tìm thấy tất trang dành cho tất sách mà cơng ty bán Tuy nhiên, ta gửi truy vấn cho sách chủ đề định, nói otomat hữu hạn, sau tìm kiếm trang tìm từ định, ví dụ: "xuất sắc" phần đánh giá Otomat hữu hạn khơng đơn định tìm kiếm từ Giả sử đưa tập hợp từ, ta gọi từ khóa ta muốn tìm lần xuất từ số từ khóa Trong ứngdụng vậy, cách hữu ích để tiếp tục thiết kế otomat hữu hạn không đơn định mà dấu hiệu đến trạng thái chấp nhận, nghĩa thấy từ khóa Có hình thức đơn giản để NFA nhận dạng từ khóa Có trạng thái bắt đầu với hàm chuyển cho với ký hiệu vào Ví dụ: ký tự ASCII in 49 ta kiểm tra văn Một cách trực quan, trạng thái bắt đầu đại diện cho đoán mà ta chưa bắt đầu thấy từ khoá, ta thấy số chữ từ Với từ khóa a1 a2 ak , k số trạng thái, giả sử q1 , q2 , , qk Có hàm chuyển từ trạng thái bắt đầu tác động a1 chuyển đến trạng thái q1 hàm chuyển khác có dạng δ(qi , ai+1 ) = qi+1 với ≤ i ≤ k Trạng thái qk trạng thái chấp nhận từ khóa a1 a2 ak tìm thấy Ví dụ 3.1.3 Giả sử ta muốn xây dựng NFA để đoán nhận lần xuất từ ab, bc ca bảng chữ Σ = {a, b, c} Hàm chuyển NFA xây dựng dựa vào hai nguyên tắc cho đồ thị chuyển sau: Hình 3.3: NFA tìm từ ab, bc ca Tuy nhiên, với mục đích đảm bảo không để tăng số lượng tiểu bang, ta chuyển từ NFA sang DFA dựa vào thuật toán đơn định hóa otomat Một DFA đốn nhận từ khóa Ta áp dụng cấu trúc tập cho NFA Tuy nhiên, ta áp dụng điều vào xây dựng cho NFA thiết kế từ 50 từ khóa, theo mục đích ta thấy số trạng thái DFA nhỏ số trạng trái NFA Khi trường hợp xấu số trạng thái tăng lên ta chuyển sang DFA, quan sát tin tốt giải thích phương pháp xây dựng NFA cho từ khoá sau xây dựng DFA từ sử dụng thường xun Ta sử dụng thuật tốn đơn định hóa otomat 1.3.2 để xây dựng DFA cần tìm Ví dụ 3.1.4 Xây dựng DFA từ NFA Ví dụ 3.1.3 hiển thị Hình 3.3 Giải Dựa vào thuật tốn đơn định hóa 1.3.2 ta xây dựng DFA A = QD , {a, b, c} , T, 1, FD , hàm chuyển DFA xác định sau: +T (1, a) = {1, 2} + T ({1, 6} , c) = {1, 6} +T (1, b) = {1, 4} + T ({1, 4, 3} , a) = {1, 2} +T (1, c) = {1, 6} + T ({1, 4, 3} , b) = {1, 4} + T ({1, 2} , a) = {1, 2} + T ({1, 4, 3} , c) = {1, 6, 5} + T ({1, 2} , b) = {1, 4, 3} + T ({1, 6, 5} , a) = {1, 2, 7} + T ({1, 2} , c) = {1, 6} + T ({1, 6, 5} , b) = {1, 4} + T ({1, 4} , a) = {1, 2} + T ({1, 6, 5} , c) = {1, 6} + T ({1, 4} , b) = {1, 4} + T ({1, 2, 7} , a) = {1, 2} + T ({1, 4} , c) = {1, 6, 5} + T ({1, 2, 7} , b) = {1, 4, 3} + T ({1, 6} , a) = {1, 2, 7} + T ({1, 2, 7} , c) = {1, 6} + T ({1, 6} , b) = {1, 4} Chú ý ta ký hiệu trạng thái trạng thái cách viết, chẳng hạn {1, 2} = 12 cho đơn giản tập trạng thái kết thúc DFA FD = {127, 143, 165} 51 Hình 3.4: DFA tìm từ ab, bc ca Ví dụ 3.1.5 Xây dựng DFA đoán nhận từ web ebay bảng chữ Σ = {a, b, , z} Giải Tương tự Ví dụ 3.1.4 ta xây dựng DFA tìm từ ebay web sau: 3.2 Ứngdụng vào phân tích từ vựng Trong chương trình dịch, phân tích từ vựng bước quan trọng Nhiệm vụ chủ yếu đọc chuỗi ký tự nhập vào nhóm ký tự thành từ tố hay gọi token Một biểu thức quy cho ta hình ảnh mơ hình mà ta cần để tạo phương tiện lựa chọn cho ứngdụng tìm kiếm mẫu từ 52 Hình 3.5: DFA tìm từ ebay web văn Trong mục này, tìm hiểu ứngdụng quan trọng dựa biểu thức quy trình phân tích từ vựng 3.2.1 Biểu thức quy UNIX Trước xem ứng dụng, giới thiệu biểu thức quy mở rộng hệ điều hành UNIX Trong thực tế, mở rộng UNIX bao gồm sốtính định, đặc biệt khả đặt tên tham khảo chuỗi trước khớp với mẫu, thực cho phép ngơnngữ khơng quy cơng nhận Chúng ta khơng xem xét tính mà giới thiệu vắn tắt việc cho phép biểu thức quy phức tạp viết ngắn gọn 53 Sự mở rộng biểu thức quy thực tế liên quan đến hầu hết ứngdụng ký tự ASCII Ví dụ, thường sử dụng bảng chữ nhỏ, chẳng hạn {0, 1} Sự tồn hai biểu thức tương đương cho phép viết biểu thức ngắn gọn + thay cho "ký tự bất kỳ" Tuy nhiên, có 128 ký tự biểu diễn liên quan đến việc liệt kê tất bất tiện viết Do đó, biểu thức quy UNIX cho phép viết lớp ký tự đại diện biểu diễn cho tập lớn ký tự để ngắn gọn tốt Các quy tắc cho lớp ký tự là: • Ký hiệu (dot) thay cho ký tự • Dãy [a1 a2 ak ] thay cho biểu thức quy a1 + a2 + + ak Ký hiệu tiết kiệm khoảng nửa ký tự, khơng phải viết dấu + Ví dụ, biểu diễn bốn toán tử so sánh C [=!] • Giữa dấu ngoặc vng đặt dãy dạng x − y để có nghĩa tất ký tự từ x đến y dãy ASCII Vì chữ số có mã theo thứ tự, chữ viết hoa chữ thường, biểu diễn nhiều lớp ký tự mà thực quan tâm với vài cú nhấn phím Ví dụ, chữ số biểu diễn [0 − 9], chữ viết hoa biểu diễn [A − Z], tập tất chữ chữ số biểu diễn [A − Za − z0 − 9] Nếu muốn bao gồm dấu trừ ký tự, đặt đầu cuối, khơng bị nhầm lẫn với việc sử dụng để tạo thành dãy ký tự Chẳng hạn như, số, cộng với dấu chấm, cộng dấu trừ sử dụng để tạo thành đánh dấu số thập phân biểu diễn [− + − 9] Dấu ngoặc vng, ký tự khác mà có ý nghĩa đặc biệt biểu thức 54 quy UNIX biểu diễn dạng ký tự cách sử dụng dấu gạch chéo ngược (\) • Có ký hiệu đặc biệt cho số lớp ký tự phổ biến Ví dụ: a) [: digit :] tập gồm mười chữ số, giống [0 − 9] b) [: alpha :] thay cho ký tự chữ nào, [A − Za − z] c) [: alnum :] thay cho chữ số chữ cái, [A − Za − z0 − 9] Ngồi ra, có số tốn tử sử dụng UNIX mà chưa gặp phải trước Khơng có tốn tử mở rộng ngơnngữ thể đơi họ làm cho dễ dàng để thể muốn Tốn tử | sử dụng thay cho + để biểu thị phép hợp Tốn tử ? có nghĩa "khơng một" Như vậy, R? UNIX giống ε + R Toán tử + nghĩa "một nhiều hơn" Vì vậy, R+ UNIX viết tắt cho RR∗ Tốn tử {n} có nghĩa "n sao" Như vậy, R{5} UNIX viết tắt cho RRRRR Lưu ý biểu thức quy UNIX cho phép dấu ngoặc đơn nhóm biểu thức ưu tiên toán tử sử dụng ( ?, +, {n} xử lý ∗ theo thứ tự ưu tiên có liên quan) Tốn tử ∗ sử dụng UNIX với ý nghĩa sử dụng 55 3.2.2 Phân tích từ vựng Mộtứngdụng lâu đời biểu thức quy đưa thành phần trình biên dịch gọi "bộ phân tích từ vựng" Thành phần quét chương trình mã nguồn nhận tất token, chuỗi liên tiếp đối tượng thuộc hợp lý Từ khố danh biểu, tốn tử ví dụ phổ biến token, có loại khác dấu câu, số, chuỗi Trong Mục 3.1.2, giới thiệu khái niệm otomat sử dụng để tìm kiếm hiệu cho từ kho lớn Web Trong công cụ công nghệ để làm khơng phát triển tốt việc phân tích từ vựng, biểu thức quy mơ tả tìm kiếm cho mơ hình thú vị Đối với phân tích từ vựng, khả từ mơ tả tự nhiên biểu thức quy đến hệ thống hiệu (dựa otomat) cung cấp đòn bẩy tri thức hữu ích Các vấn đề chung mà cơng nghệ biểu thức quy tìm thấy hữu ích mô tả lớp định nghĩa mơ hồ mẫu văn Sự không rõ ràng mô tả đảm bảo khơng mơ tả mơ hình xác lúc - có lẽ khơng thể có miêu tả xác Bằng cách sử dụng biểu thức quy, trở nên dễ dàng để mơ tả mơ hình mức cao, với nỗ lực để sửa đổi mô tả nhanh chóng thứ bị sai hay hiểu nhầm Một "trình biên dịch" cho biểu thức quy hữu ích để biến biểu thức quy viết thành mã thực thi Chúng ta khám phá ví dụ mở rộng vấn đề phát sinh nhiều ứngdụng Web Giả sử muốn quét số lượng lớn trang web phát địa Chúng ta đơn giản muốn tạo danh sách thư điện tử có lẽ cố gắng để phân loại doanh nghiệp theo vị trí họ để trả lời câu hỏi "tìm địa nhà hàng cách 10 phút lái xe vị trí tơi bây giờ" hay "tìm tên trang web có nội dung giáo dục" 56 Chúng ta tập trung vào việc tìm kiếm tên miền nói riêng Chúng ta phải tìm điều đó, kiểm tra phần mềm, thấy bỏ lỡ số trường hợp, phải sửa đổi biểu thức để nắm bắt thiếu Để bắt đầu, tên miền kết thúc ".vn", viết tắt từ "Việt Nam" Tuy nhiên, có nhiều tên miền khác với ý nghĩa riêng biệt Sau số đuôi tên miền phổ biến ý nghĩa chúng .com: viết tắt từ "commercial", nghĩa thương mại, phần mở rộng tên miền phổ biến giới Hầu hết doanh nghiệp mong muốn sở hữu tên miền loại khẳng định vị cao doanh nghiệp mạng Internet .net: viết tắt từ "network", nghĩa mạng lưới Thường sử dụng nhà cung cấp dịch vụ Internet, công ty kinh doanh website, tổ chức khác có liên hệ trực tiếp đến hạ tầng Internet .org: viết tắt từ "organization", dành cho tổ chức .edu: viết tắt từ "education", dành cho tổ chức giáo dục .us: dành cho trang web Mỹ .cn: dành cho trang phim, truyền thơng, truyền hình Do đó, sử dụng kết thúc cho biểu thức quy như: Việt Nam | \ | commercial | com \ | network | net \ Trong biểu thức trên, sử dụng ký hiệu theo phong cách UNIX, với dọc khơng phải +, tốn tử phép hợp Cũng lưu ý dấu chấm đặt sau dấu gạch chéo ngược trước, dấu chấm có ý nghĩa đặc biệt "bất kỳ ký tự nào" biểu thức UNIX trường hợp thực muốn tạo khoảng cách ký tự "chấm" để kết thúc ba chữ viết tắt Tên miền gồm có cấu trúc hai phần: tên đăng ký đuôi tên miền Chúng ta dựa vào đặc điểm để đưa biểu thức quy thích hợp Ví dụ như: 57 Tên miền không vượt 63 ký tự (đã bao gồm phần đuôi) Tên miền bao gồm ký tự bảng chữ (a-z), số (0-9) dấu (-) Khoảng trắng ký tự đặc biệt khác không hợp lệ Tên miền không bắt đầu kết thúc tên miền dấu (-) Vì thế, mơ tả tên miền biểu thức [a − z] Tuy nhiên, số tên miền có tên bao gồm nhiều từ, chẳng hạn "phimmoi.net" Do đó, sau phát ra, thiếu địa trường hợp này, sửa đổi biểu thức tên miền sau [a − z] ∗ ([a − z] ∗)∗ Bây giờ, cần phải đưa số vào biểu thức phần tên miền, chẳng hạn "24h.com" hay "hpu2.edu.vn" Hầu hết tên miền chuỗi chữ số chữ thường (khơng có dấu cách) Tuy nhiên, ví dụ tên miền sau phần số bao gồm chữ viết thường Như vậy, biểu thức mà sử dụng cho số có chữ viết thường tùy chọn sau: [a − z] + [0 − 9]? Chú ý sử dụng + hệ điều hành cho nhiều chữ số ? cho không chữ viết thường Toàn biểu thức phát triển cho tên miền là: [a − z] + [0 − 9]? [a − z] ∗ ([a − z] ∗) (Việt Nam | \ | commercial | com \ | network | net \ )’ Nếu làm việc với biểu thức này, làm tốt Tuy nhiên, cuối phát thiếu: 58 Tên miền có nhiều khác nhau, có tên miền Chẳng hạn "hm.com.vn" trang web thức hãng thời trang HM Việt Nam, "hm.com.us" trang web thức hãng thời trang HM Mỹ, tương tự "hm.com.cn" trang web thức hãng thời trang HM Trung Quốc Trong tên miền khơng chứa chữ viết hoa tìm kiếm ta viết tên miền có chữ viết hoa tìm trang web mà ta mong muốn Ví dụ: muốn tìm trang "banh.tv" ta tìm từ khóa "BANH.TV" "Banh.tv" Để khắc phục lỗi ta cần chỉnh sửa biểu thức quy cho phù hợp Vì thế, việc có trình biên dịch biểu thức quy làm cho trình hội tụ chậm đến nhận dạng hoàn chỉnh cho địa dễ dàng nhiều so với phải làm thay đổi trực tiếp ngơnngữ lập trình thơng thường Như vậy, phân tích chương trình nguồn thành biểu thức quy Từ thiết lập otomat hữu hạn đốn nhận biểu thức quy tối tiểu (nếu có thể) Kết ta xây dựng phân thích từ vựng ngắn gọn dễ bảo trì Người đọc muốn có danh sách đầy đủ phép toán ký tự viết tắt biểu thức quy có sẵn UNIX tìm thấy chúng trang hướng dẫn sử dụng cho lệnh khác Lệnh lex UNIX phiên GNU flex chấp nhận đầu vào danh sách biểu thức quy UNIX, phần theo sau phần ngoặc mã cho biết phân tích từ vựng làm tìm thấy ví dụ token Cơ sở gọi phân tích từ vựng Vì làm đầu vào mơ tả cấp cao phân tích từ vựng sản xuất từ hàm mà phân tích từ vựng hoạt động Các lệnh lex flex tìm thấy hữu ích ký hiệu 59 biểu thức quy xác cần mơ tả token Các lệnh sử dụng biểu thức quy đến trình chuyển đổi DFA để tạo chức hiệu mà phá vỡ chương trình nguồn thành token Chúng làm cho việc thực phân tích từ vựng dễ thực hơn, trước phát triển cơng cụ dựa biểu thức quy này, thực thủ cơng máy phân tích từ vựng vài tháng Hơn nữa, cần để sửa đổi phân tích từ vựng cho lý gì, thường vấn đề đơn giản để thay đổi một vài biểu thức quy, thay phải vào phần để sửa lỗi Ví dụ 3.2.1 Trong Hình 3.6 ví dụ phần đầu vào lệnh lex mô tả số token tìm thấy ngơnngữ C Dòng xử lý từ khóa khác thực để trả lại số (ELSE ví dụ này) phân tích cú pháp để xử lý tiếp Dòng thứ hai chứa biểu thức quy mơ tả mã định dạng: chữ không nhiều chữ \ chữ số Hành động nhập mã nhận dạng vào bảng chưa có, lex lập token tìm thấy đệm, mảnh mã biết xác mà mã định dạng tìm Cuối cùng, phân tích từ vựng trả số ID, chọn ví dụ để đại diện cho mã định dạng Dòng thứ ba Hình 3.6 ký hiệu >=, toán tử hai đối tượng Ví dụ cuối thấy dấu =, toán tử đối tượng Trong thực tế xuất biểu thức mơ tả từ khóa, ký hiệu dấu chấm câu dấu phẩy, dấu ngoặc đơn, sốsố dãy Hầu số đơn giản, dãy nhiều ký tự cụ thể Tuy nhiên, đa dạng mã định danh đòi hỏi tồn sức mạnh biểu thức quy để mô tả Việc chuyển đổi tập hợp biểu thức, chẳng hạn chuyển đổi Hình 3.6 đến otomat tiến hành mô tả phần trước Chúng ta bắt đầu cách xây dựng otomat cho 60 Hình 3.6: Một ví dụ phần đầu vào lệnh lex kết hợp tất biểu thức Nguyên tắc otomat cho biết số token công nhận Tuy nhiên, làm theo việc xây dựng Định lý 1.3.2 phép hợp biểu thức biết xác token cơng nhận Vấn đề nhiều token nhận lúc Chẳng hạn từ else không biểu diễn biểu thức quy else mà biểu diễn biểu thức cho mã định dang Độ phân giải tiêu chuẩn cho tạo phân tích từ vựng ưu tiên cho biểu thức liệt kê Vì vậy, muốn từ khóa else đặt trước (không thể sử dụng làm mã định dạng), đơn giản liệt kê chúng trước mã định dạng 61 Kết luận Luận văn nghiên cứu ngơnngữquy Các kết luận văn là: Trình bày kiến thức ngơn ngữ, ngơnngữ quy, biểu thức quy otomat hữu hạn Trình bày sốtínhchấtngơnngữ quy: bổ đề Bơm (Định lý 2.1.1), tínhchất đóng (Định lý 2.2.2, Định lý 2.2.3, Định lý 2.2.4, Định lý 2.2.5, Định lý 2.2.6) toán định Trình bày sốứngdụng hữu ích ngơnngữquy hoạt động mạch số, tìm kiếm văn bản, phân tích từ vựng Luận văn khơng có kết Đóng góp luận văn tổng hợp số kết liên quan đến tínhchấtứngdụngngơnngữquy Do thời gian có hạn lần em nghiên cứu đề tài nên khó tránh khỏi thiếu sót Rất mong thầy giáo, giáo bạn góp ý để luận văn em hoàn thiện 62 Tài liệu tham khảo Tài liệu tiếng Việt [1] Đoàn Văn Ban, Nguyễn Hiền Trinh, Giáo trình ngơnngữ hình thức ôtômát, NXBĐH Thái Nguyên, 2010 [2] Đỗ Đức Giáo, Toán rời rạc ứngdụng tin học, NXBGD, 2014 [3] Đặng Huy Ruận, Lý thuyết ngơnngữ hính thức Otomat, NXBĐHQGHN, 2002 Tài liệu tiếng Anh [4] Hopcroft J E., Ullman J D , Formal Languages and Their Relation to Automata, Addison-Wesley Publishing Company, Massachussetts, 1969 [5] Hopcroft J E., Ullman J D, Introduction to Automata Theory, Languages, and Computation, Addision – Wesley Publishing Company, Massachussetts, 1979 [6] Hopcroft J E., Ullman J D, Introduction to Automata Theory, Languages, and Computation, Addision – Wesley Publishing Company, Massachussetts, 2001 63 ... sâu lớp ngôn ngữ thú vị hướng dẫn TS Kiều Văn Hưng, định chọn đề tài nghiên cứu là: Một số tính chất ứng dụng ngơn ngữ quy Mục đích nghiên cứu Tìm hiểu số tính chất ứng dụng ngơn ngữ quy Nhiệm... Vậy L = L1 ∪ L2 ngơn ngữ quy 18 Chương Một số tính chất ngơn ngữ quy Trong chương này, ta khám phá tính chất ngơn ngữ quy Cơng cụ để chứng minh số ngơn ngữ khơng phải ngơn ngữ quy "bổ đề Bơm" giới... DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI ————————————— PHAN THỊ TUYẾT CHINH MỘT SỐ TÍNH CHẤT VÀ ỨNG DỤNG CỦA NGƠN NGỮ CHÍNH QUY LUẬN VĂN THẠC SĨ TOÁN HỌC Chuyên ngành: TOÁN ỨNG DỤNG Mã số: