नियंत्रण प्रवाह विश्लेषण: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
 
(3 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Short description|Compiler technique}}
{{Short description|Compiler technique}}
[[कंप्यूटर विज्ञान]] में, नियंत्रण-प्रवाह विश्लेषण (सीएफए) एक प्रोग्राम के नियंत्रण प्रवाह को निर्धारित करने के लिए एक स्थिर कोड विश्लेषण|स्थैतिक-कोड-विश्लेषण तकनीक है। नियंत्रण प्रवाह को [[नियंत्रण-प्रवाह ग्राफ]](सीएफजी) के रूप में व्यक्त किया जाता है। [[कार्यात्मक प्रोग्रामिंग भाषा]]ओं और [[ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा]]ओं दोनों के लिए, सीएफए शब्द, और ''के''-सीएफए जैसे विस्तार, विशिष्ट एल्गोरिदम को संदर्भित करते हैं जो नियंत्रण प्रवाह की गणना करते हैं।
[[कंप्यूटर विज्ञान]] में, '''कंट्रोल-फ्लो एनालिसिस''' (सीएफए) एक प्रोग्राम के कंट्रोल फ्लो को निर्धारित करने के लिए एक स्थैतिक-कोड-एनालिसिस तकनीक है। कंट्रोल फ्लो को [[नियंत्रण-प्रवाह ग्राफ|कंट्रोल-फ्लो ग्राफ]] (सीएफजी) के रूप में व्यक्त किया जाता है। [[कार्यात्मक प्रोग्रामिंग भाषा|फंक्शनल प्रोग्रामिंग]] [[लैंगुएजेस]] और [[ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा|ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग]] लैंगुएजेस दोनों के लिए, सीएफए शब्द, और ''के''-सीएफए जैसे विस्तार, स्पेसिफिक एल्गोरिदम को संदर्भित करते हैं जो कंट्रोल फ्लो की गणना करते हैं।


कई [[अनिवार्य प्रोग्रामिंग भाषा]]ओं के लिए, प्रोग्राम का नियंत्रण प्रवाह प्रोग्राम के स्रोत कोड में स्पष्ट होता है। परिणामस्वरूप, [[अंतरप्रक्रियात्मक विश्लेषण]] नियंत्रण-प्रवाह विश्लेषण आमतौर पर [[उच्च-क्रम प्रोग्रामिंग भाषा]] में लिखे गए कंप्यूटर प्रोग्राम में फ़ंक्शन या विधि कॉल के रिसीवर को निर्धारित करने के लिए एक [[स्थैतिक विश्लेषण]] तकनीक को संदर्भित करता है।{{dubious|date=July 2014}} उदाहरण के लिए, स्कीम (प्रोग्रामिंग भाषा) जैसे उच्च-क्रम वाले फ़ंक्शन वाली प्रोग्रामिंग भाषा में, फ़ंक्शन कॉल का लक्ष्य स्पष्ट नहीं हो सकता है: पृथक अभिव्यक्ति में
कई [[अनिवार्य प्रोग्रामिंग भाषा|इम्परेटिव प्रोग्रामिंग]] [[लैंगुएजेस]] के लिए, प्रोग्राम का कंट्रोल फ्लो प्रोग्राम के स्रोत कोड में स्पष्ट होता है। परिणामस्वरूप, [[अंतरप्रक्रियात्मक विश्लेषण|अंतरप्रक्रियात्मक एनालिसिस]] कंट्रोल-फ्लो एनालिसिस सामान्यतः [[उच्च-क्रम प्रोग्रामिंग भाषा|हायर आर्डर प्रोग्रामिंग लैंग्वेज]] में लिखे गए कंप्यूटर प्रोग्राम में फ़ंक्शन या विधि कॉल के रिसीवर को निर्धारित करने के लिए एक [[स्थैतिक विश्लेषण|स्थैतिक एनालिसिस]] तकनीक को संदर्भित करता है।{{dubious|date=July 2014}} उदाहरण के लिए, स्कीम (प्रोग्रामिंग लैंग्वेज) जैसे हायर आर्डर वाले फ़ंक्शन वाली प्रोग्रामिंग लैंग्वेज में, फ़ंक्शन कॉल का टारगेट स्पष्ट नहीं हो सकता है: आइसोलेटेड एक्सप्रेशन में,


<syntaxhighlight lang="scheme">
<syntaxhighlight lang="scheme">
(lambda (f) (f x))
(lambda (f) (f x))
</syntaxhighlight>
</syntaxhighlight>
यह स्पष्ट नहीं है कि यह किस प्रक्रिया का है <code>f</code> उल्लेख कर सकते हैं. नियंत्रण-प्रवाह विश्लेषण को इस बात पर विचार करना चाहिए कि इस अभिव्यक्ति को कहां लागू किया जा सकता है और संभावित लक्ष्यों को निर्धारित करने के लिए इसे क्या तर्क प्राप्त हो सकते हैं।
यह स्पष्ट नहीं है कि <code>f</code> किस प्रक्रिया का उल्लेख कर सकता है। कंट्रोल-फ्लो एनालिसिस को इस बात पर विचार करना चाहिए कि इस अभिव्यक्ति को कहां लागू किया जा सकता है और संभावित टारगेटों को निर्धारित करने के लिए इसे क्या तर्क प्राप्त हो सकते हैं।


नियंत्रण-प्रवाह विश्लेषण के लिए [[अमूर्त व्याख्या]], [[बाधा समाधान]] और [[प्रकार प्रणाली]] जैसी तकनीकों का उपयोग किया जा सकता है।<ref>{{cite book |author-first1=Flemming |author-last1=Nielson |author-first2=Hanne Riis |author-last2=Nielson |author-first3=Chris |author-last3=Hankin |title=कार्यक्रम विश्लेषण के सिद्धांत|publisher=[[Springer Science+Business Media]] |date=2005}}</ref>
कंट्रोल-फ्लो एनालिसिस के लिए [[कंस्ट्रेंट सॉल्विंग|अब्सट्रैकट इंटरप्रिटेशन]], [[कंस्ट्रेंट सॉल्विंग]] और [[टाइप सिस्टम]] जैसी तकनीकों का उपयोग किया जा सकता है।<ref>{{cite book |author-first1=Flemming |author-last1=Nielson |author-first2=Hanne Riis |author-last2=Nielson |author-first3=Chris |author-last3=Hankin |title=कार्यक्रम विश्लेषण के सिद्धांत|publisher=[[Springer Science+Business Media]] |date=2005}}</ref>


==यह भी देखें==
==यह भी देखें==
* [[नियंत्रण-प्रवाह आरेख]] (सीएफडी)
* [[नियंत्रण-प्रवाह आरेख|कंट्रोल-फ्लो आरेख]] (सीएफडी)
* [[डेटा-प्रवाह विश्लेषण]]
* [[डेटा-प्रवाह विश्लेषण|डेटा-फ्लो एनालिसिस]]
* [[कार्टेशियन उत्पाद एल्गोरिथ्म]]
* [[कार्टेशियन उत्पाद एल्गोरिथ्म]]
* [[सूचक विश्लेषण]]
* [[सूचक विश्लेषण|सूचक एनालिसिस]]


==संदर्भ==
==संदर्भ==
Line 26: Line 26:
*[http://janmidtgaard.dk/papers/Midtgaard-CSur-final.pdf CFA in functional programs (survey)]
*[http://janmidtgaard.dk/papers/Midtgaard-CSur-final.pdf CFA in functional programs (survey)]
*[http://cgi.di.uoa.gr/~smaragd/kcfa-pldi10.pdf for the relationship between CFA analysis in functional languages and points-to analysis in imperative/OOP languages]
*[http://cgi.di.uoa.gr/~smaragd/kcfa-pldi10.pdf for the relationship between CFA analysis in functional languages and points-to analysis in imperative/OOP languages]
[[Category: नियंत्रण-प्रवाह विश्लेषण| नियंत्रण-प्रवाह विश्लेषण]]


 
[[Category:All accuracy disputes]]
 
[[Category:Articles with disputed statements from July 2014]]
[[Category: Machine Translated Page]]
[[Category:Articles with invalid date parameter in template]]
[[Category:Commons category link is locally defined]]
[[Category:Created On 24/07/2023]]
[[Category:Created On 24/07/2023]]
[[Category:Lua-based templates]]
[[Category:Machine Translated Page]]
[[Category:Pages with script errors]]
[[Category:Short description with empty Wikidata description]]
[[Category:Templates Vigyan Ready]]
[[Category:Templates that add a tracking category]]
[[Category:Templates that generate short descriptions]]
[[Category:Templates using TemplateData]]
[[Category:नियंत्रण-प्रवाह विश्लेषण| नियंत्रण-प्रवाह विश्लेषण]]

Latest revision as of 10:53, 14 August 2023

कंप्यूटर विज्ञान में, कंट्रोल-फ्लो एनालिसिस (सीएफए) एक प्रोग्राम के कंट्रोल फ्लो को निर्धारित करने के लिए एक स्थैतिक-कोड-एनालिसिस तकनीक है। कंट्रोल फ्लो को कंट्रोल-फ्लो ग्राफ (सीएफजी) के रूप में व्यक्त किया जाता है। फंक्शनल प्रोग्रामिंग लैंगुएजेस और ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग लैंगुएजेस दोनों के लिए, सीएफए शब्द, और के-सीएफए जैसे विस्तार, स्पेसिफिक एल्गोरिदम को संदर्भित करते हैं जो कंट्रोल फ्लो की गणना करते हैं।

कई इम्परेटिव प्रोग्रामिंग लैंगुएजेस के लिए, प्रोग्राम का कंट्रोल फ्लो प्रोग्राम के स्रोत कोड में स्पष्ट होता है। परिणामस्वरूप, अंतरप्रक्रियात्मक एनालिसिस कंट्रोल-फ्लो एनालिसिस सामान्यतः हायर आर्डर प्रोग्रामिंग लैंग्वेज में लिखे गए कंप्यूटर प्रोग्राम में फ़ंक्शन या विधि कॉल के रिसीवर को निर्धारित करने के लिए एक स्थैतिक एनालिसिस तकनीक को संदर्भित करता है।[dubious ] उदाहरण के लिए, स्कीम (प्रोग्रामिंग लैंग्वेज) जैसे हायर आर्डर वाले फ़ंक्शन वाली प्रोग्रामिंग लैंग्वेज में, फ़ंक्शन कॉल का टारगेट स्पष्ट नहीं हो सकता है: आइसोलेटेड एक्सप्रेशन में,

(lambda (f) (f x))

यह स्पष्ट नहीं है कि f किस प्रक्रिया का उल्लेख कर सकता है। कंट्रोल-फ्लो एनालिसिस को इस बात पर विचार करना चाहिए कि इस अभिव्यक्ति को कहां लागू किया जा सकता है और संभावित टारगेटों को निर्धारित करने के लिए इसे क्या तर्क प्राप्त हो सकते हैं।

कंट्रोल-फ्लो एनालिसिस के लिए अब्सट्रैकट इंटरप्रिटेशन, कंस्ट्रेंट सॉल्विंग और टाइप सिस्टम जैसी तकनीकों का उपयोग किया जा सकता है।[1]

यह भी देखें

संदर्भ

  1. Nielson, Flemming; Nielson, Hanne Riis; Hankin, Chris (2005). कार्यक्रम विश्लेषण के सिद्धांत. Springer Science+Business Media.


बाहरी संबंध