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

Bài giảng: Trình biên dịch ĐH BKĐN

213 21 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

Mục tiêu giáo trình1. Cung cấp những kiến thức cơ bản vềchƣơng trình dịch2. Cung cấp các phƣơng pháp phântích từ vựng, phân tích cú pháp.3. Cơ sở cho việc tìm hiểu các ngôn ngữlập trình.4. Rèn luyện kỹ năng lập trình cho sinhviên

ĐẠI HỌC ĐÀ NẴNG TRƢỜNG ĐẠI HỌC BÁCH KHOA KHOA CƠNG NGHỆ THƠNG TIN CHƢƠNG TRÌNH DỊCH CuuDuongThanCong.com Giáo trình Kiến trúc máy tính Hệ điều hành https://fb.com/tailieudientucntt TRƢỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG Giới thiệu Mục tiêu giáo trình Cung cấp kiến thức chƣơng trình dịch Cung cấp phƣơng pháp phân tích từ vựng, phân tích cú pháp Cơ sở cho việc tìm hiểu ngơn ngữ lập trình Rèn luyện kỹ lập trình cho sinh viên Giáo trình Kiến trúc máy tính Hệ CuuDuongThanCong.com điều hành https://fb.com/tailieudientucntt TRƢỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG Giới thiệu Nội dung giáo trình CHƢƠNG NHẬP MƠN CHƢƠNG TRÌNH DỊCH CHƢƠNG PHÂN TÍCH TỪ VỰNG CHƢƠNG CÁC VẤN ĐỀ CƠ BẢN VỀ PHÂN TÍCH CÚ PHÁP CHƢƠNG CÁC PHƢƠNG PHÁP PHÂN TÍCH CÚ PHÁP CHƢƠNG PHÂN TÍCH NGỮ NGHĨA CHƢƠNG XỬ LÝ LỖI VÀ SINH MÃ CuuDuongThanCong.com Giáo trình Kiến trúc máy tính Hệ điều hành https://fb.com/tailieudientucntt TRƢỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƢƠNG NHẬP MÔN CHƢƠNG TRÌNH DỊCH Các khái niệm Đặc trƣng ngơn ngữ lập trình (NNLT) bậc cao Các qui tắc từ vựng cú pháp Các chức trình biên dịch CuuDuongThanCong.com Giáo trình Kiến trúc máy tính Hệ điều hành https://fb.com/tailieudientucntt Chương TRƢỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƢƠNG NHẬP MƠN CHƢƠNG TRÌNH DỊCH Các khái niệm 1.1 Sự phát triển ngôn ngữ lập trình 1.2 Khái niệm chƣơng trình dịch 1.3 Phân loại chƣơng trình dịch 1.4 Các ứng dụng khác kỹ thuật dịch CuuDuongThanCong.com Giáo trình Kiến trúc máy tính Hệ điều hành https://fb.com/tailieudientucntt Chương TRƢỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƢƠNG NHẬP MƠN CHƢƠNG TRÌNH DỊCH Các khái niệm 1.1 Sự phát triển ngơn ngữ lập trình NN máy (machine language) CuuDuongThanCong.com Hợp ngữ (Assembly) Giáo trình Kiến trúc máy tính Hệ điều hành NNLT bậc cao (Higher _level language) https://fb.com/tailieudientucntt Chương TRƢỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƢƠNG NHẬP MƠN CHƢƠNG TRÌNH DỊCH Các khái niệm 1.2 Khái niệm chƣơng trình dịch Chƣơng trình dịch chƣơng trình dùng để dịch chƣơng trình (CT nguồn) viết NNLT (NN nguồn) sang chƣơng trình tƣơng đƣơng (CT đích) NN khác (NN đích) CuuDuongThanCong.com Giáo trình Kiến trúc máy tính Hệ điều hành https://fb.com/tailieudientucntt Chương TRƢỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƢƠNG NHẬP MƠN CHƢƠNG TRÌNH DỊCH Các khái niệm 1.3 Phân loại chƣơng trình dịch  Trình biên dịch Dữ liệu CT nguồn Trình biên dịch CT đích Thời gian dịch CuuDuongThanCong.com Giáo trình Kiến trúc máy tính Hệ điều hành Máy tính thực thi Kết Thời gian thực thi https://fb.com/tailieudientucntt TRƢỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƢƠNG NHẬP MƠN CHƢƠNG TRÌNH DỊCH Các khái niệm 1.3 Phân loại chƣơng trình dịch  Trình thơng dịch Dữ liệu CT nguồn CuuDuongThanCong.com Trình thơng dịch Giáo trình Kiến trúc máy tính Hệ điều hành Kết https://fb.com/tailieudientucntt TRƢỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƢƠNG NHẬP MƠN CHƢƠNG TRÌNH DỊCH Các khái niệm 1.4 Các ứng dụng khác kỹ thuật dịch - Trong hệ thống: phần giao tiếp ngƣời máy thông qua câu lệnh - Hệ thống xử lý NN tự nhiên: dịch thuật, tóm tắt văn CuuDuongThanCong.com Giáo trình Kiến trúc máy tính Hệ điều hành 10 https://fb.com/tailieudientucntt Chương TRƢỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƢƠNG CÁC PHƢƠNG PHÁP PHÂN TÍCH CÚ PHÁP Phƣơng pháp phân tích cú pháp xuống 2.3 Phƣơng pháp tiên đoán  Giải thuật: Else if (aΣ đỉnh stack buffer) then đối sánh a đỉnh stack buffer Else if (AΔ đỉnh stack) (a Σ đỉnh buffer) then if (M[A,a]=A) then triển khai A đỉnh stack trúc máy tính Hệ 199 ElseGiáoxtrình k0Kiến điều hành CP VPG, dừng vịng lặp CuuDuongThanCong.com https://fb.com/tailieudientucntt TRƢỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƢƠNG CÁC PHƢƠNG PHÁP PHÂN TÍCH CÚ PHÁP Phƣơng pháp phân tích cú pháp xuống 2.3 Phƣơng pháp tiên đốn  Ví dụ: SaA AbA | c Xâu x: abbc có CP VP ? CuuDuongThanCong.com Giáo trình Kiến trúc máy tính Hệ điều hành 200 https://fb.com/tailieudientucntt TRƢỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƢƠNG CÁC PHƢƠNG PHÁP PHÂN TÍCH CÚ PHÁP Phƣơng pháp phân tích cú pháp xuống 2.3 Phƣơng pháp tiên đốn  Ví dụ: a S A CuuDuongThanCong.com b c AbA Ac $ SaA Giáo trình Kiến trúc máy tính Hệ điều hành 201 https://fb.com/tailieudientucntt TRƢỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƢƠNG CÁC PHƢƠNG PHÁP PHÂN TÍCH CÚ PHÁP Phƣơng pháp phân tích cú pháp xuống 2.3 Phƣơng pháp tiên đốn  Ví dụ: STT Stack Buffer Hành động (0) S$ abbc$ Triển khai SaA (1) aA$ abbc$ Đối sánh (2) A$ bbc$ Triển khai AbA (3) bA$ bbc$ Đối sánh A$ bc$ Triển khai AbA 202 (4) CuuDuongThanCong.com Giáo trình Kiến trúc máy tính Hệ điều hành https://fb.com/tailieudientucntt TRƢỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƢƠNG CÁC PHƢƠNG PHÁP PHÂN TÍCH CÚ PHÁP Phƣơng pháp phân tích cú pháp xuống 2.3 Phƣơng pháp tiên đốn  Ví dụ: STT Stack Hành động Buffer (5) bA$ bc$ Đối sánh (6) A$ c$ Triển khai Ac (7) c$ c$ Đối sánh (8) $ $ Chấp nhận x cp CuuDuongThanCong.com Giáo trình Kiến trúc máy tính Hệ điều hành 203 https://fb.com/tailieudientucntt TRƢỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƢƠNG CÁC PHƢƠNG PHÁP PHÂN TÍCH CÚ PHÁP Phƣơng pháp phân tích cú pháp xuống 2.3 Phƣơng pháp tiên đoán  Xây dựng bảng tiên đoán M: qui tắc (1)  sx A M[A,a]=A với afirst()  (2)  sx A M[A,a]=A với a follow(A) CuuDuongThanCong.com Giáo trình Kiến trúc máy tính Hệ điều hành 204 https://fb.com/tailieudientucntt TRƢỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƢƠNG CÁC PHƢƠNG PHÁP PHÂN TÍCH CÚ PHÁP Phƣơng pháp phân tích cú pháp xuống 2.3 Phƣơng pháp tiên đốn  Xây dựng bảng tiên đốn M: Ví dụ: xây dựng bảng tiên đoán M cho vp: (1) E  TE’ (2) (3) E’+TE’ |  (4) T  FT’ (5) (6) T’*FT’ |  CuuDuongThanCong.com Giáo trình Kiến trúc máy tính Hệ (7) (8) điều hành F(E) | id 205 https://fb.com/tailieudientucntt TRƢỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƢƠNG CÁC PHƢƠNG PHÁP PHÂN TÍCH CÚ PHÁP Phƣơng pháp phân tích cú pháp xuống 2.4 Phƣơng pháp đệ qui không quay lui - Về mặt nguyên lý giống pp tiên đoán - Khác lập trình: khơng tra bảng tiên đốn M mà mơ trực tiếp - Thay stack đệ qui chƣơng trình - Một k/h chƣa kết thúc: bdiễn biểu đồ cú pháp Giáo trình Kiến trúc máy tính Hệ điều hành 206 - Một biểu đồ cú pháp: bdiễn CT CuuDuongThanCong.com https://fb.com/tailieudientucntt TRƢỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƢƠNG CÁC PHƢƠNG PHÁP PHÂN TÍCH CÚ PHÁP Phƣơng pháp phân tích cú pháp xuống 2.4 Phƣơng pháp đệ qui khơng quay lui  Biểu đồ cú pháp: • K/h kết thúc đặt: • K/h chƣa kết thúc đặt: - Ví dụ: ETE’ E: CuuDuongThanCong.com T E’ Giáo trình Kiến trúc máy tính Hệ điều hành 207 https://fb.com/tailieudientucntt TRƢỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƢƠNG CÁC PHƢƠNG PHÁP PHÂN TÍCH CÚ PHÁP Phƣơng pháp phân tích cú pháp xuống 2.4 Phƣơng pháp đệ qui không quay lui  CT biểu diễn cho biểu đồ cú pháp: (1) Sự kết tiếp nút: kết tiếp đoạn ctcon (2) Sự rẽ nhánh tạo thành cấu trúc chọn 1 A: CuuDuongThanCong.com 2 Giáo trình Kiến trúc máy tính Hệ điều hành  208 https://fb.com/tailieudientucntt TRƢỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƢƠNG CÁC PHƢƠNG PHÁP PHÂN TÍCH CÚ PHÁP Phƣơng pháp phân tích cú pháp xuống 2.4 Phƣơng pháp đệ qui không quay lui  CT biểu diễn cho biểu đồ cú pháp: (3) Lặp kiểm tra đk sau  (4) Lặp kiểm tra đk trƣớc  (5) Nếu k/h tiếp=a Đọcký tự Giáo trình Kiến trúc máy tính Hệ điều hành Ngƣợc lại báo lỗi CuuDuongThanCong.com a 209 https://fb.com/tailieudientucntt TRƢỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƢƠNG CÁC PHƢƠNG PHÁP PHÂN TÍCH CÚ PHÁP Phƣơng pháp phân tích cú pháp xuống 2.4 Phƣơng pháp đệ qui không quay lui  CT biểu diễn cho biểu đồ cú pháp: (6) Gọi ctcon B CuuDuongThanCong.com Giáo trình Kiến trúc máy tính Hệ điều hành B 210 https://fb.com/tailieudientucntt TRƢỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƢƠNG CÁC PHƢƠNG PHÁP PHÂN TÍCH CÚ PHÁP Phƣơng pháp phân tích cú pháp xuống 2.4 Phƣơng pháp đệ qui không quay lui  Thuật toán: k/htiep: ký hiệu kết thúc; function Dockh:ký hiệu kết thúc; {đọc k/hiệu tiếp x} Procedure Baoloi; {đƣa thông báo lỗi} Procedure I;{các Ctcon biểu diễn AΔ} CuuDuongThanCong.com Giáo trình Kiến trúc máy tính Hệ điều hành 211 https://fb.com/tailieudientucntt TRƢỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƢƠNG CÁC PHƢƠNG PHÁP PHÂN TÍCH CÚ PHÁP Phƣơng pháp phân tích cú pháp xuống 2.4 Phƣơng pháp đệ qui khơng quay lui  Thuật tốn: Procedure PTCP; Begin k/htiep:=Dockh; S; if k/htiep=$ then x CP else baoloi; End CuuDuongThanCong.com Giáo trình Kiến trúc máy tính Hệ điều hành 212 https://fb.com/tailieudientucntt TRƢỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG CHƢƠNG CÁC PHƢƠNG PHÁP PHÂN TÍCH CÚ PHÁP Phƣơng pháp phân tích cú pháp xuống 2.4 Phƣơng pháp đệ qui không quay lui  Ví dụ: CuuDuongThanCong.com Giáo trình Kiến trúc máy tính Hệ điều hành 213 https://fb.com/tailieudientucntt ... NHẬP MƠN CHƢƠNG TRÌNH DỊCH Các khái niệm 1.2 Khái niệm chƣơng trình dịch Chƣơng trình dịch chƣơng trình dùng để dịch chƣơng trình (CT nguồn) viết NNLT (NN nguồn) sang chƣơng trình tƣơng đƣơng... NẴNG CHƢƠNG NHẬP MƠN CHƢƠNG TRÌNH DỊCH Các khái niệm 1.3 Phân loại chƣơng trình dịch  Trình thơng dịch Dữ liệu CT nguồn CuuDuongThanCong.com Trình thơng dịch Giáo trình Kiến trúc máy tính Hệ... Các khái niệm 1.3 Phân loại chƣơng trình dịch  Trình biên dịch Dữ liệu CT nguồn Trình biên dịch CT đích Thời gian dịch CuuDuongThanCong.com Giáo trình Kiến trúc máy tính Hệ điều hành Máy tính

Ngày đăng: 25/08/2020, 14:40

Xem thêm:

TỪ KHÓA LIÊN QUAN