TAILIEUCHUNG - Tài liệu trình biên dịch C (ĐH Cần Thơ) part 27

KHỐI CƠ BẢN VÀ LƯU ÐỒ Ðồ thị biểu diễn các lệnh ba địa chỉ, được gọi là lưu đồ, giúp ta hiểu các giải thuật sinh mã ngay cả khi đồ thị không được xác định cụ thể bằng giải thuật sinh mã. Các nút của lưu đồ biểu diễn sự tính toán, các cạnh biểu diễn dòng điều khiển. 1. Khối cơ bản Khối cơ bản (basic block) là chuỗi các lệnh kế tiếp nhau trong đó dòng điều khiển đi vào lệnh đầu tiên của khối và ra ở lệnh cuối cùng của khối mà không bị dừng hoặc rẽ. | IV. KHỐI CƠ BẢN VÀ LƯU ĐỒ Đồ thị biểu diễn các lệnh ba địa chỉ được gọi là lưu đồ giúp ta hiểu các giải thuật sinh mã ngay cả khi đồ thị không được xác định cụ thể bằng giải thuật sinh mã. Các nút của lưu đồ biểu diễn sự tính toán các cạnh biểu diễn dòng điều khiển. 1. Khối cơ bản Khối cơ bản basic block là chuỗi các lệnh kế tiếp nhau trong đó dòng điều khiển đi vào lệnh đầu tiên của khối và ra ở lệnh cuối cùng của khối mà không bị dừng hoặc rẽ nhánh. Ví dụ chuỗi lệnh ba địa chỉ sau tạo nên một khối cơ bản ti a a t2 a b t3 2 t2 Í4 ti t2 t5 b b tó Í4 t5 Lệnh ba địa chỉ x y z dùng các giá trị được chứa ở các vị trí nhớ của y z để thực hiện phép cộng và xác định địa chỉ của x để lưu kết quả phép cộng vào. Một tên trong khối cơ bản được gọi là sống tại một điểm nào đó nếu giá trị của nó sẽ được sử dụng sau điểm đó trong chương trình hoặc được dùng ở khối cơ bản khác. Giải thuật sau đây phân chia chuỗi các lệnh ba địa chỉ sang các khối cơ bản. Giải thuật Phân chia các khối cơ bản Input Các lệnh ba địa chỉ. Output Danh sách các khối cơ bản với từng chuỗi các lệnh ba địa chỉ cho từng khối. Phương pháp 1. Xác định tập các lệnh dẫn đầu leader các lệnh đầu tiên của các khối cơ bản ta dùng các quy tắc sau i Lệnh đầu tiên là lệnh dẫn đầu. ii Bất kỳ lệnh nào là đích nhảy đến của lệnh GOTO có điều kiện hoặc không điều kiện đều là lệnh dẫn đầu. iii Bất kỳ lệnh nào đi sau lệnh GOTO có điều kiện hoặc không điều kiện đều là lệnh dẫn đầu. 2. Với mỗi lệnh dẫn đầu khối cơ bản gồm có nó và tất cả các lệnh tiếp theo nhưng không gồm một lệnh dẫn đầu nào khác hay là lệnh kết thúc chương trình. Ví dụ Đoạn chương trình sau tính tích vectơ vô hướng của hai vectơ a và b có độ dài 20. Begin prod 0 i 1 Repeat prod prod a i b i 197 i i 1 Until i 20 End Hình - Chương trình tính tích vectơ vô hướng Đoạn chương trình này được dịch sang mã ba địa chỉ như sau 1 prod 0 2 i 1 3 ti 4 i 4 t2 a t1 tính a i 5 t3 4 i 6 t4 b t3 7 t5 t2 t4 8 t6 prod t5 9 prod t6 10 t7 i 1 11 i t7 12 if i 20 goto 3

TAILIEUCHUNG - Chia sẻ tài liệu không giới hạn
Địa chỉ : 444 Hoang Hoa Tham, Hanoi, Viet Nam
Website : tailieuchung.com
Email : tailieuchung20@gmail.com
Tailieuchung.com là thư viện tài liệu trực tuyến, nơi chia sẽ trao đổi hàng triệu tài liệu như luận văn đồ án, sách, giáo trình, đề thi.
Chúng tôi không chịu trách nhiệm liên quan đến các vấn đề bản quyền nội dung tài liệu được thành viên tự nguyện đăng tải lên, nếu phát hiện thấy tài liệu xấu hoặc tài liệu có bản quyền xin hãy email cho chúng tôi.
Đã phát hiện trình chặn quảng cáo AdBlock
Trang web này phụ thuộc vào doanh thu từ số lần hiển thị quảng cáo để tồn tại. Vui lòng tắt trình chặn quảng cáo của bạn hoặc tạm dừng tính năng chặn quảng cáo cho trang web này.