Hệ thống phân tích từ vựng

51 559 0
Hệ thống phân tích từ vựng

Đ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

Tài liệu này dành cho sinh viên, giáo viên khối ngành công nghệ thông tin tham khảo và có những bài học bổ ích hơn, bổ trợ cho việc tìm kiếm tài liệu, giáo án, giáo trình, bài giảng các môn học khối ngành công nghệ thông tin

Nguyễn Phương Thái Bộ môn Khoa học Máy tính http://www.coltech.vnu.vn/~thainp/ Nội dung  Phân tích từ vựng: từ tố, từ vị, mẫu  REs, FA (DFA, NFA)  Nâng cao: REs  NFA; NFA  DFA; DFA  minimal- state DFA  Một số bài tập 22/10/14 2Nguyễn Phương Thái - Coltech - Compiler 2009 Vai trò của hệ phân tích từ vựng (scanner)  Từ tố trong ngôn ngữ lập trình cũng giống như từ trong ngôn ngữ tự nhiên  Hệ phân tích từ vựng hoạt động như một thủ tục được gọi bởi hệ phân tích cú pháp khi nó cần một từ tố mới trong dòng vào (từ tố) (lỗi từ vựng) (mã nguồn) (cây cú pháp) 22/10/14 3Nguyễn Phương Thái - Coltech - Compiler 2009 Từ tố (token)  Từ tố trong VC được phân loại như sau:  các định danh (vd sum, i, j)  các từ khóa (vd int, if hay while)  các toán tử (vd “+” hay “ ”, “<=”)∗  các ký hiệu phân tách (vd “{”, ‘}”, “;”)  các hằng (nguyên, thực, logic, xâu)  Tập từ tố phụ thuộc vào ngôn ngữ lập trình: chẳng hạn như trong C toán tử gán là = còn trong Pascal là :=  Tương tự, trong ngôn ngữ tự nhiên, các loại từ tố: động từ, danh từ, tính từ, v.v. Tập các từ phụ thuộc vào ngôn ngữ cụ thể 22/10/14 4Nguyễn Phương Thái - Coltech - Compiler 2009 Từ vị (lexeme)  Từ vị của một từ tố: chuỗi ký tự tạo thành từ tố  Ví dụ: 22/10/14 5Nguyễn Phương Thái - Coltech - Compiler 2009 Mẫu (từ tố)  Mẫu: luật mô tả tập các từ vị mà có thể biểu diễn một từ tố cụ thể  Mẫu khớp với mỗi xâu ký tự trong tập đó  Biểu diễn hình thức cho từ tố là cần thiết REs, NFA, DFA⇒ Loại từ tố Mẫu Từ vị INTLITERAL a string of decimal digits 127, 0 FLOATLITERAL fill a verbal spec here for C! 127.1, .1, 1.1e2 ID a string of letters, digits and underscores beginning with a letter or underscore sum, line num + the character ‘+’ + while the letters ‘w’, ‘h’, ‘i’, ’l’, ’e’ while 22/10/14 6Nguyễn Phương Thái - Coltech - Compiler 2009 Các biểu thức chính qui (REs) cho số nguyên và số thực trong C 22/10/14 7Nguyễn Phương Thái - Coltech - Compiler 2009 Các máy hữu hạn trạng thái (FSMs) cho số nguyên và số thực 22/10/14 8Nguyễn Phương Thái - Coltech - Compiler 2009 Nội dung  Phân tích từ vựng: từ tố, từ vị, mẫu  REs, FA (DFA, NFA)  Nâng cao: REs  NFA; NFA  DFA; DFA  minimal- state DFA  Một số bài tập 22/10/14 9Nguyễn Phương Thái - Coltech - Compiler 2009 REs, DFA và NFA  Định nghĩa REs, DFA và NFA  REs NFA (⇒ Thompson’s construction, Algorithm 3.3, Red Dragon/Algorithm 3.23, Purple Dragon)  NFA DFA (⇒ subset construction, Algorithm 3.2, Red Dragon/Algorithm 3.20, Purple Dragon)  DFA minimal-state DFA (⇒ state minimisation, Algorithm 3.6, Red Dragon/Algorithm 3.39, Purple Dragon) 22/10/14 10Nguyễn Phương Thái - Coltech - Compiler 2009 [...]...Ứng dụng của biểu thức chính qui  Bất cứ nơi nào mà mẫu văn bản cần được mô tả  Hệ thống, cơ sở dữ liệu và quản trị mạng Unix: grep,     fgrep, egrep, sed, awk Các văn bản HTML: Javascript và VBScript Perl: J Friedl, Mastering Regular Expressions, O’reilly, 1997 Mô tả từ tố cho các chương trình sinh hệ phân tích từ vựng (lex, JLex, v.v.) http://www.robotwisdom.com/net/regexres.html 22/10/14 Nguyễn... 2 hay 3 (gồm cả ε) 22/10/14 Nguyễn Phương Thái - Coltech - Compiler 2009 34 Nội dung  Phân tích từ vựng: từ tố, từ vị, mẫu  REs, FA (DFA, NFA)  Nâng cao: REs  NFA; NFA  DFA; DFA  minimal- state DFA  Một số bài tập 22/10/14 Nguyễn Phương Thái - Coltech - Compiler 2009 35 Thuật toán Thompson để xây dựng NFA từ các RE  Điều khiển bởi cú pháp  Quy nạp: Các trường hợp (case) trong xây dựng NFA... tối     thiểu hóa giá thành) Lý thuyết ngôn ngữ Độ phức tạp tính toán Các chương trình sinh hệ phân tích từ vựng (lex and JLex) JCT: //humboldt.sunyit.edu/JCT 22/10/14 Nguyễn Phương Thái - Coltech - Compiler 2009 12 Bộ chữ cái, xâu ký tự và ngôn ngữ  Bộ chữ cái ∑: tập hữu hạn ký hiệu  Bộ chữ cái nhị phân {0,1} (cho ngôn ngữ máy)  Bộ chữ cái ASCII (cho các ngôn ngữ bậc cao)  Xâu ký tự: chuỗi... 22/10/14 Nguyễn Phương Thái - Coltech - Compiler 2009 27 Biểu diễn và chấp nhận  Đồ thị chuyển:  Chấp nhận: Một Ôtômát hữu hạn chấp nhận một xâu vào x nếu và chỉ nếu có đường đi nào đó trong đồ thị chuyển từ trạng thái bắt đầu đến trạng thái chấp nhận nào đó, đồng thời các nhãn trên đường đi đó tạo thành x 22/10/14 Nguyễn Phương Thái - Coltech - Compiler 2009 28 Ôtômát hữu hạn này đoán nhận ngôn ngữ nào?... L(0(0|1)∗) = L(0)L((0|1)∗) = {0}L(0|1)∗ = {0}(L(0) ∪ L(1))∗ = {0}({0} ∪ {1})∗ = {0}{0, 1}∗ = {0}{ε, 0, 1, 00, 01, 10, 11, } = {0, 00, 01, 000, 001, 010, 011, } RE trên mô tả tập các xâu ký tự nhị phân bắt đầu với một số 0 22/10/14 Nguyễn Phương Thái - Coltech - Compiler 2009 22 Các ví dụ khác: ∑ = {0, 1} 22/10/14 Nguyễn Phương Thái - Coltech - Compiler 2009 23 Giải thích một số ký hiệu  Một hay . trò của hệ phân tích từ vựng (scanner)  Từ tố trong ngôn ngữ lập trình cũng giống như từ trong ngôn ngữ tự nhiên  Hệ phân tích từ vựng hoạt động như một thủ tục được gọi bởi hệ phân tích cú. nhiên, các loại từ tố: động từ, danh từ, tính từ, v.v. Tập các từ phụ thuộc vào ngôn ngữ cụ thể 22/10/14 4Nguyễn Phương Thái - Coltech - Compiler 2009 Từ vị (lexeme)  Từ vị của một từ tố: chuỗi. khi nó cần một từ tố mới trong dòng vào (từ tố) (lỗi từ vựng) (mã nguồn) (cây cú pháp) 22/10/14 3Nguyễn Phương Thái - Coltech - Compiler 2009 Từ tố (token)  Từ tố trong VC được phân loại như

Ngày đăng: 22/10/2014, 19:07

Mục lục

  • Phân tích từ vựng

  • Nội dung

  • Vai trò của hệ phân tích từ vựng (scanner)

  • Từ tố (token)

  • Từ vị (lexeme)

  • Mẫu (từ tố)

  • Các biểu thức chính qui (REs) cho số nguyên và số thực trong C

  • Các máy hữu hạn trạng thái (FSMs) cho số nguyên và số thực

  • Slide 9

  • REs, DFA và NFA

  • Ứng dụng của biểu thức chính qui

  • Ứng dụng của ôtômát hữu hạn

  • Bộ chữ cái, xâu ký tự và ngôn ngữ

  • Ví dụ về ngôn ngữ

  • Các thuật ngữ về xâu ký tự (Figure 3.7 of Text)

  • Ghép xâu

  • Các phép toán trên ngôn ngữ (Figure 3.8 of Text)

  • Ví dụ về các phép toán trên ngôn ngữ

  • Slide 19

  • Các biểu thức chính qui – Regular Expressions (REs) – trên bộ chữ cái ∑

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

Tài liệu liên quan