शुद्धता (कंप्यूटर विज्ञान)

From alpha
Jump to navigation Jump to search

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

Partially correct C program to find
the least odd perfect number,
its total correctness is unknown as of 2021
// return the sum of proper divisors of n
static int divisorSum(int n) {
   int i, sum = 0;
   for (i=1; i<n; ++i)
      if (n % i == 0)
         sum += i;
   return sum;
}
// return the least odd perfect number
int leastPerfectNumber(void) {
   int n;
   for (n=1; ; n+=2)
      if (n == divisorSum(n))
         return n;
}

उदाहरण के लिए, पूर्णांक 1, 2, 3, ... के माध्यम से क्रमिक रूप से खोज करना यह देखने के लिए कि क्या हम किसी घटना का उदाहरण पा सकते हैं - एक विषम पूर्ण संख्या कहें - आंशिक रूप से सही प्रोग्राम लिखना काफी आसान है (बॉक्स देखें)। लेकिन यह कहना कि यह कार्यक्रम पूरी तरह से सही है, संख्या सिद्धांत में कुछ पूर्ण संख्या # विषम पूर्ण संख्याओं पर जोर देना होगा।

एक प्रमाण को एक गणितीय प्रमाण होना चाहिए, यह मानते हुए कि एल्गोरिथ्म और विनिर्देश दोनों औपचारिक रूप से दिए गए हैं। विशेष रूप से किसी दिए गए मशीन पर एल्गोरिदम को लागू करने वाले किसी दिए गए प्रोग्राम के लिए शुद्धता का दावा होने की उम्मीद नहीं है। इसमें स्मृति पर सीमाओं जैसे विचार शामिल होंगे।

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

कंप्यूटर प्रोग्राम की शुद्धता के बारे में सख्ती से तर्क करने के लिए होरे तर्क एक विशिष्ट औपचारिक प्रणाली है।[3] यह प्रोग्रामिंग लैंग्वेज सिमेंटिक्स को परिभाषित करने के लिए स्वयंसिद्ध तकनीकों का उपयोग करता है और होरे ट्रिपल्स के रूप में जाने जाने वाले अभिकथनों के माध्यम से कार्यक्रमों की शुद्धता के बारे में बहस करता है।

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


यह भी देखें

टिप्पणियाँ

  1. Dunlop, Douglas D.; Basili, Victor R. (June 1982). "कार्यात्मक शुद्धता का तुलनात्मक विश्लेषण". Communications of the ACM. 14 (2): 229–244. doi:10.1145/356876.356881.
  2. Manna, Zohar; Pnueli, Amir (September 1974). "कार्यक्रमों की कुल शुद्धता के लिए स्वयंसिद्ध दृष्टिकोण". Acta Informatica. 3 (3): 243–263. doi:10.1007/BF00288637.
  3. Hoare, C. A. R. (October 1969). "कंप्यूटर प्रोग्रामिंग के लिए एक स्वयंसिद्ध आधार" (PDF). Communications of the ACM. 12 (10): 576–580. CiteSeerX 10.1.1.116.2392. doi:10.1145/363235.363259. Archived from the original (PDF) on 4 March 2016.
  4. Pan, Jiantao (Spring 1999). "सॉफ़्टवेयर परीक्षण" (coursework). Carnegie Mellon University. Retrieved 21 November 2017.


इस पेज में लापता आंतरिक लिंक की सूची

  • कार्यक्रम विनिर्देश
  • रुकने की समस्या
  • उत्तम संख्या
  • मॉडल की जाँच

संदर्भ