Trong lý thuyết chương trình dịch, copy propagation (tạm dịch: lan truyền sao chép) là quá trình thay thế đích của các lệnh gán trực tiếp bằng giá trị của nó.[1] Một lệnh gán trực tiếp là chỉ dẫn có dạng x = y, nghĩa là chỉ đơn giản gán giá trị của y cho x.

Từ đoạn mã sau:

y = x
z = 3 + y

Lan truyền sao chép sẽ cho:

z = 3 + x

Lan truyền sao chép thường sử dụng reaching definitions, use-def chainsdef-use chains khi tính toán những vị trí xuất hiện của đích có thể sửa một cách an toàn, thao tác gán có thể được loại bỏ.

Lan truyền sao chép là một phương pháp tối ưu thường được sử dụng sau khi các phương pháp khác đã thực hiện xong. Một số phương pháp tối ưu—chẳng han loại bỏ biểu thức con chung[1] -- bắt buộc copy propagation phải được chạy sau đó để đạt được sự tăng hiệu năng.

Tham khảo sửa

  1. ^ a b Aho, Alfred V.; Lam, Monica S.; Sethi, Ravi; Ullman, Jeffrey D. (2007). Compilers, Principles, Techniques, & Tools Second edition. ISBN 0-321-48681-1.

Đọc thêm sửa

  • Muchnick, Steven S. Advanced Compiler Design and Implementation. Morgan Kaufmann. 1997.