The term is often used in contrast to declarative programming, which focuses on what the program should accomplish without specifying how the program should achieve the result.
Thuật ngữ này thường được dùng trái ngược với lập trình khai báo, vốn tập trung vào những gì mà chương trình nên hoàn thành mà không nêu rõ chương trình đạt được kết quả như thế nào.