Parameter Passing in Compiler Design in Hindi | पैरामीटर पासिंग की रणनीतियाँ
Parameter Passing in Compiler Design in Hindi | पैरामीटर पासिंग की रणनीतियाँ
पैरामीटर पासिंग (Parameter Passing) क्या होता है?
Compiler Design में Parameter Passing वह तकनीक होती है जिसके माध्यम से एक फंक्शन को डेटा (आर्गुमेंट्स) भेजा जाता है। यह पैरामीटर पासिंग रनटाइम पर विभिन्न मेमोरी एलोकेशन रणनीतियों पर निर्भर करता है और प्रोग्रामिंग लैंग्वेज के अनुसार भिन्न हो सकता है।
पैरामीटर पासिंग की प्रमुख विधियाँ
Compiler में विभिन्न प्रकार की पैरामीटर पासिंग विधियाँ होती हैं, जिनमें मुख्यतः निम्नलिखित शामिल हैं:
- Call by Value (कॉल बाय वैल्यू)
- Call by Reference (कॉल बाय रेफरेंस)
- Call by Copy-Restore (कॉल बाय कॉपी-रिस्टोर)
- Call by Name (कॉल बाय नेम)
1. Call by Value (कॉल बाय वैल्यू)
इस विधि में फंक्शन को वास्तविक पैरामीटर (Actual Parameter) की एक कॉपी दी जाती है। फंक्शन के अंदर कोई भी बदलाव वास्तविक वैरिएबल को प्रभावित नहीं करता है।
| लाभ | हानि |
|---|---|
| मूल डेटा सुरक्षित रहता है | बड़ी डेटा संरचनाओं के लिए अधिक मेमोरी की आवश्यकता |
| सुरक्षित और डिबगिंग में आसान | प्रदर्शन पर प्रभाव पड़ सकता है |
2. Call by Reference (कॉल बाय रेफरेंस)
इस विधि में वास्तविक पैरामीटर का मेमोरी एड्रेस फंक्शन को दिया जाता है। किसी भी बदलाव से ओरिजिनल वैरिएबल प्रभावित होता है।
| लाभ | हानि |
|---|---|
| कम मेमोरी उपयोग | अनपेक्षित डेटा परिवर्तन की संभावना |
| डेटा को सीधे अपडेट करने की क्षमता | डिबगिंग कठिन |
3. Call by Copy-Restore (कॉल बाय कॉपी-रिस्टोर)
इस विधि में कॉल बाय वैल्यू और कॉल बाय रेफरेंस दोनों की विशेषताएँ होती हैं। पैरामीटर को पहले कॉपी किया जाता है, फिर प्रोसेसिंग के बाद उसकी नई वैल्यू वापस मूल वैरिएबल में स्टोर कर दी जाती है।
| लाभ | हानि |
|---|---|
| डेटा सुरक्षा और अद्यतन दोनों की सुविधा | प्रदर्शन पर नकारात्मक प्रभाव |
| समान्यतः डायनामिक पैरामीटर्स के लिए उपयोगी | मेमोरी ओवरहेड |
4. Call by Name (कॉल बाय नेम)
इस विधि में पैरामीटर को पास करते समय उसका मेमोरी एड्रेस या वैल्यू पास नहीं की जाती, बल्कि पैरामीटर को एक एक्सप्रेशन के रूप में पार्स किया जाता है और जब इसकी आवश्यकता होती है तभी इसे एक्सपैंड किया जाता है।
| लाभ | हानि |
|---|---|
| काफी लचीला | ध्यानपूर्वक उपयोग न करने पर अप्रत्याशित परिणाम |
| लेजी इवाल्यूएशन की सुविधा | प्रोसेसिंग स्लो हो सकती है |
निष्कर्ष
Compiler Design में विभिन्न प्रकार की Parameter Passing रणनीतियाँ उपयोग की जाती हैं, जो कार्यक्षमता और डेटा सुरक्षा के अनुसार भिन्न होती हैं। Call by Value सुरक्षित होती है लेकिन मेमोरी अधिक लेती है, Call by Reference तेज होती है लेकिन डेटा को बदल सकती है, Call by Copy-Restore एक संतुलित विकल्प है, जबकि Call by Name का उपयोग लेजी इवाल्यूएशन के लिए किया जाता है।
Related Articles
Code Improving Transformations in Compiler Design in Hindi | कोड इंप्रूविंग ट्रांसफॉर्मेशन
कोड इंप्रूविंग ट्रांसफॉर्मेशन (Code Improving Transformation...
Read More →Introduction to Global Data Flow Analysis in Compiler Design in Hindi | ग्लोबल डेटा फ्लो एनालिसिस का परिचय
ग्लोबल डेटा फ्लो एनालिसिस (Global Data Flow Analysis) क्या ह...
Read More →Loop Optimization in Compiler Design in Hindi | लूप ऑप्टिमाइजेशन
लूप ऑप्टिमाइजेशन (Loop Optimization) क्या है? Compiler Design ...
Read More →Dead Code Elimination in Compiler Design in Hindi | डेड कोड एलिमिनेशन
डेड कोड एलिमिनेशन (Dead Code Elimination) क्या है? Compiler Des...
Read More →Loops in Flow Graphs in Compiler Design in Hindi | फ्लो ग्राफ्स में लूप्स
फ्लो ग्राफ में लूप्स (Loops in Flow Graphs) क्या होते हैं?...
Read More →