स्थैतिक और गतिशील बंधन के बीच अंतर
विषय
- तुलना चार्ट:
- स्थैतिक बंधन की परिभाषाएँ
- ओवरलोडिंग के उदाहरण के साथ C ++ में स्थैतिक बंधन का कार्यान्वयन
- निष्कर्ष:
एक 'फंक्शन डेफिनिशन' के बाइंडिंग एसोसिएशन को 'फंक्शन कॉल' या 'वैरिएबल को' वैरिएबल 'की एसोसिएशन' बाइंडिंग 'कहा जाता है। संकलन के दौरान, प्रत्येक 'फ़ंक्शन परिभाषा' को एक मेमोरी एड्रेस दिया जाता है; जैसे ही फ़ंक्शन कॉलिंग की जाती है, प्रोग्राम निष्पादन का नियंत्रण उस मेमोरी पते पर चला जाता है और उस स्थान पर निष्पादित फ़ंक्शन कोड संग्रहीत हो जाता है, यह 'फ़ंक्शन परिभाषा' के लिए 'फ़ंक्शन कॉल' की बाइंडिंग है। बाइंडिंग को 'स्टैटिक बाइंडिंग' और 'डायनेमिक बाइंडिंग' के रूप में वर्गीकृत किया जा सकता है।
यदि यह रनटाइम से पहले ही ज्ञात हो जाता है, कि कौन सा फ़ंक्शन इनवॉइस किया जाएगा या किसी वैरिएबल को क्या आवंटित किया जाता है, तो यह एक 'स्टैटिक बाइंडिंग' है। अगर यह रनटाइम पर पता चलता है, तो इसे 'डायनामिक बाइंडिंग' कहा जाता है।
- तुलना चार्ट
- परिभाषा
- मुख्य अंतर
- निष्कर्ष
तुलना चार्ट:
तुलना के लिए आधार | स्थैतिक बंधन | गतिशील बंधन |
---|---|---|
घटना की घटना | संकलन समय पर होने वाली घटनाएं "स्टेटिक बाइंडिंग" हैं। | रन टाइम पर होने वाली घटनाएँ "डायनेमिक बाइंडिंग" होती हैं। |
जानकारी | किसी फ़ंक्शन को कॉल करने के लिए आवश्यक सभी जानकारी संकलन समय पर जानी जाती है। | सभी सूचनाओं को किसी फ़ंक्शन को कॉल करने की आवश्यकता होती है जो कि रन टाइम पर पता चलती है। |
लाभ | दक्षता। | लचीलापन। |
पहर | तेजी से निष्पादन। | धीमी गति से निष्पादन। |
वैकल्पिक नाम | अर्ली बाइंडिंग। | देर से बांधना। |
उदाहरण | अतिभारित फ़ंक्शन कॉल, अतिभारित ऑपरेटर। | जावा में वर्चुअल फ़ंक्शन, जावा में ओवरराइड तरीके। |
स्थैतिक बंधन की परिभाषाएँ
जब कंपाइलर किसी फ़ंक्शन को कॉल करने के लिए आवश्यक सभी सूचनाओं या संकलन समय के दौरान चर के सभी मूल्यों को स्वीकार करता है, तो इसे "कहा जाता है"स्थिर बंधन"। चूंकि रनटाइम से पहले सभी आवश्यक जानकारी ज्ञात है, यह कार्यक्रम की दक्षता को बढ़ाता है, और यह एक कार्यक्रम के निष्पादन की गति को भी बढ़ाता है।
स्टेटिक बाइंडिंग एक प्रोग्राम को बहुत कुशल बनाता है, लेकिन यह प्रोग्राम के लचीलेपन को कम करता है, क्योंकि 'वेरिएबल' और 'फंक्शन कॉलिंग' के मान प्रोग्राम में पूर्वनिर्धारित होते हैं। स्टैटिक बाइंडिंग को कोडिंग के समय एक कार्यक्रम में लागू किया जाता है।
किसी फ़ंक्शन या ऑपरेटर को ओवरलोड करना संकलन-समय के बहुरूपता का उदाहरण है, अर्थात स्थिर बंधन।
ओवरलोडिंग के उदाहरण के साथ C ++ में स्थैतिक बंधन का कार्यान्वयन
#शामिल यहाँ प्रोग्राम के निष्पादन के रूप में पॉइंटर के मूल्य में परिवर्तन होता है और पॉइंटर का मूल्य यह तय करता है कि किस वर्ग के कार्य को लागू किया जाएगा। तो यहाँ, जानकारी रन टाइम पर दी गई है, यह निष्पादन को धीमा करने वाले डेटा को बांधने में समय लेता है। हालांकि, हम यह निष्कर्ष निकालते हैं कि जब हमें चर और फ़ंक्शन कॉलिंग के मूल्यों का पूर्व ज्ञान होता है, तो हम स्थैतिक बंधन को लागू करते हैं। इसके विपरीत, गतिशील बंधन में, हम निष्पादन के समय सभी जानकारी प्रदान करते हैं।
निष्कर्ष: