1 / 26

Giáo viên hướng dẫn: TS. Nguyễn Thanh Phương Sinh viên thực hiện:

Giáo viên hướng dẫn: TS. Nguyễn Thanh Phương Sinh viên thực hiện: Nguyễn Việt Cường – 0612051 Nguyễn Thành Trung – 0612468. Khảo sát và xây dựng thử nghiệm chuyến trước của trình biên dịch dành cho ngôn ngữ ANSI-C giản lược. Nội dung trình bày. Tổng quan về Trình Biên Dịch.

aileen
Download Presentation

Giáo viên hướng dẫn: TS. Nguyễn Thanh Phương Sinh viên thực hiện:

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Giáo viên hướng dẫn: TS. Nguyễn Thanh Phương Sinh viên thực hiện: Nguyễn Việt Cường – 0612051 Nguyễn Thành Trung – 0612468 Khảo sát và xây dựng thử nghiệm chuyến trước của trình biên dịch dành cho ngôn ngữ ANSI-C giản lược.

  2. Nội dung trình bày • Tổng quan về Trình Biên Dịch. • Giới thiệu về chuyến trước và các công cụ hỗ trợ. • Bảng danh biểu • Phân tích từ vựng • Phân tích cú pháp • Phân tích ngữ nghĩa • Phát sinh mã trung gian • Dịch các cấu trúc. • Cấu trúc khai báo. • Cấu trúc điều khiển (lệnh while) • Tổng kết.

  3. Tổng quan về Trình Biên Dịch • Objective • Add your objective here • Results • Add your results here

  4. Nội dung trình bày • Tổng quan về Trình Biên Dịch. • Giới thiệu về chuyến trước và các công cụ hỗ trợ. • Bảng danh biểu • Phân tích từ vựng • Phân tích cú pháp • Phân tích ngữ nghĩa • Phát sinh mã trung gian • Dịch các cấu trúc. • Cấu trúc khai báo. • Cấu trúc điều khiển (lệnh while) • Tổng kết.

  5. Bảng danh biểu

  6. Nội dung trình bày • Tổng quan về Trình Biên Dịch. • Giới thiệu về chuyến trước và các công cụ hỗ trợ. • Bảng danh biểu • Phân tích từ vựng • Phân tích cú pháp • Phân tích ngữ nghĩa • Phát sinh mã trung gian • Dịch các cấu trúc. • Cấu trúc khai báo. • Cấu trúc điều khiển (lệnh while) • Tổng kết.

  7. Phân tích từ vựng • Nhiệm vụ chủ yếu : đọc các ký hiệu nhập rồi tạo ra một chuỗi các token. Ví dụ : COUNT = COUNT + 1 ; IDENTIFIER ASSIGN_OP IDENTIFIER ADD_OP CONSTANT PUNC • Giao thức liên hệ của bộ phân tích từ vựng: Chương trình nguồn token Bộ phân tích từ vựng Bộ phân tích cú pháp yêu cầu token Bảng danh biểu

  8. File mô tả nguồn lex.l FLEX Compiler lex.yy.c lex.yy.c C Compiler lex.out Chương trình nguồn lex.out chuỗi token Bộ phát sinh trình phân tích từ vựng - FLEX • FLEX – phiên bản cải tiến của LEX – được các tác giả Jef Poskanzer, Vern Paxson và Van Jacobson cùng phát triển. • Nhiệm vụ : phát sinh ra trình phân tích từ vựng từ tập luật do người dùng định nghĩa. • Quy trình vận hành :

  9. Nội dung trình bày • Tổng quan về Trình Biên Dịch. • Giới thiệu về chuyến trước và các công cụ hỗ trợ. • Bảng danh biểu • Phân tích từ vựng • Phân tích cú pháp • Phân tích ngữ nghĩa • Phát sinh mã trung gian • Dịch các cấu trúc. • Cấu trúc khai báo. • Cấu trúc điều khiển (lệnh while) • Tổng kết.

  10. Phân tích cú pháp • Kiểm tra tính hợp lệ của chuỗi token bằng cách xây dựng cây phân tích cú pháp. • Sử dụng phương pháp phân tích cú pháp từ dưới lên. Ví dụ: Văn phạm mô tả biểu thức đơn giản : • s  e • e  e + t • | t • t t * f • | f • f ( e ) • |NUM Chúng ta sẽ tiến hành kiểm tra tính hợp lệ của câu nhập : NUM + NUM * NUM

  11. Phương pháp phân tích cú pháp từ dưới lên s e e + t t t * f f f NUM NUM NUM

  12. Mô tả tập luật sinh, luật ngữ nghĩa (*.y) Bản mô tả các trạng thái (y.out) --verbose Bison --defines Bản định nghĩa các token (yyout.h) Bộ phân tích cú pháp bằng mã C (yyout.c) Bộ phát sinh trình phân tích cú pháp - BISON • BISON – phiên bản cải tiến của YACC – được xây dựng bởi Robert Corbett và Richard Stallman. • Nhiệm vụ : phát sinh ra bộ phân tích cú pháp từ tập luật sinh do người dùng định nghĩa. • Quy trình vận hành :

  13. Nội dung trình bày • Tổng quan về Trình Biên Dịch. • Giới thiệu về chuyến trước và các công cụ hỗ trợ. • Bảng danh biểu • Phân tích từ vựng • Phân tích cú pháp • Phân tích ngữ nghĩa • Phát sinh mã trung gian • Dịch các cấu trúc. • Cấu trúc khai báo. • Cấu trúc điều khiển (lệnh while) • Tổng kết.

  14. Phân tích ngữ nghĩa • Mỗi ký tự văn phạm đều mang một thuộc tính.

  15. Nội dung trình bày • Tổng quan về Trình Biên Dịch. • Giới thiệu về chuyến trước và các công cụ hỗ trợ. • Bảng danh biểu • Phân tích từ vựng • Phân tích cú pháp • Phân tích ngữ nghĩa • Phát sinh mã trung gian • Dịch các cấu trúc. • Cấu trúc khai báo. • Cấu trúc điều khiển (lệnh while) • Tổng kết.

  16. Phát sinh mã trung gian

  17. Nội dung trình bày • Tổng quan về Trình Biên Dịch. • Giới thiệu về chuyến trước và các công cụ hỗ trợ. • Bảng danh biểu • Phân tích từ vựng • Phân tích cú pháp • Phân tích ngữ nghĩa • Phát sinh mã trung gian • Dịch các cấu trúc. • Cấu trúc khai báo. • Cấu trúc điều khiển (lệnh while) • Tổng kết.

  18. Dịch cấu trúc khai báo

  19. Nội dung trình bày • Tổng quan về Trình Biên Dịch. • Giới thiệu về chuyến trước và các công cụ hỗ trợ. • Bảng danh biểu • Phân tích từ vựng • Phân tích cú pháp • Phân tích ngữ nghĩa • Phát sinh mã trung gian • Dịch các cấu trúc. • Cấu trúc khai báo. • Cấu trúc điều khiển (lệnh while) • Tổng kết.

  20. Dịch cấu trúc điều khiển (lệnh while) • Cấu trúc lệnh while : WHILE‘(’ test ‘)’ statement • Phân bố mã trung gian cho lệnh while : gototrueLabel begin: gotofalseLabel trueLabel: falseLabel:

  21. while(i < b && i < c) i++; iteration_statement WHILE ‘(’ test ‘)’ statement ACT07 t0 = i t1 = t0 + 1 i = t1 op12 ACT01 expr ACT06 op12 logical_and_expr__ op12 logical_and_expr ACT05 op1 op2 logical_and_expr AND_OP ACT03 ACT04 relational_expr op2 = i < c op1 ACT02 relational_expr op1 = i < b

  22. Nội dung trình bày • Tổng quan về Trình Biên Dịch. • Giới thiệu về chuyến trước và các công cụ hỗ trợ. • Bảng danh biểu • Phân tích từ vựng • Phân tích cú pháp • Phân tích ngữ nghĩa • Phát sinh mã trung gian • Dịch các cấu trúc. • Cấu trúc khai báo. • Cấu trúc điều khiển (lệnh while) • Tổng kết.

  23. Tổng kết • Add your conclusion here

  24. Questions and Discussion

More Related