1. Trang chủ
  2. » Giáo Dục - Đào Tạo

IT4073:NGÔN NGỮ và PHƯƠNG PHÁP DỊCH - Chương 2: Phân tích từ vựng pot

49 2,5K 26

Đ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

Thông tin cơ bản

Định dạng
Số trang 49
Dung lượng 413 KB

Nội dung

IT4073:NGÔN NGỮ PHƯƠNG PHÁP DỊCH Phạm Đăng Hải haipd@soict.hut.edu.vn Chương 2: Phân tích từ vựng Nhiệm vụ phân tích từ vựng Biểu thức quy Ơ tơ mát hữu hạn Phân tích từ vựng ngôn ngữ PL/0 04/02/14 Nhiệm vụ phân tích Mục đích & Nhiệm vụ • Mục đích: – Tìm chuỗi dài ký tự đầu vào, ký tự tương ứng với từ tố trả từ tố • Nhiệm vụ – Duyệt ký tự văn nguồn • Loại bỏ ký tự khơng cần thiết dấu cách, thích, – Xây dựng từ vựng từ ký tự đọc – Nhận dạng từ tố gửi tới pha tiếp Nhận biết từ tố gồm – Nhận biết từ khóa, tên người dùng định nghĩa – Nhận biết số, chuỗi, ký tự – Nhận biết ký tự đặc biệt (+,*, ), ký hiệu kép (:=,!=, ) 04/02/14 Nhiệm vụ phân tích Từ vựng Từ tố • Từ vựng (Lexeme) – Là đơn vị nhỏ ngơn ngữ lập trình • Được coi ký hiệu bảng chữ ngôn ngữ – Được xây dựng từ ký tự ASCII • Từ tố (Token) – Là thuật ngữ dùng từ vựng có ý nghĩa cú pháp • Có thể coi từ vựng từ cụ thể từ điển: “hơm nay”, “trời”, “đẹp”; cịn từ tố loại từ: “trạng từ”, “danh từ”, “tính từ”, 04/02/14 Nhiệm vụ phân tích Từ tố→Ví dụ pos := start + 10 * size; • “pos”, “start”, “size”, “+”, “10”, “*”,”:=“, “;” từ vựng • “pos”, “start”, “size”, → từ vựng thuộc lớp từ tố tên (ident) • ”:=“→ từ vựng từ tố gán (assign) • “10” → từ vựng từ tố số nguyên (number) • “+” → từ vựng từ tố cộng (plus) • “*” → từ vựng từ tố nhân (times) • “;” → từ vựng từ tố chấm phẩy (semicolon) 04/02/14 Nhiệm vụ phân tích Từ tố→Chú ý • Các từ tố Ident, number, plus, assign, người viết trình dịch tự định nghĩa để dễ dàng cho việc mã hóa chương trình Đây việc số hóa ký hiệu • Một từ tố ứng với tập từ vựng khác nên cần thêm số thơng tin khác để biết cụ thể từ vựng – Các chuỗi “19”, “365” chuỗi số, có từ tố “number”, sinh mã cần phải biết rõ giá trị 19 hay 365 • Bộ phân tích từ vựng khơng nhận dạng từ tố mà cịn phải biết thuộc tính tương ứng – Từ tố tác động đến phân tích cú pháp – Thuộc tính sử dụng sinh mã 04/02/14 Nhiệm vụ phân tích Thực Chương trình nguồn Phân tích từ vựng Token getToken() Phân tích cú pháp Bảng ký hiệu • Thực lặp dựa vào yêu cầu từ ptcp – Bộ ptcp cần từ tố gọi getToken() – Nhận y/cầu, pttv đọc ký tự xây dựng xong từ vựng nhận từ tố gặp lỗi • Thường pttv chia thành phần – Đọc ký tự – Xây dựng từ vựng nhận dạng từ tố 04/02/14 Nhiệm vụ phân tích Mẫu (Pattern) • Là luật để mơ tả từ tố – Cơ sở phân biệt & nhận dạng từ tố khác • Chuỗi ký tự thỏa mãn luật⇒có từ tố • Từ tố tên riêng luật mô tả, từ vựng trường hợp thỏa mãn luật • Ví dụ – Luật mơ tả từ tố Ident • Bắt đầu chữ • Tiếp theo tổ hợp chữ cái, chữ số – Luật mơ tả từ tố assign • Bắt đầu ký tự “:”, sau ký tự “=“ • Luật mơ tả biểu thức quy 04/02/14 Chương 2: Phân tích từ vựng Nhiệm vụ phân tích từ vựng Biểu thức quy Ơ tơ mát hữu hạn Phân tích từ vựng ngơn ngữ PL/0 04/02/14 Biểu thức quy Giới thiệu • Ngơn ngữ: Tập hợp câu/ xâu (string) • Câu: Dãy hữu hạn từ/ký hiệu (symbol) • Từ: Được tạo nên từ chữ hữu hạn Ví dụ: – Ngôn ngữ C tập câu lệnh tạo nên chương trình C hợp lệ – Bộ chữ cho ngơn ngữ C tập chữ ASCII • Một ngơn ngữ vơ hạn, hữu hạn • Một ngơn ngữ (có thể vơ hạn) mô tả hữu hạn nhờ sử dụng biểu thức quy : – Mỗi biểu thức đặc trưng cho tập câu/xâu – Chỉ xét xâu có thuộc ngôn ngữ không, chưa xét ý nghĩa xâu 04/02/14 10 Ơ tơ mát hữu hạn Ví dụ - ε ε q0 q1 a q ε b q3 q4 ε q5 ε ε ε q8 ε c q6 q0 a q7 q1 b b q3 c 04/02/14 q2 35 Ơ tơ mát hữu hạn Tối ưu hóa trạng thái OHĐ • Nhiều DFA đốn nhận ngơn ngữ – Cần tìm DFA có trạng thái • Dễ dàng biểu diễn máy tính • Trạng thái phân biệt – Hai trạng thái p q không phân biệt ∀ xâu w∈∑*, (pw,qw)⇒*(p’,q’)∈FxF∪(Q-F)x(Q-F) pw,qw dẫn tới trạng thái cuối không – Ví dụ: ε xâu phân biệt trạng thái kết thúc khơng kết thúc • Ngun tắc: – Phân hoạch Q thành nhóm t/thái khơng phân biệt – Thay nhóm trạng thái 04/02/14 36 Ơ tơ mát hữu hạn Tối ưu hóa trạng thái OHĐ 1.Chia Q thành nhóm F Q - F 2.Giả thiết tồn nhóm A1, A2,…An • Xét nhóm Am = {qm1, qmk } • Xét a∈∑; pmi = δ(qmi, a) ; pmj = δ(qmj, a) • Nếu ∃ a ∈∑ để pmi pmj phân biệt (bởi xâu ω ): qmi qmj phân biệt (bởi xâu aω ) • Nếu ∀ a ∈∑ pmi pmj không phân biệt (∀ xâu ω ) qmi qmj không phân biệt (∀ xâu aω ) 3.Thuật tốn dừng khơng tạo thêm nhóm 04/02/14 37 Ơ tơ mát hữu hạn Ví dụ a q1 a q0 b b a q2 q3 a a q4 a q5 a b q0 a q1 q3 b q2 04/02/14 a a 38 Ơ tơ mát hữu hạn Xây dựng OHK từ biểu thức quy • Sử dụng biểu thức quy mơ tả NNCQ – Trong chương trình dịch, mơ tả từ vựng – Ví dụ: Tên : a(a+b)* //a chữ cái, b: chữ số Số thực tĩnh: b+| b+ b+ //b: Chữ số • Ngơn ngữ quy đốn nhận FA – Cần xây dựng FA đốn nhận ngơn ngữ mơ tả biểu thức quy 04/02/14 39 Ơ tơ mát hữu hạn Thuật tốn ε : Là btcq ứng với FA q0 ∅ : Là btcq ứng với FA q0 a∈∑: Là btcq ứng với FA q0 04/02/14 a q 40 Ơ tơ mát hữu hạn Thuật toán q0 r Là btcq ứng với FA Mr s Là btcq ứng với FA Ms r+s r.s r* 04/02/14 q0 q’0 Mr ε Mr q0 F ε F q0 ε q0 Mr ε F F Ms q0 F Ms q0 ε ε q’0 Mr F Ms ε F f 41 Ơ tơ mát hữu hạn Ví dụ Xây dựng DFA đốn nhận NNCQ biểu diễn btcq (0+1)*011 1 q0 0 q1 04/02/14 q3 q2 q4 42 Ơ tơ mát hữu hạn Thuật tốn đốn nhận xâu OHĐ • Phương pháp phân tích bảng – Dựa giải thuật tổng quát để đoán nhận DFA – Ưu điểm: • • Chương trình độc lập với DFA Dễ biến đổi, không cần sửa lại chương trình – Nhược điểm: • • Khó khăn lập bảng Kích thước bảng lớn • Phương pháp diễn giải – Thực diễn giải sơ đồ – Dễ viết, c\trình gắn với đồ thị dich chuyển – Được sử dụng để xây dựng phân tích từ vựng 04/02/14 43 Chương 2: Phân tích từ vựng Nhiệm vụ phân tích từ vựng Biểu thức quy Ơ tơ mát hữu hạn Phân tích từ vựng ngơn ngữ PL/0 04/02/14 44 Phân tích từ vựng ngơn ngữ PL/0 mở rộng Các từ tố PL/0 mở rộng • Số ngun • Định danh • Từ khóa: begin, end, if, then, while, do, call, const, var, procedure, program, else, for, to • Dấu phép tốn: – số học: – so sánh: >= + - */ = • Dấu phân cách: • Dấu phép gán: 04/02/14 != < ( ) : ; > ‘ : nextChar(); if(Ch == ‘=‘) { nextChar(); return Geq;} else return Gtr; … } 04/02/14 48 Phân tích từ vựng ngơn ngữ PL/0 mở rộng Nhận dạng từ tố Xây dựng xong từ vựng, cần nhận dạng từ tố – Là tên trạng thái cuối Ơ-tơ-mát – Nếu Ơ-tơ-mát kết thúc trạng thái ident, cần kiểm tra có phải từ khóa • Dùng kỹ thuật bảng chuyển đổi Chú ý: Với từ tố ident number, cần phải ghi nhận giá trị từ vựng tương ứng 04/02/14 BEGIN → KW_BEGIN CALL → … KW_CALL VAR → KW_VAR WHILE → KW_WHILE 49 .. .Chương 2: Phân tích từ vựng Nhiệm vụ phân tích từ vựng Biểu thức quy Ơ tơ mát hữu hạn Phân tích từ vựng ngôn ngữ PL/0 04/02/14 Nhiệm vụ phân tích Mục đích & Nhiệm vụ... thức quy 04/02/14 Chương 2: Phân tích từ vựng Nhiệm vụ phân tích từ vựng Biểu thức quy Ơ tơ mát hữu hạn Phân tích từ vựng ngơn ngữ PL/0 04/02/14 Biểu thức quy Giới thiệu • Ngơn ngữ: Tập hợp câu/... S → a |aA A → aA | bA | a | b 04/02/14 18 Chương 2: Phân tích từ vựng Nhiệm vụ phân tích từ vựng Biểu thức quy Ơ tơ mát hữu hạn Phân tích từ vựng ngơn ngữ PL/0 04/02/14 19 Ơ tơ mát hữu hạn Mơ

Ngày đăng: 01/04/2014, 23:20

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w