tailieunhanh - Chuong 3- Phan tich cu phap
| CHƯƠNG III Phân tích cú pháp Mục tiêu: Nắm được vai trò của giai đoạn phân tích cú pháp Văn phạm phi ngữ cảnh (context- free grammar),cách phân tích cú pháp từ dưới lên- từ trên xuống (top-down and bottom-up parsing) Bộ phân tích cú pháp LR Vai trò của bộ phân tích cú pháp Đây là giai đoạn thứ 2 của quá trình biên dịch Nhiệm vụ chính: Nhận chuỗi các token từ bộ phân tích từ vựng và xác định chuỗi đó có được sinh ra bởi văn phạm của ngôn ngữ nguồn không Source program Lexical analyzer Get next token Token Parser Symbol table Parse tree Rest of front end Các phương pháp phân tích cú pháp (PTCP) chia làm hai loại: Phân tích từ trên xuống (top- down parsing) và phân tích từ dưới lên (bottom- up parsing) Trong quá trình biên dịch xuất hiện nhiều lỗi trong giai đoạn PTCP do đó bộ phân tích cú pháp phải phát hiện và thông báo lỗi chính xác cho người lập trình đồng thơi không làm chậm những chương trình được viết đúng Văn phạm phi ngữ cảnh Để định nghĩa cấu trúc của ngôn ngữ lập trình ta dùng văn phạm phi ngữ cảnh (Context-free grammars) hay gọi tắt là một văn phạm Một văn phạm bao gồm: Các kí hiệu kết thúc (terminals): Chính là các token Các kí hiệu chưa kết thúc (nonterminals): Là các biến kí hiệu tập các xâu kí tự Các luật sinh (productions): Xác định cách thức hình thành các xâu từ các kí hiệu kết thúc và chưa kết thúc Một kí tự bắt đầu (start symbol) Ví dụ : Văn phạm sau định nghĩa các biểu thức số học đơn giản E E A E | (E) | -E | id A + | - | * | / | Trong đó E, A là các kí tự chưa kết thúc (E còn là kí tự bắt đầu), các kí tự còn lại là các kí tự kết thúc Dẫn xuất (derivation): Ta nói A nếu A là một luật sinh ( đọc là dẫn xuất hoặc suy ra) Nếu 1 2 n thì ta nói rằng 1 dẫn xuất n Kí hiệu: * là dẫn xuất 0 bước, + là dẫn xuất 1 bước Cho văn phạm G với kí tự bắt đầu là S, L(G) là ngôn ngữ được sinh bởi G. Mọi xâu trong L(G) chỉ chứa các kí hiệu kết thúc của G Ta nói một xâu w L(G) nếu và chỉ nếu S + w, w . | CHƯƠNG III Phân tích cú pháp Mục tiêu: Nắm được vai trò của giai đoạn phân tích cú pháp Văn phạm phi ngữ cảnh (context- free grammar),cách phân tích cú pháp từ dưới lên- từ trên xuống (top-down and bottom-up parsing) Bộ phân tích cú pháp LR Vai trò của bộ phân tích cú pháp Đây là giai đoạn thứ 2 của quá trình biên dịch Nhiệm vụ chính: Nhận chuỗi các token từ bộ phân tích từ vựng và xác định chuỗi đó có được sinh ra bởi văn phạm của ngôn ngữ nguồn không Source program Lexical analyzer Get next token Token Parser Symbol table Parse tree Rest of front end Các phương pháp phân tích cú pháp (PTCP) chia làm hai loại: Phân tích từ trên xuống (top- down parsing) và phân tích từ dưới lên (bottom- up parsing) Trong quá trình biên dịch xuất hiện nhiều lỗi trong giai đoạn PTCP do đó bộ phân tích cú pháp phải phát hiện và thông báo lỗi chính xác cho người lập trình đồng thơi không làm chậm những chương trình được viết đúng Văn phạm phi ngữ cảnh Để định nghĩa cấu trúc của ngôn ngữ lập trình
đang nạp các trang xem trước