TRƢỜNG ĐẠI HỌC HÀNG HẢI BỘ MÔN: KHOA HO ̣ C MA ́ Y TI ́ NH KHOA: CÔNG NGHỆ THÔNG TIN BÀI GIẢNG NGÔN NGỮ HÌNH THỨC VÀ ÔTÔMAT Ngôn ngữ hình thức và Ôtômat 17204 TRÌNH ĐẠI HỌC CHÍNH QUY DÙNG CHO SV NGÀNH : CÔNG NGHỆ THÔNG TIN HẢI PHÒNG - 2008 Otomat i ĐỀ CƢƠNG CHI TIẾT Tên học phần: mat Loại học phần: 1 Bộ môn phụ trách giảng dạy: Khoa phụ trách: CNTT Mã học phần: 17204 Tổng số TC: 2 45 45 0 0 0 0 Điều kiện tiên quyết: Mục tiêu của học phần: - - Nội dung chủ yếu Gồm các phần: - - - - Nội dung chi tiết của học phần: TÊN CHƢƠNG MỤC PHÂN PHỐI SỐ TIẾT TS LT TH/Xemina BT KT MỞ ĐẦU Chƣơng I. Văn phạm và ngôn ngữ. 05 04 01 1.1. 1.2. 1.3. 1.4. 1.5. Chƣơng II. Ngôn ngữ chính quy và otomat hữu hạn 16 12 03 01 2.12. Ngôn ng Otomat ii TÊN CHƢƠNG MỤC PHÂN PHỐI SỐ TIẾT TS LT TH/Xemina BT KT Chƣơng III. Ngôn ngữ phi ngữ cảnh và otomat đẩy xuống. 09 06 02 01 Chƣơng IV: Cơ bản về chƣơng trình dịch 15 12 02 01 4.1. 4.2.Ch 4.2.1. 4.2.2. 4.2.3. 4.2.4. 4.2.5. 4.3. 4.4. Nhiệm vụ của sinh viên : Tài liệu học tập : - Ngôn ngữ hình thức - Lý thuyết otomat và thuật toán - Ngôn ngữ hình thức - Giáo trình chương trình dịch - Phân tích cú pháp Hình thức và tiêu chuẩn đánh giá sinh viên: - - Thang điểm: Thang điểm chữ A, B, C, D, F Điểm đánh giá học phần: Z = 0,2X + 0,8Y. chính thức và thống nhất , Ngày phê duyệt: / /2010 Trƣởng Bộ môn: Thạc sỹ Nguyễn Hữu Tuân Otomat iii MỤC LỤC Trang Chƣơng 1: Văm phạm và ngôn ngữ 1 1 1. 2 1. 4 1. 6 1. 8 8 Chƣơng 2: Ngôn ngữ chính quy và Otomat hữu hạn 9 9 2. 2 10 18 26 30 30 30 31 31 31 31 2. 12. - 31 31 Chƣơng 3: Ngôn ngữ phi ngữ cảnh và Otomat đẩy xuống 32 3. 1. 32 3. 2. 32 3. 3. 32 3. 4. Khái 32 32 Chƣơng 4: Cơ bản về chƣơng trình dịch 33 4. 1. 33 4. 2. 33 33 37 44 50 58 58 60 62 63 64 Otomat 1 CHƢƠNG 1: VĂN PHẠM VÀ NGÔN NGỮ Kiến thức cơ bản: 1.1. Bảng chữ cái, từ, ngôn ngữ 1.1.1. = {0,1} 1.1.2. 1 , a 2, n (a i , i=1 . = {0,1} a 1 = 0, a 2 = 1, a 3 = 00, a 4 = : = {a,b,c} a 1 = aabb, a 2 = ac, | a 1 | = 4, |a 2 | = 2 Otomat 2 , thì a . = {0,1} , a 1 = 0110 , a *. + + = * \ {} 1.1.3. . * . = {a,b,c} A = {x * *. . . 1.2. Tích ghép, phép chia, phép soi gƣơng 1.2.1. Tích ghép hai xâu = a 1 a 2 a a n , = a 1 a 2 m ( a i ) và . = . = a 1 a 2 a 3 n a 1 a 2 m ={0,1} = 011, =1101 = 0111101 + + () = () Otomat 3 + chính nó . = . = =. 1.2.2. Chia xâu * ) + Phép chia trái cho x x\ Z = y Z /y = x = {0,1}, x = 10, y = 11 Z = x.y = 1011 x\ Z = 11 Z /y = 10 1.2.3. = a 1 a 2 m-1 a m * = a m a m-1 2 a 1 | | = | | 1.3. Các phép toán trên ngôn ngữ C = A B = {x */x B} = {a,b,c} A = {a, b, ab, ac, cb}, B = {aa, bb, cc} Otomat 4 C = A B = {a, b, ab, ac, cb, aa, bb, cc} A B = B A (A B) C= A (B C) C = A B = {x * | x A và x B} = {a, b} A = {a, ab, ac, cb}, B = {b, ab, cb, aa, bc} C = A B = {ab, cb} C (A B) = B (A C) Tính giao hoán A B = B A A = A = 1.3.3. C=A.B={z *| z=x.y | x A, y B} = {a, b, c} A = {a, b, ab, ac}, B{c, cb} C = A.B = {ac, bc, abc, acc, acb, bcb, abcb. accb} - A.B B.A - A.(B.C) = (A.B).C - A.(B C) = (A.B) (A.C) Otomat 5 - n 1.3.4. C = A\B = {x * | x A, x B} = {a, b, c} A = {a, b, ac, bc, aa}, B = {b, bc, ab, bb} C = B\A = {b, ab, bb} 1.3.5. A = C B = { x */ x B} Cho B = {a, bc}. A = {x * | x a, x bc}. 1.3.6. . *| x A, y \ A . * | x A, y = {a, b, c} A = {a, bc, abc, aba} , B = {, b, ab, cbc} B\ A = { a, bc, abc, aba, c} A/ B = {a, bc, abc, aba} 1.3.7. . Otomat 6 B = Ã = { * / A }. = {0, 1} A = {0, 1, 10, 110} B = Ã ={0, 1, 01, 011} 1.3.8. . A * = { } A A A n - (A * )* = A * - {} * = {} - () * = {} . } - () + = . 1.4. Văn phạm 1.4.1. Định nghĩa văn phạm cấu trúc (Grammar) và c n trung gian Quá trình th . Tài liệu học tập : - Ngôn ngữ hình thức -