Clasifiquemos los datos en tres categorías: datos legibles por humanos (generalmente textos, que varían de libros a programas), datos destinados a ser leídos por computadoras y otros datos (análisis de imágenes o sonido).
Para la primera categoría, necesitamos procesarlos en algo que una computadora pueda usar. Como los lenguajes utilizados por los humanos generalmente pueden ser capturados relativamente bien por los analizadores sintácticos, generalmente usamos analizadores para esto.
Un ejemplo de datos en la tercera categoría sería una imagen escaneada de una página de un libro que desea analizar en texto. Para esta categoría, casi siempre necesita un conocimiento muy específico sobre su entrada y, por lo tanto, necesita un programa específico para analizarlo. La tecnología de análisis estándar no lo llevará muy lejos aquí.
Su pregunta es sobre la segunda categoría: si tenemos datos que están en binario, casi siempre es un producto de un programa de computadora, destinado a otro programa de computadora. Esto también significa inmediatamente que el programa responsable de su creación elige el formato en el que se encuentran los datos.
Los programas de computadora casi siempre producen datos en un formato que tiene una estructura clara. Si analizamos alguna entrada, esencialmente estamos tratando de descubrir la estructura de la entrada. Con datos binarios, esta estructura es generalmente muy simple y fácil de analizar por computadoras.
En otras palabras, normalmente es un desperdicio descubrir la estructura de una entrada para la que ya conoce la estructura. Como el análisis no es gratuito (lleva tiempo y agrega complejidad a su programa), esta es la razón por la cual el uso de lexers / analizadores en datos binarios es 'tan incorrecto'.