giáo án: PHÂN TÍCH CÚ PHÁP

51 642 3
giáo án: PHÂN TÍCH  CÚ  PHÁP

Đ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

giáo án: PHÂN TÍCH CÚ PHÁP

CHƯƠNG IV PHÂN TÍCH CÚ PHÁP Nội dung chính: Mỗi ngơn ngữ lập trình có quy tắc diễn tả cấu trúc cú pháp chương trình có định dạng Các cấu trúc cú pháp mô tả văn phạm phi ngữ cảnh Phần đầu chương nhắc lại khái niệm văn phạm phi ngữ cảnh, cách tìm văn phạm tương đương khơng cịn đệ quy trái mơ hồ Phần lớn nội dung chương trình bày phương pháp phân tích cú pháp thường sử dụng trình biên dịch: Phân tích cú pháp từ xuống (Top down) Phân tích cú pháp từ lên (Bottom up) Các chương trình nguồn chứa lỗi cú pháp Trong q trình phân tích cú pháp chương trình nguồn, bất tiện chương trình dừng thơng báo lỗi gặp lỗi Vì cần phải có kỹ thuật để vượt qua lỗi cú pháp để tiếp tục trình dịch - Các kỹ thuật phục hồi lỗi Từ văn phạm đặc tả ngôn ngữ lập trình lựa chọn phương pháp phân tích cú pháp phù hợp, sinh viên tự xây dựng phân tích cú pháp Phần cịn lại chương giới thiệu công cụ Yacc Sinh viên sử dụng cơng cụ để tạo phân tích cú pháp thay phải tự cài đặt Mơ tả chi tiết Yacc tìm thấy phần phụ lục B Mục tiêu cần đạt: Sau học xong chương này, sinh viên phải nắm được: • Các phương pháp phân tích cú pháp chiến lược phục hồi lỗi • Cách tự cài đặt phân tích cú pháp từ văn phạm phi ngữ cảnh xác định • Cách sử dụng cơng cụ Yacc để sinh phân tích cú pháp Kiến thức bản: Sinh viên phải có kiến thức về: • Văn phạm phi ngữ cảnh (Context Free Grammar – CFG), Automat đẩy xuống (Pushdown Automata – PDA) • Cách biến đổi từ CFG PDA Tài liệu tham khảo: [1] Automata and Formal Language An Introduction – Dean Kelley – Prentice Hall, Englewood Cliffs, New Jersey 07632 [2] Compilers : Principles, Technique and Tools - Alfred V.Aho, Jeffrey D.Ullman - Addison - Wesley Publishing Company, 1986 [3] Compiler Design – Reinhard Wilhelm, Dieter Maurer - Addison - Wesley Publishing Company, 1996 [4] Design of Compilers : Techniques of Programming Language Translation - Karen A Lemone - CRC Press, Inc, 1992 [5] Modern Compiler Implementation in C - Andrew W Appel - Cambridge University Press, 1997 65 I VAI TRỊ CỦA BỘ PHÂN TÍCH CÚ PHÁP Vai trị phân tích cú pháp Bộ phân tích cú pháp nhận chuỗi token từ phân tích từ vựng xác nhận chuỗi sinh từ văn phạm ngôn ngữ nguồn cách tạo phân tích cú pháp cho chuỗi Bộ phân tích cú pháp có chế ghi nhận lỗi cú pháp theo phương thức linh hoạt có khả phục hồi lỗi thường gặp để tiếp tục xử lý phần cịn lại chuỗi nhập Chương trình nguồn Bộ phân tích từ vựng token Bộ phân tích cú Lấy token pháp tiếp Biểu diễn Cây Phần phân tích lại trung gian cú pháp front end Bảng ký hiệu Hình 4.1 - Vị trí phân tích cú pháp mơ hình trình biên dịch Xử lý lỗi cú pháp Chương trình nguồn chứa lỗi nhiều mức độ khác nhau: - Lỗi từ vựng danh biểu, từ khóa, tốn tử viết không - Lỗi cú pháp ghi biểu thức tốn học với dấu ngoặc đóng mở không cân - Lỗi ngữ nghĩa tốn tử áp dụng vào tốn hạng khơng tương thích - Lỗi logic thực lời gọi đệ qui kết thúc Phần lớn việc phát phục hồi lỗi trình biện dịch tập trung vào giai đọan phân tích cú pháp Vì thế, xử lý lỗi (error handler) trình phân tích cú pháp phải đạt mục đích sau: ƒ Ghi nhận thông báo lỗi cách rõ ràng xác ƒ Phục hồi lỗi cách nhanh chóng để xác định lỗi ƒ Khơng làm chậm tiến trình chương trình Các chiến lược phục hồi lỗi Phục hồi lỗi kỹ thuật vượt qua lỗi để tiếp tục trình dịch Nhiều chiến lược phục hồi lỗi dùng phân tích cú pháp Mặc dù khơng có chiến lược chấp nhận hồn toàn, số chúng áp dụng rộng rãi Ở đây, giới thiệu số chiến lược : a Phương thức "hoảng sợ" (panic mode recovery): Ðây phương pháp đơn giản cho cài đặt dùng cho hầu hết phương pháp phân tích Khi 66 lỗi phát phân tích cú pháp bỏ qua ký hiệu tìm thấy tập hợp định token đồng (synchronizing tokens), token đồng thường dấu chấm phẩy (;) end b Chiến lược mức ngữ đoạn (phrase_level recovery): Khi phát lỗi, phân tích cú pháp thực hiệu chỉnh cục phần lại dòng nhập Cụ thể thay phần đầu lại chuỗi ký tự tiếp tục Chẳng hạn, dấu phẩy (,) dấu chấm phẩy (;), xóa dấu phẩy lạ thêm vào dấu chấm phẩy c Chiến lược dùng luật sinh sửa lỗi (error production): Thêm vào văn phạm ngôn ngữ luật sinh lỗi sử dụng văn phạm để xây dựng phân tích cú pháp, sinh đốn lỗi thích hợp để cấu trúc lỗi nhận biết dòng nhập d Chiến lược hiệu chỉnh tồn cục (global correction): Một cách lý tưởng trình biên dịch tạo số thay đổi xử lý lỗi Có giải thuật để lựa chọn số tối thiểu thay đổi để đạt hiệu chỉnh có chi phí tồn cục nhỏ Cho chuỗi nhập có lỗi x văn phạm G, giải thuật tìm phân tích cú pháp cho chuỗi y mà số lượng thao tác chèn, xóa thay đổi token cần thiết để chuyển x thành y nhỏ Nói chung, kỹ thuật cịn dạng nghiên cứu lý thuyết II BIẾN ÐỔI VĂN PHẠM PHI NGỮ CẢNH Nhiều ngơn ngữ lập trình có cấu trúc đệ quy mà định nghĩa văn phạm phi ngữ cảnh (context-free grammar) G với thành phần G (V, T, P, S), đó: • V : tập hữu hạn ký hiệu chưa kết thúc hay biến (variables) • T : tập hữu hạn ký hiệu kết thúc (terminals) • P : tập luật sinh văn phạm (productions) • S ∈ V: ký hiệu bắt đầu văn phạm (start symbol) Ví dụ 4.1: Văn phạm với luật sinh sau cho phép định nghĩa biểu thức số học đơn giản (với E biểu thức expression) : E → E A E ⏐ (E) ⏐ - E ⏐ id A → +⏐-⏐*⏐/⏐↑ Cây phân tích cú pháp dẫn xuất Cây phân tích cú pháp xem dạng biểu diễn hình ảnh dẫn xuất Ta nói αAβ dẫn xuất αγβ (ký hiệu: αAβ ⇒ αγβ) A → γ luật sinh, α β chuỗi tùy ý ký hiệu văn phạm Nếu α1 ⇒ α2 ⇒ ⇒ αn ta nói α1 dẫn xuất (suy ra) αn Ký hiệu ⇒ : dẫn xuất qua bước ⇒* : dẫn xuất qua nhiều bước 67 ⇒ + : dẫn xuất qua nhiều bước Ta có tính chất: α ⇒* α với ∀α α ⇒* β β ⇒* γ α ⇒* γ Cho văn phạm G với ký hiệu bắt đầu S Ta dùng quan hệ ⇒+ để định nghĩa L(G) ngôn ngữ sinh G Chuỗi L(G) chứa ký hiệu kết thúc G Chuỗi ký hiệu kết thúc w thuộc L(G) S ⇒+ w, chuỗi w gọi câu G Một ngôn ngữ sinh văn phạm gọi ngôn ngữ phi ngữ cảnh Nếu hai văn phạm sinh ngôn ngữ chúng gọi hai văn phạm tương đương Nếu S ⇒* α, α chứa ký hiệu chưa kết thúc ta nói α dạng câu (sentential form) G Một câu dạng câu có chứa tồn ký hiệu kết thúc Một phân tích cú pháp xem biểu diễn đồ thị cho dẫn xuất Ðể hiểu phân tích cú pháp làm việc ta cần xét dẫn xuất có ký hiệu chưa kết thúc trái dạng câu thay bước, dẫn xuất gọi trái Nếu α ⇒ β ký hiệu chưa kết thúc trái α thay thế, ta viết α ⇒* lm β Nếu S ⇒* lm α ta nói α dạng câu trái văn phạm Tương tự, ta có dẫn xuất phải - cịn gọi dẫn xuất tắc (canonical derivations) Ví dụ 4.2: Cây phân tích cú pháp cho chuỗi nhập : - (id + id) sinh từ văn phạm ví dụ 4.1 E - E ( E ) E + E id id Hình 4.2 - Minh họa phân tích cú pháp Ðể thấy mối quan hệ phân tích cú pháp dẫn xuất, ta xét dẫn xuất : α1 ⇒ α2⇒ ⇒ αn αi ký hiệu chưa kết thúc A Với αi ta xây dựng phân tích cú pháp Ví dụ với dẫn xuất: E ⇒ -E ⇒ - (E) ⇒ - (E + E) ⇒ - (id + E) ⇒ - (id + id) Ta có trình xây dựng phân tích cú pháp sau : 68 E E⇒ - E ⇒ E E ⇒ _ E ( E ) - ⇒ E ( E ( E ) E + E E E ⇒ E E + _ E ) ( E E id id E + ) E id Hình 4.3 - Xây dựng phân tích cú pháp từ dẫn xuất Loại bỏ mơ hồ Một văn phạm tạo nhiều phân tích cú pháp cho chuỗi nhập gọi văn phạm mơ hồ Nếu văn phạm mơ hồ, ta xác định phân tích cú pháp chọn Vì thế, ta phải viết lại văn phạm nhằm tránh mơ hồ Một ví dụ, loại bỏ mơ hồ văn phạm sau : Stmt → if expr then stmt ⏐ if expr then stmt else stmt ⏐ other Ðây văn phạm mơ hồ câu nhập if E1 then if E2 then S1 else S2 có hai phân tích cú pháp : Stmt if expr E1 then if Stmt expr E2 then Stmt S1 elsem Stmt S2 69 Stmt if expr then Stmt elsem E1 if expr then E2 Stmt Stmt S2 S1 Hình 4.4 - Hai phân tích cú pháp cho câu nhập Ðể tránh mơ hồ ta đưa nguyên tắc "Khớp else với then chưa khớp gần trước đó" Với qui tắc này, ta viết lại văn phạm sau : Stmt → matched_stmt | unmatched_stmt matched_stmt → if expr then matched_stmt else matched_stmt ⏐ other unmatched_stmt → if expr then Stmt ⏐ if expr then matched_stmt else unmatched_stmt Văn phạm tương đương sinh tập chuỗi giống văn phạm mơ hồ trên, có cách dẫn xuất phân tích cú pháp cho chuỗi nhập Loại bỏ đệ qui trái Một văn phạm đệ qui trái (left recursive) có ký hiệu chưa kết thúc A cho có dẫn xuất A ⇒+ Aα, với α chuỗi Các phương pháp phân tích từ xuống khơng thể xử lý văn phạm đệ qui trái, cần phải dùng chế biến đổi tương đương để loại bỏ đệ qui trái Ðệ qui trái có hai loại : Loại trực tiếp: Dạng A → Aα Loại gián tiếp: A ⇒i Aα với i ≥ Xét văn phạm sau: S → Aa | b A→ Ac | Sd | ε Biến S biến đệ qui trái S ⇒ Aa ⇒ Sda, đệ qui trái trực tiếp Với đệ qui trái trực tiếp: Luật sinh có dạng: A → Aα1 | Aα2 | | Aαm | β1 | β2 | | βn Sẽ thay : A → β1A’ | β2A’ | | βnA’ A' → α1A'| α2A' | | αm A' | ε Với đệ qui trái gián tiếp (và nói chung đệ qui trái, ta sử dụng giải thuật sau) 70 ‰ Giải thuật 4.1: Loại bỏ đệ qui trái Input: Văn phạm khơng tuần hồn khơng có luật sinh ε (nghĩa văn phạm không chứa dạng A ⇒ +A A→ ε) Output: Văn phạm tương đương không đệ qui trái Phương pháp: Sắp xếp ký hiệu không kết thúc theo thứ tự A1, A2, , An For i:=1 to n Begin for j:=1 to i -1 begin Thay luật sinh dạng Ai → Ajγ luật sinh Ai→ δ1γ | δ2γ | | δkγ Aj → δ1 | δ2 | | δk tất Ai luật sinh tại; end; Loại bỏ đệ qui trái trực tiếp số Ai luật sinh; End; Ví dụ 4.3: Áp dụng thuật tốn cho văn phạm ví dụ Về lý thuyết, thuật tốn 4.1 khơng bảo đảm hoạt động trường hợp văn phạm có chứa luật sinh ε, trường hợp luật sinh A → ε rõ ràng "vô hại" Sắp xếp ký hiệu chưa kết thúc theo thứ tự S, A Với i = 1, khơng có đệ qui trái trực tiếp nên khơng có điều xảy Với i = 2, thay S - luật sinh vào A → Sd được: A→ Ac | Aad | bd | ε Loại bỏ đệ qui trái trực tiếp cho A luật sinh, ta : S→ Aa | b A→ bdA' A'→ cA' | adA | ε Tạo yếu tố trái Tạo yếu tố trái (left factoring) phép biến đổi văn phạm có ích để có văn phạm thuận tiện cho việc phân tích dự đốn Ý tưởng không rõ luật sinh hai luật sinh khả triển dùng để khai triển ký hiệu chưa kết thúc A, viết lại A - luật sinh nhằm "hoãn" lại việc định thấy đủ nguyên liệu cho lựa chọn Xét văn phạm cho câu lệnh if: stmt → if expr then stmt else stmt | if expr then stmt 71 Khi gặp token if, định cần chọn luật sinh để triển khai cho stmt Ðể giải vấn đề này, cách tổng quát, có luật sinh dạng A → αβ1 | αβ2, ta biến đổi luật sinh thành dạng : A → αA' A'→ β1 | β2 ‰ Giải thuật 4.2 : Tạo yếu tố trái cho văn phạm Input: Văn phạm G Output: Văn phạm tương đương với yếu tố trái Phương pháp: Với ký hiệu chưa kết thúc A, có ký hiệu dẫn đầu vế phải giống nhau, ta tìm chuỗi α chuỗi có độ dài lớn chung cho tất vế phải (α yếu tố trái) Giả sử A → αβ1 | αβ2 | | αβn | γ, γ khơng có chuỗi dẫn đầu chung với vế phải khác Ta biến đổi luật sinh thành : A → αA' | γ A'→ β1 | β2 | | βn Với A' ký hiệu chưa kết thúc Áp dụng lặp lặp lại phép biến đổi khơng cịn hai khả triển cho ký hiệu chưa kết thúc có tiền tố chung Ví dụ 4.4: Áp dụng thuật tốn 4.2 cho văn phạm sau: S → i E t S | i E t S eS | α E→b Ta có văn phạm tương đương có chứa yếu tố trái sau : S → i E t S S' | α S' → eS | ε E→ b III PHÂN TÍCH CÚ PHÁP TỪ TRÊN XUỐNG Trong mục này, giới thiệu ý niệm phương pháp phân tích cú pháp từ xuống (Top Down Parsing) trình bày dạng khơng quay lui hiệu phương pháp phân tích từ xuống, gọi phương pháp phân tích dự đốn (predictive parser) Chúng ta định nghĩa lớp văn phạm LL(1) (viết tắt Left-to-right parse, Leftmost-derivation, 1-symbol lockahead ), phân tích dự đốn xây dựng cách tự động Phân tích cú pháp đệ qui lùi (Recursive Descent Parsing) Phân tích cú pháp từ xuống xem nỗ lực tìm kiếm dẫn xuất trái cho chuỗi nhập Nó xem nỗ lực xây dựng phân tích cú pháp nút gốc phát sinh dần xuống Một dạng tổng quát kỹ thuật phân tích từ xuống, gọi phân tích cú pháp đệ quy lùi, quay lui để 72 quét lại chuỗi nhập Tuy nhiên, dạng thường gặp Lý với kết cấu ngôn ngữ lập trình, dùng đến Bộ phân tích cú pháp dự đốn (Predictive Parser) Trong nhiều trường hợp, cách viết văn phạm cách cẩn thận, loại bỏ đệ qui trái khỏi văn phạm tạo yếu tố trái, thu văn phạm mà phân tích cú pháp đệ quy lùi phân tích được, khơng cần quay lui, gọi phân tích cú pháp dự đoán Xây dựng sơ đồ dịch cho phân tích dự đốn: Ðể xây dựng sơ đồ dịch cho phương pháp phân tích xuống, trước hết loại bỏ đệ qui trái, tạo yếu tố trái cho văn phạm Sau thực bước sau cho ký hiệu chưa kết thúc A : Tạo trạng thái khởi đầu trạng thái kết thúc Với luật sinh A → X1X2 Xn , tạo đường từ trạng thái khởi đầu đến trạng thái kết thúc cạnh có nhãn X1X2 Xn Một cách cụ thể, sơ đồ dịch vẽ theo nguyên tắc sau: Mỗi ký hiệu chưa kết thúc tương ứng với sơ đồ dịch nhãn cho cạnh token ký hiệu chưa kết thúc Mỗi token tương ứng với việc đốn nhận token đọc token x Mỗi ký hiệu chưa kết thúc tương ứng với lời gọi thủ tục cho ký hiệu A Mỗi luật sinh có dạng A → α1 | α2 | | αn tương ứng với sơ đồ dịch α1 α2 αn Mỗi luật sinh dạng A → α1 α2 αn tương ứng với sơ đồ dịch α1 α2 αn Ví dụ 4.5: Xét văn phạm sinh biểu thức toán học E→E+T|T T→T*F|F 73 F → (E) | id Loại bỏ đệ quy trái văn phạm, ta văn phạm tương đương sau : E → TE ‘ E’ → + TE’ | ε T → FT ’ T‘ → * FT ’ | ε F → (E) | id Một chương trình phân tích cú pháp dự đoán thiết kế dựa sơ đồ dịch cho ký hiệu chưa kết thúc văn phạm Nó cố gắng so sánh ký hiệu kết thúc với chuỗi nguyên liệu đưa lời gọi đệ qui phải theo cạnh có nhãn ký hiệu chưa kết thúc Các sơ đồ dịch tương ứng : T E T F E’ E’ 10 T E’ ε T’ T‘ + * F 11 12 T’ 13 ε F ( 14 15 E 16 ) 17 id Hình 4.5 - Các sơ đồ dịch cho ký hiệu văn phạm Các sơ đồ dịch đơn giản hóa cách thay sơ đồ vào sơ đồ khác, thay tương tự phép biến đổi văn phạm ε + T T E' : ε E: T + T ⇒ E' : + ε + ⇒E: T ε ε Tương tự ta có: * ⇒ T: F ε ⇒ F: 13 14 ( F 15 Hình 4.6 - Rút gọn sơ đồ dịch 16 ) 17 ε Phân tích dự đốn khơng đệ qui 74 ... PHÂN TÍCH CÚ PHÁP Vai trị phân tích cú pháp Bộ phân tích cú pháp nhận chuỗi token từ phân tích từ vựng xác nhận chuỗi sinh từ văn phạm ngôn ngữ nguồn cách tạo phân tích cú pháp cho chuỗi Bộ phân. .. phương pháp tổng quát kỹ thuật Shift - Reduce phân tích cú pháp LR (LR parsing) thảo luận Bộ phân tích cú pháp Shift - Reduce Phân tích cú pháp Shift - Reduce cố gắng xây dựng phân tích cú pháp. .. T'' → ε E'' → ε IV PHÂN TÍCH CÚ PHÁP TỪ DƯỚI LÊN Phần giới thiệu kiểu phân tích cú pháp từ lên tổng quát gọi phân tích cú pháp Shift -Reduce Một dạng dễ cài đặt gọi phân tích cú pháp thứ bậc tốn

Ngày đăng: 30/05/2013, 21:51

Hình ảnh liên quan

Bảng ký hiệu - giáo án: PHÂN TÍCH  CÚ  PHÁP

Bảng k.

ý hiệu Xem tại trang 2 của tài liệu.
2. Loại bỏ sự mơ hồ - giáo án: PHÂN TÍCH  CÚ  PHÁP

2..

Loại bỏ sự mơ hồ Xem tại trang 5 của tài liệu.
Hình 4.3 - Xây dựng cây phân tích cú pháp từ dẫn xuất - giáo án: PHÂN TÍCH  CÚ  PHÁP

Hình 4.3.

Xây dựng cây phân tích cú pháp từ dẫn xuất Xem tại trang 5 của tài liệu.
Hình 4.4 - Hai cây phân tích cú pháp cho một câu nhập - giáo án: PHÂN TÍCH  CÚ  PHÁP

Hình 4.4.

Hai cây phân tích cú pháp cho một câu nhập Xem tại trang 6 của tài liệu.
Hình 4.5 - Các sơ đồ dịch cho các ký hiệu văn phạm - giáo án: PHÂN TÍCH  CÚ  PHÁP

Hình 4.5.

Các sơ đồ dịch cho các ký hiệu văn phạm Xem tại trang 10 của tài liệu.
Hình 4.6 - Rút gọn sơ đồ dịch - giáo án: PHÂN TÍCH  CÚ  PHÁP

Hình 4.6.

Rút gọn sơ đồ dịch Xem tại trang 10 của tài liệu.
Bảng phân tích M - giáo án: PHÂN TÍCH  CÚ  PHÁP

Bảng ph.

ân tích M Xem tại trang 11 của tài liệu.
Bảng phân tích M của văn phạm được cho như sau: (ô trống tương ứng với lỗi) - giáo án: PHÂN TÍCH  CÚ  PHÁP

Bảng ph.

ân tích M của văn phạm được cho như sau: (ô trống tương ứng với lỗi) Xem tại trang 12 của tài liệu.
FIRST và FOLLOW là các tập hợp cho phép xây dựng bảng phân tích M và phục hồi lỗi theo chiến lược panic_mode - giáo án: PHÂN TÍCH  CÚ  PHÁP

v.

à FOLLOW là các tập hợp cho phép xây dựng bảng phân tích M và phục hồi lỗi theo chiến lược panic_mode Xem tại trang 13 của tài liệu.
- M ỗi văn phạm có một bảng phân tích Mt ương ứng. - giáo án: PHÂN TÍCH  CÚ  PHÁP

i.

văn phạm có một bảng phân tích Mt ương ứng Xem tại trang 13 của tài liệu.
Bảng phân tích cú pháp M của văn phạm được xây dựng như trong hình 4.8. - giáo án: PHÂN TÍCH  CÚ  PHÁP

Bảng ph.

ân tích cú pháp M của văn phạm được xây dựng như trong hình 4.8 Xem tại trang 16 của tài liệu.
Bảng phân tích M cho văn phạm này được thêm vào các ký hiệu đồng bộ "synch", lấy từ tập FOLLOW của các ký hiệu chưa kết thúc - xác định các token đồng bộ :  - giáo án: PHÂN TÍCH  CÚ  PHÁP

Bảng ph.

ân tích M cho văn phạm này được thêm vào các ký hiệu đồng bộ "synch", lấy từ tập FOLLOW của các ký hiệu chưa kết thúc - xác định các token đồng bộ : Xem tại trang 18 của tài liệu.
Bảng định nghĩ a3 quan hệ thứ bậc được cho như sau: - giáo án: PHÂN TÍCH  CÚ  PHÁP

ng.

định nghĩ a3 quan hệ thứ bậc được cho như sau: Xem tại trang 22 của tài liệu.
Hình 4.12 - Mô hình bộ phân tích cú pháp LR - giáo án: PHÂN TÍCH  CÚ  PHÁP

Hình 4.12.

Mô hình bộ phân tích cú pháp LR Xem tại trang 25 của tài liệu.
Input: Một chuỗi nhập w, một bảng phân tích LR với hàm action và goto cho văn phạm G.  - giáo án: PHÂN TÍCH  CÚ  PHÁP

nput.

Một chuỗi nhập w, một bảng phân tích LR với hàm action và goto cho văn phạm G. Xem tại trang 26 của tài liệu.
Hình 4.13 - Bảng phân tích cú pháp SLR cho văn phạm ví dụ - giáo án: PHÂN TÍCH  CÚ  PHÁP

Hình 4.13.

Bảng phân tích cú pháp SLR cho văn phạm ví dụ Xem tại trang 27 của tài liệu.
f. Thuật toán xây dựng bảng phân tích SLR - giáo án: PHÂN TÍCH  CÚ  PHÁP

f..

Thuật toán xây dựng bảng phân tích SLR Xem tại trang 30 của tài liệu.
‰ Giải thuật 4.7: Xây dựng bảng phân tích SLR      Input: Một văn phạm tăng cường G'  - giáo án: PHÂN TÍCH  CÚ  PHÁP

i.

ải thuật 4.7: Xây dựng bảng phân tích SLR Input: Một văn phạm tăng cường G' Xem tại trang 31 của tài liệu.
Ví dụ 4.25: Xây dựng bảng LR chính tắc cho văn phạm tăng cường G' có chứa các luật sinh như sau :  - giáo án: PHÂN TÍCH  CÚ  PHÁP

d.

ụ 4.25: Xây dựng bảng LR chính tắc cho văn phạm tăng cường G' có chứa các luật sinh như sau : Xem tại trang 34 của tài liệu.
c. Thuật toán xây dựng bảng phân tích cú pháp LR chính tắc - giáo án: PHÂN TÍCH  CÚ  PHÁP

c..

Thuật toán xây dựng bảng phân tích cú pháp LR chính tắc Xem tại trang 35 của tài liệu.
Hình 4.14 - Bảng phân tích cú pháp LR chính tắc - giáo án: PHÂN TÍCH  CÚ  PHÁP

Hình 4.14.

Bảng phân tích cú pháp LR chính tắc Xem tại trang 36 của tài liệu.
4. Bảng goto được xây dựng như sau - giáo án: PHÂN TÍCH  CÚ  PHÁP

4..

Bảng goto được xây dựng như sau Xem tại trang 37 của tài liệu.
Hình 4.15 - Bảng phân tích cú pháp LALR - giáo án: PHÂN TÍCH  CÚ  PHÁP

Hình 4.15.

Bảng phân tích cú pháp LALR Xem tại trang 38 của tài liệu.
Hình 4.16 - Bảng phân tích cú pháp SLR đụng độ - giáo án: PHÂN TÍCH  CÚ  PHÁP

Hình 4.16.

Bảng phân tích cú pháp SLR đụng độ Xem tại trang 40 của tài liệu.
N ếu chuỗi nhập là id + id + id thì quá trình phân tích văn phạm dẫn đến hình trạng hiện tại là :  - giáo án: PHÂN TÍCH  CÚ  PHÁP

u.

chuỗi nhập là id + id + id thì quá trình phân tích văn phạm dẫn đến hình trạng hiện tại là : Xem tại trang 41 của tài liệu.
Hình 4.17 - Bảng phân tích cú pháp LR cho văn phạm if - else - giáo án: PHÂN TÍCH  CÚ  PHÁP

Hình 4.17.

Bảng phân tích cú pháp LR cho văn phạm if - else Xem tại trang 42 của tài liệu.
Ta xây dựng bảng phân tích SLR đụng độ như sau: - giáo án: PHÂN TÍCH  CÚ  PHÁP

a.

xây dựng bảng phân tích SLR đụng độ như sau: Xem tại trang 42 của tài liệu.
Hình 4.18 -T ạo một chương trình dịch input / output với Yacc - giáo án: PHÂN TÍCH  CÚ  PHÁP

Hình 4.18.

T ạo một chương trình dịch input / output với Yacc Xem tại trang 43 của tài liệu.
VIII. BỘ SINH BỘ PHÂN TÍCH CÚ PHÁP - giáo án: PHÂN TÍCH  CÚ  PHÁP
VIII. BỘ SINH BỘ PHÂN TÍCH CÚ PHÁP Xem tại trang 43 của tài liệu.

Từ khóa liên quan

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

Tài liệu liên quan