इनपुट बफरिंग क्या है? | Input Buffering in Compiler Design in Hindi


इनपुट बफरिंग क्या है? (What is Input Buffering in Compiler Design?)

इनपुट बफरिंग (Input Buffering) कंपाइलर डिज़ाइन का एक महत्वपूर्ण भाग है, जिसका उपयोग लेक्सिकल एनालिसिस के दौरान सोर्स कोड को पढ़ने और प्रोसेस करने के लिए किया जाता है। यह तकनीक स्कैनिंग की गति को बढ़ाने में मदद करती है और कैरेक्टर बाय कैरेक्टर पढ़ने में होने वाली समस्याओं को कम करती है।

इनपुट बफरिंग की आवश्यकता

लेक्सिकल एनालाइज़र सोर्स कोड को स्कैन करता है और टोकन्स (Tokens) में विभाजित करता है। यदि यह प्रत्येक कैरेक्टर को एक-एक करके पढ़े, तो यह बहुत धीमा हो जाएगा। इसलिए, कंपाइलर इनपुट बफरिंग का उपयोग करता है ताकि डेटा तेजी से पढ़ा जा सके और प्रोसेसिंग को कुशल बनाया जा सके।

इनपुट बफरिंग की प्रक्रिया (Input Buffering Process)

इनपुट बफरिंग में डेटा को स्टोर करने के लिए एक बफर (Buffer) का उपयोग किया जाता है। यह बफर दो भागों में विभाजित किया जाता है:

  • पहला बफर (First Buffer)
  • दूसरा बफर (Second Buffer)

जब पहला बफर पूरा भर जाता है, तो इसे प्रोसेस किया जाता है और दूसरा बफर डेटा को लोड करने के लिए तैयार हो जाता है। इस तकनीक को टू-बफरिंग स्कीम (Two-Buffering Scheme) कहा जाता है।

टू-बफरिंग स्कीम (Two-Buffering Scheme)

इस तकनीक में, बफर को दो भागों में विभाजित किया जाता है ताकि एक भाग को प्रोसेस करने के दौरान दूसरा भाग डेटा प्राप्त कर सके।

इनपुट बफर की संरचना

पहला बफर दूसरा बफर
डेटा लोड किया गया प्रोसेसिंग के लिए तैयार
स्कैनिंग जारी डाटा इनपुट की प्रतीक्षा

इनपुट बफरिंग के मुख्य कार्य

  • सोर्स कोड को तेज़ी से पढ़ना।
  • मेमोरी एक्सेस टाइम को कम करना।
  • लेक्सिकल एनालिसिस की गति को बढ़ाना।
  • प्रोसेसिंग के दौरान बफर स्विचिंग के माध्यम से दक्षता बनाए रखना।

इनपुट बफरिंग का उदाहरण (Example of Input Buffering)

मान लीजिए हमारे पास निम्नलिखित सोर्स कोड है:

int a = b + 10;

अगर यह कैरेक्टर बाय कैरेक्टर पढ़ा जाए तो हर बार मेमोरी से डेटा एक्सेस करना पड़ेगा, जिससे कंपाइलर धीमा हो जाएगा। लेकिन इनपुट बफरिंग के जरिए:

  • पहला बफर: int a = b +
  • दूसरा बफर: 10; ...

यह प्रक्रिया मेमोरी एक्सेस टाइम को कम कर देती है और प्रोसेसिंग को तेज बनाती है।

इनपुट बफरिंग की सीमाएँ (Limitations of Input Buffering)

  • बफर को स्विच करने में अतिरिक्त समय लग सकता है।
  • डबल बफरिंग सिस्टम मेमोरी उपयोग को बढ़ा सकता है।
  • बड़े प्रोग्राम्स में अधिक मेमोरी की आवश्यकता हो सकती है।

इनपुट बफरिंग बनाम बिना बफरिंग (Input Buffering vs Without Buffering)

इनपुट बफरिंग बिना बफरिंग
डाटा को तेजी से पढ़ने के लिए बफर का उपयोग करता है। हर कैरेक्टर को अलग-अलग मेमोरी से एक्सेस करता है।
मेमोरी एक्सेस टाइम कम होता है। हर बार मेमोरी एक्सेस होने से समय अधिक लगता है।
तेज़ प्रोसेसिंग करता है। धीमी प्रोसेसिंग होती है।

निष्कर्ष (Conclusion)

इनपुट बफरिंग कंपाइलर के लेक्सिकल एनालिसिस चरण में उपयोग की जाने वाली एक प्रभावी तकनीक है, जो सोर्स कोड को तेजी से स्कैन करने में मदद करती है। यह प्रक्रिया टू-बफरिंग स्कीम पर आधारित होती है और प्रोसेसिंग स्पीड को बढ़ाने में महत्वपूर्ण भूमिका निभाती है।

Related Post

Comments

Comments