कंपाइलर्स के संदर्भ में, बाध्यकारी वह चरण है जहां पता संदर्भ वास्तविक पूर्ण पते में बदल दिए जाते हैं।
जब कार्यक्रम संकलित, हरेक प्रतीक का पता (चर, समारोह) है प्रतीक नाम के साथ एक रिश्तेदार वस्तु मॉड्यूल की शुरुआत से ऑफसेट के रूप में उदाहरण के लिए प्रतीक तालिका में संग्रहीत किया जाता है, एक साथ। प्रतीकों का नाम आवश्यक है क्योंकि प्रतीकों को किसी अन्य ऑब्जेक्ट मॉड्यूल से बुलाया जा सकता है।
जब प्रोग्राम से जुड़ा हुआ है, तो ऑब्जेक्ट मॉड्यूल को एक प्रोग्राम फ़ाइल में जोड़ा जाता है और प्रतीक नामों की आवश्यकता नहीं होती है। यदि कार्यक्रम ज्ञात पूर्ण पते से जुड़ा हुआ है, तो सभी पते संदर्भ बाध्य इस चरण में पहले से ही पूर्ण पते में हो सकते हैं।
हालांकि, पीसी: एस जैसे वर्कस्टेशन में, प्रोग्राम किसी भी पते पर लोड किया जा सकता है, इसलिए पता लिंक समय पर ज्ञात नहीं है। इसलिए, अतिरिक्त स्थानान्तरण जानकारी प्रोग्राम फ़ाइल में संग्रहीत की जाती है ताकि लोडर लोड समय पर पते को बाध्य कर सके।
बाध्यकारी स्थानान्तरण जानकारी का उपयोग करके लोड समय पर किया जाता है। जब पता चलाना है कि कार्यक्रम कहां जा रहा है, तो लोडर रिश्तेदार पते को प्रतिस्थापन जानकारी का उपयोग करके पूर्ण पते के साथ बदल देता है जो बताता है कि कोड में परिवर्तनों को कहां करने की आवश्यकता है।
गतिशील वस्तुओं/चर के लिए, बाध्यकारी रनटाइम पर किया जा सकता है। (मुझे लगता है कि यह आमतौर पर देर से बाध्यकारी कहा जाता है।)
आमतौर पर आपको बाध्यकारी के बारे में ज्यादा परवाह करने की आवश्यकता नहीं होती है, कम से कम नहीं जब प्रारंभिक बाध्यकारी का उपयोग किया जाता है। (हालांकि, रनटाइम पर बाध्यकारी प्रदर्शन और सुरक्षा पर नकारात्मक प्रभाव डाल सकता है।)
यह भी ध्यान में रखना होगा कि बाध्यकारी बनाम क्या है जो लिंक कर रहा है। जैसे एडा उन लोगों के लिए अलग-अलग कदमों का उपयोग करता है, जबकि सी उन्हें विलय/भ्रमित करता है। – ndim