Các ngôn ngữ lập trình là sự thỏa hiệp giữa con người và máy móc Khái niệm:: Đánh đổi Nguồn:: Con người bị giới hạn ở thời gian và sự chú ý. Máy tính bị giới hạn ở khả năng tính toán và bộ lưu trữ