Chúng ta hãy phân loại dữ liệu thành ba loại: dữ liệu có thể đọc được bởi con người (thường là văn bản, thay đổi từ sách đến chương trình), dữ liệu dự định được đọc bởi máy tính và dữ liệu khác (phân tích hình ảnh hoặc âm thanh).
Đối với danh mục đầu tiên, chúng ta cần xử lý chúng thành một thứ mà máy tính có thể sử dụng. Vì các ngôn ngữ được sử dụng bởi con người nói chung có thể được nắm bắt tương đối tốt bởi các trình phân tích cú pháp, chúng tôi thường sử dụng các trình phân tích cú pháp cho việc này.
Một ví dụ về dữ liệu trong danh mục thứ ba sẽ là hình ảnh được quét của một trang trong cuốn sách mà bạn muốn phân tích thành văn bản. Đối với thể loại này, bạn hầu như luôn cần kiến thức rất cụ thể về đầu vào của mình và do đó bạn cần một chương trình cụ thể để phân tích cú pháp. Công nghệ phân tích cú pháp tiêu chuẩn sẽ không giúp bạn tiến xa đến đây.
Câu hỏi của bạn là về loại thứ hai: nếu chúng ta có dữ liệu ở dạng nhị phân, thì nó hầu như luôn là sản phẩm của một chương trình máy tính, dành cho một chương trình máy tính khác. Điều này ngay lập tức cũng có nghĩa là định dạng của dữ liệu được chọn bởi chương trình chịu trách nhiệm cho việc tạo ra nó.
Các chương trình máy tính hầu như luôn tạo ra dữ liệu theo định dạng có cấu trúc rõ ràng. Nếu chúng tôi phân tích một số đầu vào, về cơ bản chúng tôi đang cố gắng tìm ra cấu trúc của đầu vào. Với dữ liệu nhị phân, cấu trúc này thường rất đơn giản và dễ phân tích bằng máy tính.
Nói cách khác, thông thường sẽ hơi lãng phí khi tìm ra cấu trúc của đầu vào mà bạn đã biết cấu trúc. Vì phân tích cú pháp không miễn phí (cần nhiều thời gian và tăng thêm độ phức tạp cho chương trình của bạn), đây là lý do tại sao việc sử dụng từ vựng / trình phân tích cú pháp trên dữ liệu nhị phân là 'quá sai'.