Vâng, thuật ngữ entropy không chỉ xuất hiện trong nhiệt động lực học và lý thuyết thông tin, nó còn xuất hiện trong thế giới thực của việc nén dữ liệu. Trong bối cảnh đó, entropy mà máy nén nhìn thấy bằng với số bit mà nó tạo ra. (Lưu ý rằng tôi đã nói "entropy mà máy nén nhìn thấy ", bởi vì những gì được coi là entropy phụ thuộc vào kiểu máy nén sử dụng để mô tả dữ liệu đầu vào. Đây là lý do tại sao các máy nén khác nhau tạo ra các tệp có kích thước khác nhau: entropy là gì cái này là cấu trúc có thể khai thác cho cái kia.)
Về nguyên tắc, điều này có thể được áp dụng tuyệt vời cho độ phức tạp của mã nguồn: "Chỉ" viết một máy nén chỉ hoạt động trên mã nguồn tuân thủ tiêu chuẩn hoàn toàn và nén nó thực sự phân tích cú pháp như trình biên dịch, tạo ra cây cú pháp tương ứng. Sau đó, nó có thể đi theo cây cú pháp này và quyết định tại mỗi nút mà các nút có thể có ở mỗi điểm, mã hóa nút đó với kiến thức đó.
Vì vậy, ví dụ, nếu ngôn ngữ cho phép một số nhận dạng hiện có hoặc một cái gì đó được đặt trong ngoặc đơn hoặc một sản phẩm tại một điểm cụ thể, máy nén sẽ tính các số nhận dạng hiện có có thể, đưa thông tin loại vào tài khoản (giả sử bạn có 3 số nhận dạng như vậy ) và thêm 2 cho hai biểu thức con có thể, đưa ra 5 khả năng. Vì vậy, nút sẽ được mã hóa bằng lb 5 = 2.32
bit. Trong trường hợp có hai biểu hiện con có thể, sẽ cần nhiều bit hơn để mã hóa nội dung của chúng.
Điều này thực sự sẽ đưa ra một thước đo rất chính xác cho sự phức tạp của mã như nó là. Tuy nhiên, biện pháp này vẫn vô dụng! Thật vô ích vì cùng một lý do là tất cả các phép đo độ phức tạp của mã đều vô dụng: Chúng thất bại trong việc kết nối giữa độ phức tạp của mã được đo (bất cứ điều gì có thể) và độ phức tạp của vấn đề mà mã giải quyết. Bạn luôn có thể tìm thấy các giải pháp phức tạp một cách lố bịch cho các vấn đề lập trình của mình để gây ấn tượng với nhà tuyển dụng về số lượng LỘC của bạn, nhưng không có biện pháp phức tạp mã nào sẽ cho bạn biết rằng nhiệm vụ có thể đã được giải quyết với một phần nỗ lực.