मशीन आश्रित और मशीन स्वतंत्र कोड अनुकूलन के बीच अंतर

विषयसूची:

मशीन आश्रित और मशीन स्वतंत्र कोड अनुकूलन के बीच अंतर
मशीन आश्रित और मशीन स्वतंत्र कोड अनुकूलन के बीच अंतर

वीडियो: मशीन आश्रित और मशीन स्वतंत्र कोड अनुकूलन के बीच अंतर

वीडियो: मशीन आश्रित और मशीन स्वतंत्र कोड अनुकूलन के बीच अंतर
वीडियो: अनुकूलन का स्रोत | प्रिंसिपल | कंपाइलर डिज़ाइन | लेक- 50 | भानु प्रिया 2024, जुलाई
Anonim

मुख्य अंतर - मशीन आश्रित बनाम मशीन स्वतंत्र कोड अनुकूलन

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

मशीन डिपेंडेंट कोड ऑप्टिमाइजेशन क्या है?

सोर्स कोड को ऑब्जेक्ट कोड या टारगेट कोड में कनवर्ट करते समय, कंपाइलर कई चरणों से गुजरता है। सबसे पहले, स्रोत कोड लेक्सिकल विश्लेषक को दिया जाता है जो टोकन का उत्पादन करता है। फिर, आउटपुट सिंटैक्स विश्लेषक को दिया जाता है जो जांच करता है कि जेनरेट किए गए टोकन तार्किक क्रम में हैं या नहीं। वह आउटपुट सिमेंटिक एनालाइजर को दिया जाता है। मान लें कि कोड का एक टुकड़ा p=q + r; है

यहाँ, p, q पूर्णांक हैं, लेकिन r एक फ्लोट है। सिमेंटिक एनालाइज़र का उपयोग करते हुए, c पूर्णांक चर को एक फ्लोट में बदल दिया जाता है। इसलिए, यह शब्दार्थ विश्लेषण करता है। सिमेंटिक एनालाइजर का आउटपुट इंटरमीडिएट कोड जनरेटर को जाता है। यह एक इंटरमीडिएट कोड देता है जो तब कोड ऑप्टिमाइज़र में जाता है। कोड ऑप्टिमाइज़ेशन वास्तविक स्रोत कोड के अर्थ को बदले बिना गैर-आवश्यक प्रोग्राम स्टेटमेंट को समाप्त करने की प्रक्रिया है। यह एक अनिवार्य अनुकूलन नहीं है, लेकिन यह लक्ष्य कोड के चलने के समय में सुधार कर सकता है।कोड ऑप्टिमाइज़र का आउटपुट कोड जनरेटर को दिया जाता है, और अंत में, लक्ष्य कोड बनाया जाता है।

मशीन आश्रित और मशीन स्वतंत्र कोड अनुकूलन के बीच अंतर
मशीन आश्रित और मशीन स्वतंत्र कोड अनुकूलन के बीच अंतर
मशीन आश्रित और मशीन स्वतंत्र कोड अनुकूलन के बीच अंतर
मशीन आश्रित और मशीन स्वतंत्र कोड अनुकूलन के बीच अंतर

चित्र 01: कंपाइलर के चरण

मशीन डिपेंडेंट कोड ऑप्टिमाइजेशन में सोर्स कोड पर ऑप्टिमाइजेशन लागू होता है। पर्याप्त मात्रा में संसाधनों का आवंटन इस अनुकूलन में कार्यक्रम के निष्पादन में सुधार कर सकता है।

मशीन स्वतंत्र कोड अनुकूलन क्या है?

जब मध्यवर्ती कोड पर अनुकूलन किया जाता है, तो इसे मशीन स्वतंत्र कोड अनुकूलन कहा जाता है। मशीन स्वतंत्र कोड अनुकूलन प्राप्त करने के लिए विभिन्न तकनीकें हैं। उन्हें निम्नलिखित उदाहरणों का उपयोग करके वर्णित किया गया है।

कोड की निम्न पंक्तियाँ पढ़ें।

के लिए (जे=0; जे<10; जे++) {

बी=एक्स+2;

ए[जे]=5 जे;

}

उपरोक्त कोड के अनुसार, b=x+2 की गणना प्रत्येक पुनरावृत्ति में बार-बार की जाती है। एक बार b की गणना करने के बाद, यह नहीं बदलता है। तो, इस लाइन को लूप के बाहर इस प्रकार रखा जा सकता है।

बी=एक्स+2;

के लिए (j=0; j< 10; j++)

{ए[जे]=5जे;

}

इसे कोड मूवमेंट कहते हैं।

कोड की निम्न पंक्तियाँ पढ़ें।

जे=5;

अगर (जे==10) {

ए=बी+20;

}

उपरोक्त कोड के अनुसार, 'अगर ब्लॉक' कभी भी निष्पादित नहीं होगा क्योंकि j मान कभी भी 10 के बराबर नहीं होगा। यह पहले से ही मान 5 के लिए आरंभिक है। इसलिए, यदि ब्लॉक को हटाया जा सकता है। यह तकनीक डेड कोड एलिमिनेशन है।

एक और तरीका है ताकत कम करना। गुणन जैसे अंकगणितीय कार्यों के लिए अधिक मेमोरी, समय और CPU चक्रों की आवश्यकता होती है। इन महंगे भावों को सस्ते भावों से बदला जा सकता है जैसे b=a2; या जोड़ से बदला जा सकता है, b=a + a;

नीचे दिए गए कोड को देखें।

के लिए (जे=1; जे <=5; जे++) {

मान=जे5;

}

गुणा के बजाय, कोड को निम्नानुसार बदला जा सकता है।

इंट टेम्प=5;

के लिए (j=1; j<=5; j++) {

अस्थायी=अस्थायी + 5;

मान=अस्थायी;

}

उन अभिव्यक्तियों का मूल्यांकन करना संभव है जो रनटाइम पर स्थिरांक हैं। इसे निरंतर तह कहा जाता है। कहा जा सकता है जैसे कि b[j+1]=c [j+1];

इसके बजाय, इसे निम्नानुसार बदला जा सकता है।

n=जे +1;

बी[एन]=सी[एन];

लूप इस प्रकार हो सकते हैं।

के लिए (j=0; j<5; j++) {

प्रिंटफ ("ए\n");

}

के लिए (j=0; j <5; j++) {

प्रिंटफ ("बी\n");

}

प्रिंटिंग ए और बी, दोनों में पुनरावृत्तियों की संख्या समान है। दोनों को निम्न प्रकार से लूप के लिए एक में जोड़ा जा सकता है।

के लिए (j=0; j <5; j++) {

प्रिंटफ ("ए \n");

प्रिंटफ ("बी\n");

}

एक और महत्वपूर्ण तकनीक है कॉमन सब एक्सप्रेशन एलिमिनेशन। यह गणना करने के लिए समान भावों को एक चर के साथ बदलना है। नीचे दिए गए कोड को देखें।

ए=बीसी + के;

डी=बी सी + एम;

इस कोड को इस प्रकार बदला जा सकता है।

अस्थायी=बीसी;

ए=अस्थायी + कश्मीर;

d=अस्थायी + एम;

बार-बार bc की गणना करने की आवश्यकता नहीं है। गुणा किए गए मान को एक चर में संग्रहीत किया जा सकता है और पुन: उपयोग किया जा सकता है।

मशीन डिपेंडेंट और मशीन इंडिपेंडेंट कोड ऑप्टिमाइजेशन में क्या समानता है?

ये दोनों कोड ऑप्टिमाइज़ेशन से संबंधित हैं

मशीन डिपेंडेंट और मशीन इंडिपेंडेंट कोड ऑप्टिमाइजेशन में क्या अंतर है?

मशीन डिपेंडेंट बनाम मशीन इंडिपेंडेंट कोड ऑप्टिमाइजेशन

मशीन पर निर्भर कोड ऑप्टिमाइजेशन ऑब्जेक्ट कोड पर लागू होता है। मशीन-स्वतंत्र कोड अनुकूलन मध्यवर्ती कोड पर लागू होता है।
हार्डवेयर के साथ भागीदारी
मशीन पर निर्भर अनुकूलन में सीपीयू रजिस्टर और पूर्ण स्मृति संदर्भ शामिल हैं। मशीन स्वतंत्र कोड अनुकूलन में सीपीयू रजिस्टर या पूर्ण स्मृति संदर्भ शामिल नहीं है।

सारांश - मशीन आश्रित बनाम मशीन स्वतंत्र कोड अनुकूलन

कोड अनुकूलन में दो अनुकूलन तकनीकें शामिल हैं, मशीन आश्रित और मशीन स्वतंत्र कोड अनुकूलन। मशीन डिपेंडेंट और मशीन इंडिपेंडेंट कोड ऑप्टिमाइजेशन के बीच अंतर यह है कि मशीन डिपेंडेंट ऑप्टिमाइज़ेशन ऑब्जेक्ट कोड पर लागू होता है, जबकि मशीन इंडिपेंडेंट कोड ऑप्टिमाइज़ेशन इंटरमीडिएट कोड पर लागू होता है।

मशीन डिपेंडेंट बनाम मशीन इंडिपेंडेंट कोड ऑप्टिमाइजेशन का पीडीएफ संस्करण डाउनलोड करें

आप इस लेख का पीडीएफ संस्करण डाउनलोड कर सकते हैं और उद्धरण नोट के अनुसार इसे ऑफ़लाइन उद्देश्यों के लिए उपयोग कर सकते हैं। कृपया पीडीएफ संस्करण यहां डाउनलोड करें मशीन आश्रित और मशीन स्वतंत्र कोड अनुकूलन के बीच अंतर

सिफारिश की: