अपरिवर्तनीय-आधारित प्रोग्रामिंग: Difference between revisions

From Vigyanwiki
(Created page with "अपरिवर्तनीय-आधारित प्रोग्रामिंग<ref>Back, Ralph-Johan: [https://hal.archives-ouvertes.fr/hal-00477903/document Invari...")
 
No edit summary
Line 1: Line 1:
अपरिवर्तनीय-आधारित प्रोग्रामिंग<ref>Back, Ralph-Johan: [https://hal.archives-ouvertes.fr/hal-00477903/document Invariant Based Programming: Basic approach and Teaching Experience], Formal Aspects of Computing, 14 February 2008, ISSN 0934-5043 (Print) 1433-299X (Online)</ref> एक प्रोग्रामिंग पद्धति है जहां औपचारिक विनिर्देश और इनवेरिएंट (कंप्यूटर विज्ञान) वास्तविक प्रोग्राम स्टेटमेंट से पहले लिखे जाते हैं। प्रोग्रामिंग प्रक्रिया के दौरान इनवेरिएंट्स को लिखने के कई फायदे हैं: इसे वास्तव में लागू करने से पहले प्रोग्रामर को प्रोग्राम व्यवहार के बारे में अपने इरादे स्पष्ट करने की आवश्यकता होती है, और सामान्य प्रोग्रामिंग त्रुटियों को पकड़ने के लिए निष्पादन के दौरान इनवेरिएंट्स का गतिशील रूप से मूल्यांकन किया जा सकता है। इसके अलावा, यदि पर्याप्त मजबूत हो, तो प्रोग्राम स्टेटमेंट की प्रोग्रामिंग भाषाओं के औपचारिक शब्दार्थ के आधार पर प्रोग्राम के [[औपचारिक सत्यापन]] को साबित करने के लिए इनवेरिएंट का उपयोग किया जा सकता है। एक शक्तिशाली औपचारिक प्रमाण प्रणाली से जुड़ी एक संयुक्त प्रोग्रामिंग और विनिर्देश भाषा, आम तौर पर गैर-तुच्छ कार्यक्रमों के पूर्ण सत्यापन के लिए आवश्यक होगी। इस मामले में प्रमाणों का उच्च स्तर का स्वचालन भी संभव है।
'''अपरिवर्तनीय-आधारित प्रोग्रामिंग (इनवेरिएंट-बेस्ड प्रोग्रामिंग)'''<ref>Back, Ralph-Johan: [https://hal.archives-ouvertes.fr/hal-00477903/document Invariant Based Programming: Basic approach and Teaching Experience], Formal Aspects of Computing, 14 February 2008, ISSN 0934-5043 (Print) 1433-299X (Online)</ref> एक प्रोग्रामिंग पद्धति है जहां वास्तविक प्रोग्राम स्टेटमेंट से पहले विनिर्देश और इनवेरिएंट लिखे जाते हैं। प्रोग्रामिंग प्रक्रिया के दौरान इनवेरिएंट को लिखने के कई फायदे हैं: प्रोग्रामर को वास्तव में इसे लागू करने से पहले प्रोग्राम व्यवहार के बारे में अपने इरादे स्पष्ट करने की आवश्यकता होती है, और सामान्य प्रोग्रामिंग त्रुटियों को पकड़ने के लिए निष्पादन के दौरान इनवेरिएंट का गतिशील रूप से मूल्यांकन किया जा सकता है। इसके अलावा, यदि पर्याप्त रूप से मजबूत हो, तो प्रोग्राम कथनों के औपचारिक शब्दार्थ के आधार पर प्रोग्राम की शुद्धता को साबित करने के लिए इनवेरिएंट का उपयोग किया जा सकता है। गैर-तुच्छ कार्यक्रमों के पूर्ण सत्यापन के लिए आम तौर पर एक शक्तिशाली औपचारिक प्रूफ सिस्टम से जुड़ी एक संयुक्त प्रोग्रामिंग और विनिर्देश भाषा की आवश्यकता होगी। इस स्तिथि में, साक्ष्यों का उच्च स्तर का स्वचालन भी संभव है।


अधिकांश मौजूदा प्रोग्रामिंग भाषाओं में मुख्य आयोजन संरचनाएं फॉर लूप जैसे नियंत्रण प्रवाह ब्लॉक हैं<code>for</code> लूप, जबकि लूप|<code>while</code> लूप्स और इफ स्टेटमेंट|<code>if</code> बयान. ऐसी भाषाएं इनवेरिएंट-फर्स्ट प्रोग्रामिंग के लिए आदर्श नहीं हो सकती हैं, क्योंकि वे प्रोग्रामर को इनवेरिएंट लिखने से पहले नियंत्रण प्रवाह के बारे में निर्णय लेने के लिए मजबूर करती हैं। इसके अलावा, अधिकांश प्रोग्रामिंग भाषाओं में विशिष्टताओं और अपरिवर्तनीयताओं को लिखने के लिए अच्छा समर्थन नहीं है, क्योंकि उनमें क्वांटिफायर ऑपरेटरों की कमी है और कोई आमतौर पर उच्च क्रम के गुणों को व्यक्त नहीं कर सकता है।
अधिकांश मौजूदा प्रोग्रामिंग भाषाओं में मुख्य आयोजन संरचनाएँ कण्ट्रोल फ्लो ब्लॉक हैं जैसे कि <code>for</code>लूप्स, <code>while</code>व्हाइल लूप्स, <code>and if</code>स्टेटमेंट्स। ऐसी भाषाएँ इनवेरिएंट-प्रथम प्रोग्रामिंग के लिए आदर्श नहीं हो सकती हैं, क्योंकि वे प्रोग्रामर को इनवेरिएंट लिखने से पहले नियंत्रण प्रवाह के बारे में निर्णय लेने के लिए बाधित करती हैं। इसके अतिरिक्ति, अधिकांश प्रोग्रामिंग भाषाओं में विशिष्टताओं और आविष्कारों को लिखने के लिए अच्छा समर्थन नहीं है, क्योंकि उनमें क्वांटिफायर ऑपरेटरों की कमी है और कोई आमतौर पर उच्च-क्रम गुणों को व्यक्त नहीं कर सकता है।


कार्यक्रम को उसके प्रमाण के साथ विकसित करने का विचार एड्सगर डिज्क्स्ट्रा|ई.डब्ल्यू. से उत्पन्न हुआ। दिज्क्स्ट्रा। दरअसल प्रोग्राम स्टेटमेंट से पहले इनवेरिएंट लिखने पर एम.एच. द्वारा कई अलग-अलग रूपों में विचार किया गया है। वैन एम्डेन, जॉन सी. रेनॉल्ड्स|जे.सी. रेनॉल्ड्स और [[राल्फ-जोहान वापस]]|आर-जे वापस।
कार्यक्रम को उसके प्रमाण के साथ विकसित करने का विचार एड्सगर डिज्क्स्ट्रा|ई.डब्ल्यू. से उत्पन्न हुआ। दिज्क्स्ट्रा। दरअसल प्रोग्राम स्टेटमेंट से पहले इनवेरिएंट लिखने पर एम.एच. द्वारा कई अलग-अलग रूपों में विचार किया गया है। वैन एम्डेन, जॉन सी. रेनॉल्ड्स|जे.सी. रेनॉल्ड्स और [[राल्फ-जोहान वापस]]|आर-जे वापस।

Revision as of 07:53, 4 August 2023

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

अधिकांश मौजूदा प्रोग्रामिंग भाषाओं में मुख्य आयोजन संरचनाएँ कण्ट्रोल फ्लो ब्लॉक हैं जैसे कि forलूप्स, whileव्हाइल लूप्स, and ifस्टेटमेंट्स। ऐसी भाषाएँ इनवेरिएंट-प्रथम प्रोग्रामिंग के लिए आदर्श नहीं हो सकती हैं, क्योंकि वे प्रोग्रामर को इनवेरिएंट लिखने से पहले नियंत्रण प्रवाह के बारे में निर्णय लेने के लिए बाधित करती हैं। इसके अतिरिक्ति, अधिकांश प्रोग्रामिंग भाषाओं में विशिष्टताओं और आविष्कारों को लिखने के लिए अच्छा समर्थन नहीं है, क्योंकि उनमें क्वांटिफायर ऑपरेटरों की कमी है और कोई आमतौर पर उच्च-क्रम गुणों को व्यक्त नहीं कर सकता है।

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

यह भी देखें

टिप्पणियाँ

  1. Back, Ralph-Johan: Invariant Based Programming: Basic approach and Teaching Experience, Formal Aspects of Computing, 14 February 2008, ISSN 0934-5043 (Print) 1433-299X (Online)

[Category:Programming paradig