แบ่งหมวดหมู่ข้อมูลออกเป็นสามหมวดหมู่: ข้อมูลที่มนุษย์อ่านได้ (โดยทั่วไปคือข้อความ, หนังสือที่แตกต่างกันไปตามโปรแกรม) ข้อมูลที่คอมพิวเตอร์ตั้งใจอ่านและข้อมูลอื่น ๆ (แยกวิเคราะห์รูปภาพหรือเสียง)
สำหรับหมวดหมู่แรกเราต้องประมวลผลเป็นสิ่งที่คอมพิวเตอร์สามารถใช้ได้ เนื่องจากภาษาที่มนุษย์ใช้มักจะถูกจับได้ค่อนข้างดีโดยตัวแยกวิเคราะห์เรามักใช้ตัวแยกวิเคราะห์นี้
ตัวอย่างของข้อมูลในหมวดหมู่ที่สามจะเป็นภาพสแกนของหน้าหนังสือที่คุณต้องการแยกวิเคราะห์เป็นข้อความ สำหรับหมวดหมู่นี้คุณมักจะต้องการความรู้เฉพาะเกี่ยวกับข้อมูลที่คุณป้อนดังนั้นคุณจึงจำเป็นต้องมีโปรแกรมเฉพาะในการแยกวิเคราะห์ เทคโนโลยีการแยกวิเคราะห์แบบมาตรฐานจะช่วยให้คุณไปได้ไกล
คำถามของคุณเกี่ยวกับหมวดหมู่ที่สอง: หากเรามีข้อมูลที่อยู่ในรูปแบบไบนารีมันเกือบจะเป็นผลิตภัณฑ์ของโปรแกรมคอมพิวเตอร์ที่มีไว้สำหรับโปรแกรมคอมพิวเตอร์อื่น ทันทีซึ่งหมายความว่ารูปแบบข้อมูลที่เลือกจะถูกเลือกโดยโปรแกรมที่รับผิดชอบในการสร้าง
โปรแกรมคอมพิวเตอร์มักจะผลิตข้อมูลในรูปแบบที่มีโครงสร้างชัดเจน หากเราแยกวิเคราะห์บางส่วนเราจะพยายามหาโครงสร้างของอินพุต ด้วยข้อมูลไบนารีโครงสร้างนี้โดยทั่วไปจะง่ายมากและง่ายต่อการแยกวิเคราะห์โดยคอมพิวเตอร์
กล่าวอีกนัยหนึ่งคือโดยปกติแล้วจะมีเศษขยะเล็กน้อยที่จะเข้าใจโครงสร้างของอินพุตที่คุณรู้จักโครงสร้างนั้นอยู่แล้ว เนื่องจากการแยกวิเคราะห์ไม่ฟรี (ต้องใช้เวลาและเพิ่มความซับซ้อนให้กับโปรแกรมของคุณ) นี่คือเหตุผลว่าทำไมการใช้ lexers / parsers กับข้อมูลไบนารีจึง 'ผิดปกติ'