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

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

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

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

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

यह भी देखें

 * कंट्रोल-फ्लो आरेख (सीएफडी)
 * डेटा-फ्लो एनालिसिस
 * कार्टेशियन उत्पाद एल्गोरिथ्म
 * सूचक एनालिसिस

बाहरी संबंध

 * for textbook intraprocedural CFA in imperative languages
 * CFA in functional programs (survey)
 * for the relationship between CFA analysis in functional languages and points-to analysis in imperative/OOP languages