1. Trang chủ
  2. » Giáo án - Bài giảng

ÔN tập môn AUTOMAT và TRÌNH BIÊN DỊCH

59 990 0

Đ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 59
Dung lượng 0,92 MB

Nội dung

ÔN TẬP MÔN AUTOMAT VÀ TRÌNH BIÊN DỊCH Tiến sĩ: Lê Minh Trung Khoa CNTT, Đại học Sư phạm Tp HCM NÔI DUNG ÔN TẬP  Ngôn ngữ và văn phạm phi ngữ cảnh  Automat đẩy xuống  Đại cương về trình biên dịch  Thể phân tích cú pháp (parser)  Sinh mã trung gian VĂN PHẠM PHI NGỮ CẢNH  Là bộ bốn G = (V, Σ, R, S)  V là tập tất cả các kí hiệu  Σ là tập các kí hiệu tận (terminal)  R là tập các luật Aα  S ϵ V\ Σ là kí hiệu bắt đầu  Văn phạm phi ngữ cảnh G có thể sinh ra ngôn ngữ phi ngữ cảnh L = L(G) CHỨNG MINH CHUỖI SINH RA TỪ VĂN PHẠM  Cho văn phạm:  S  aAa | bAb| e, ASS  Trình bày quá trình suy diễn ra chuỗi baabbb  S  bAb  bSSb  baAaSb  baaSb  baabSbb baabbb CHO BIẾT NGÔN NGỮ SINH RA BỞI VĂN PHẠM  Cho văn phạm G  S aSa | bSb | aSb | bSa |e  Cho biết văn phạm này sinh ra ngôn ngữ nào?  S a1Sb1  a1a2Sb2b1  … a1a2…akSbk…b2b1  a1a2… akbk…b2b1 với a1,a2, ,ak,bk, ,b2,b1 ϵ {a,b} L(G) = {w ϵ {a,b}*: w có một số chẵn kí tự} = (aa ᴗ ab ᴗ ba ᴗ bb)* THIẾT KẾ VĂN PHẠM  Thiết kế các văn phạm sinh ra các ngôn ngữ sau  {wcwR: w ϵ {a,b}*}  {wwR: w ϵ {a,b}*}  {w ϵ {a,b}*: w=wR}  S  aSa | bSb | c  S  aSa | bSb | e  S  aSa | bSb | a | b | e THIẾT KẾ VĂN PHẠM  Thiết kế các văn phạm sinh ra các ngôn ngữ sau a) {ambn: m≥n} b) {uavb: u,v ϵ {a,b}* và |u| = |v|} c) {ambn: m≤2n} {ambn: m≥n}  S aSb | aS |e {uavb: u,v ϵ {a,b}* và |u| = |v|}  SAb  AaAb | aAa| bAa| bAb | a {ambn: m≤2n}  SaSbb | aSb | e [...]... THIẾT KẾ AUTOMAT CHẤP NHẬN NGÔN NGỮ  Thiết kế automat chấp nhận ngôn ngữ  L = {ambncpdq: m+n = p+q}  L = {w ϵ {a,b}*: số chữ a = số chữ b}  L = {w = uavb: u,v ϵ {a,b}* và |u| = |v|} ĐẠI CƯƠNG VỀ TRÌNH BIÊN DỊCH 1 2 3 4 5 6 Thể phân tích từ vựng Thể phân tích cú pháp Thể phân tích ngữ nghĩa Sinh mã trung gian Tối ưu hóa mã trung gian Sinh ra mã máy Cần phân biệt trình biên dịch và trình thông dịch THỂ... M=(K,Σ,Γ,Δ,s,F)  K tập các trạng thái  Σ tập các kí hiệu trên vùng đệm nguyên liệu  Γ tập các kí hiệu trên ngăn xếp  s trạng thái bắt đầu  F tập các trạng thái kết thúc  Δ là các quan hệ chuyển có dạng ((p,a,α),(q,β)) CHUỖI CHẤP NHẬN BỞI AUTOMAT  Cho automat có tập quan hệ chuyển sau  ((s,a,e),(s,a)), ((s,e,e),(f,e)), ((f,b,a),(f,e))  F = {f}  Chuỗi aaabbb có được chấp nhận bởi automat không?  Ngôn ngữ... KẾ AUTOMAT CHẤP NHẬN NGÔN NGỮ  Thiết kế automat chấp nhận ngôn ngữ  L= {w ϵ {a,b}*: số chữ a trong w bằng hai lần số b trong w}  ((s,b,e),(s,bb)), ((s,b,b),(s,bbb)), ((s,a,b),(s,e)), ((s,a,e), (s,a)), ((s,a,a),(s,aa)), ((s,b,aa),(s,e)), ((s,b,a),(s,b)), ((s,e,e),(f,e))  b vùng đệm = 2 b ngăn xếp = 2 a vùng đệm = 2 a ngăn xếp THIẾT KẾ AUTOMAT CHẤP NHẬN NGÔN NGỮ  Thiết kế automat chấp nhận ngôn... nhận bởi automat trên là ngôn ngữ nào? Trạng thái Chuỗi nguyên liệu Ngăn xếp s aaabbb s aabbb a s abbb aa s bbb aaa f bbb aaa f bb aa f b b f e e Hoạt động của automat này như sau: - Đẩy các chữ a đầu tiên vào ngăn xếp - Tự động chuyển sang trạng thái f - Gỡ các chữ b trong vùng đệm nguyên liệu nếu gặp a ở đỉnh ngăn xếp Ngôn ngữ chấp nhận bởi automat: L(M) = {anbn: n ≥ 0} NGÔN NGỮ CHẤP NHẬN BỞI AUTOMAT. .. automat: L(M) = {anbn: n ≥ 0} NGÔN NGỮ CHẤP NHẬN BỞI AUTOMAT  Cho automat có tập quan hệ chuyển sau:  ((s,a,e),(s,a)), ((s,b,e),(s,b)), ((s,a,e),(f,e)), ((f,b,a),(f,e)), ((f,b,b),(f,e)), ((f,a,a),(f,e)), ((f,a,b),(f,e)) và F ={f}  Cho biết ngôn ngữ chấp nhận bởi automat trên? Hoạt động của automat này như sau: - Đầu tiên, đẩy các chữ a,b vào ngăn xếp - Tự động chuyển sang trạng thái f khi gặp một a nào... sang trạng thái f khi gặp một a nào đó - Khi ở trạng thái f, gỡ các chữ b,a trong ngăn xếp nếu gặp các chữ b,a trong vùng đệm Ngôn ngữ chấp nhận bởi automat: L(M) = {uav: u,v ϵ {a,b}* và |u| = |v|} THIẾT KẾ AUTOMAT CHẤP NHẬN NGÔN NGỮ  Thiết kế các automat chấp nhận các ngôn ngữ sau a) L = {wcwR: w ϵ {a,b}*} b) L = {w ϵ {a,b}*: w=wR} a) ((s,a,e),(s,a)), ((s,b,e),(s,b)), ((s,c,e),(f,e)), ((f,a,a),(f,a)),...BÀI TẬP THÊM  Thiết kế văn phạm chấp nhận ngôn ngữ  {ambncp:m+n = p}  {ambncpdq:m+n = p+q}  {uav: u,v ϵ{a,b}* và |u| = |v|} CÂY PHÂN TÍCH  Tóm tắt nhiều sự suy diễn cho ra cùng một chuỗi kết quả  SSS | (S) | e  S SS(S)S()S()(S)()() (suy diễn cực trái)  SSSS(S)S()(S)()()() (suy diễn cực phải) CÂY PHÂN TÍCH  Vẽ cây phân tích cho một chuỗi đầu vào id * (id + id) AUTOMAT ĐẨY... ngăn xếp = 2 a vùng đệm = 2 a ngăn xếp THIẾT KẾ AUTOMAT CHẤP NHẬN NGÔN NGỮ  Thiết kế automat chấp nhận ngôn ngữ  L= {w ϵ {a,b}*: số chữ b trong w bằng hai lần số a trong w}  ((s,e,e),(s,c)), ((s,b,c),(p,**c)), ((p,b,*),(p,***)), ((p,a,**),(p,*)), ((p,a,*c),(s,c)), ((s,a,c), (q,*c)), ((q,a,*),(q,**)), ((q,b,***),(q,*)), ((q,b,**c),(s,c)) ,((q,b,*c),(p,*c)) và F={s}  b vùng đệm = 2 *  a vùng đệm = *... ((s,e,e),(f,e)), ((s,a,e),(f,a)), ((s,b,e),(f,b)) , ((f,a,a),(f,e)), ((f,b,b),(f,e)) F = {f} THIẾT KẾ AUTOMAT CHẤP NHẬN NGÔN NGỮ  Thiết kế các automat chấp nhận các ngôn ngữ sau  L = {w =ambn: m≤n≤2m}  ((s,a,e),(s,aa)), ((s,e,e),(f,e)), ((f,b,a),(f,e)), ((f,b,aa),(f,e))  Nguyên tắc hoạt động:  Thêm 2m chữ b vào ngăn xếp  Tự động chuyển sang trạng thái f (khi tiêu thụ hết a)  Ở trạng thái f, gặp b trong... phạm bị mơ hồ hay đa nghĩa vì câu lệnh có hai cây phân tích if E1then if E2 then S1 else S2 LOẠI BỎ TÍNH ĐA NGHĨA  Không có thuật toán tổng quát để loại bỏ tính đa nghĩa Thông thường chỉ dựa vào kinh nghiệm  Với văn phạm trên, có thể loại bỏ tính đa nghĩa bằng cách phân biệt matched_stmt và open_stmt if E1then if E2 then S1 else S2 sẽ chỉ có một cách hiểu duy nhất KHỬ ĐÊ QUI TRÁI  Một văn phạm được . ÔN TẬP MÔN AUTOMAT VÀ TRÌNH BIÊN DỊCH Tiến sĩ: Lê Minh Trung Khoa CNTT, Đại học Sư phạm Tp HCM NÔI DUNG ÔN TẬP  Ngôn ngữ và văn phạm phi ngữ cảnh  Automat đẩy xuống  Đại cương về trình biên. b,a trong vùng đệm Ngôn ngữ chấp nhận bởi automat: L(M) = {uav: u,v ϵ {a,b}* và |u| = |v|} THIẾT KẾ AUTOMAT CHẤP NHẬN NGÔN NGỮ  Thiết kế các automat chấp nhận các ngôn ngữ sau a) L = {wcwR:. ((s,e,e),(f,e)), ((f,b,a),(f,e))  F = {f}  Chuỗi aaabbb có được chấp nhận bởi automat không?  Ngôn ngữ chấp nhận bởi automat trên là ngôn ngữ nào? Trạng thái Chuỗi nguyên liệu Ngăn xếp s aaabbb s aabbb

Ngày đăng: 26/01/2015, 17:19

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w