Constant propagation là gì?

Noun Programming
Lan truyền hằng số

Lan truyền hằng số (constant propagation) là quá trình thay thế các giá trị của các hằng số (constant) đã biết trong biểu thức (expression). Lan truyền hằng số (constant propagation) loại bỏ các trường hợp trong đó các giá trị được sao chép từ vị trí hoặc biến này sang vị trí hoặc biến khác, để gán (assign) giá trị của chúng cho một biến (variable) khác. Hãy xem ví dụ code bên dưới:


  int x = 14;
  int y = 7 - x / 2;
  return y * (28 / x + 2);

Ở đây, x được gán (assign) là một hằng số, và do đó, có thể được lan truyền hai lần. Lan truyền hằng số (constant propagation) sẽ tạo ra:


  int x = 14;
  int y = 7 - 14 / 2;
  return y * (28 / 14 + 2);

Tiếp tục lan truyền sẽ mang lại kết quả sau (có thể sẽ được tối ưu hóa hơn nữa bằng cách loại bỏ mã chết (dead-code elimination) của cả x và y.)


  int x = 14;
  int y = 0;
  return 0;

Learning English Everyday