आइए डेटा को तीन श्रेणियों में वर्गीकृत करें: मनुष्यों द्वारा पठनीय डेटा (आमतौर पर ग्रंथों, पुस्तकों से कार्यक्रमों में भिन्न), कंप्यूटर और अन्य डेटा (चित्र या ध्वनि पार्स करना) द्वारा पढ़ा जाने वाला डेटा।
पहली श्रेणी के लिए, हमें उन्हें किसी ऐसी चीज़ में संसाधित करने की आवश्यकता है जिसका कंप्यूटर उपयोग कर सकता है। जैसा कि मनुष्यों द्वारा उपयोग की जाने वाली भाषाओं को आमतौर पर पार्सर्स द्वारा अपेक्षाकृत अच्छी तरह से कैप्चर किया जा सकता है, हम आमतौर पर इसके लिए पार्सर का उपयोग करते हैं।
तीसरी श्रेणी में डेटा का एक उदाहरण एक पुस्तक की पृष्ठ की स्कैन की गई छवि होगी जिसे आप पाठ में पार्स करना चाहते हैं। इस श्रेणी के लिए, आपको लगभग हमेशा अपने इनपुट के बारे में बहुत विशिष्ट ज्ञान की आवश्यकता होती है, और इसलिए आपको इसे पार्स करने के लिए एक विशिष्ट कार्यक्रम की आवश्यकता होती है। मानक पार्सिंग तकनीक आपको यहां बहुत दूर तक नहीं मिलेगी।
आपका प्रश्न दूसरी श्रेणी के बारे में है: यदि हमारे पास डेटा है जो बाइनरी में है, तो यह लगभग हमेशा एक कंप्यूटर प्रोग्राम का एक उत्पाद है, जिसका उद्देश्य कंप्यूटर प्रोग्राम है। इसका तुरंत यह भी अर्थ है कि डेटा जिस प्रारूप में है, उसे उसके निर्माण के लिए जिम्मेदार प्रोग्राम द्वारा चुना गया है।
कंप्यूटर प्रोग्राम लगभग हमेशा एक प्रारूप में डेटा का उत्पादन करते हैं जिसमें एक स्पष्ट संरचना होती है। यदि हम कुछ इनपुट को पार्स करते हैं, तो हम अनिवार्य रूप से इनपुट की संरचना का पता लगाने की कोशिश कर रहे हैं । बाइनरी डेटा के साथ, यह संरचना आम तौर पर कंप्यूटर द्वारा पार्स करने के लिए बहुत सरल और आसान है।
दूसरे शब्दों में, यह आमतौर पर एक इनपुट की संरचना का पता लगाने के लिए एक बेकार का एक सा है, जिसके लिए आप पहले से ही संरचना को जानते हैं। चूंकि पार्सिंग मुफ़्त नहीं है (इसमें समय लगता है और आपके प्रोग्राम में जटिलता बढ़ जाती है), यही कारण है कि बाइनरी डेटा पर लेकर्स / पार्सर का उपयोग करना 'इतना गलत है'।