शुद्धता (कंप्यूटर विज्ञान)
सैद्धांतिक कंप्यूटर विज्ञान में, एक कलन विधि एक प्रोग्राम विनिर्देशन के संबंध में सही है यदि यह निर्दिष्ट के अनुसार व्यवहार करता है। सबसे अच्छी खोज 'कार्यात्मक' शुद्धता है, जो एल्गोरिदम के इनपुट-आउटपुट व्यवहार को संदर्भित करती है (यानी, प्रत्येक इनपुट के लिए यह विनिर्देश को संतुष्ट करने वाला आउटपुट उत्पन्न करता है)।[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]
यह भी देखें
- औपचारिक सत्यापन
- अनुबंध द्वारा डिजाइन
- कार्यक्रम विश्लेषण
- मॉडल जाँच
- संकलक शुद्धता
- कार्यक्रम व्युत्पत्ति
टिप्पणियाँ
- ↑ Dunlop, Douglas D.; Basili, Victor R. (June 1982). "कार्यात्मक शुद्धता का तुलनात्मक विश्लेषण". Communications of the ACM. 14 (2): 229–244. doi:10.1145/356876.356881.
- ↑ Manna, Zohar; Pnueli, Amir (September 1974). "कार्यक्रमों की कुल शुद्धता के लिए स्वयंसिद्ध दृष्टिकोण". Acta Informatica. 3 (3): 243–263. doi:10.1007/BF00288637.
- ↑ 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.
- ↑ Pan, Jiantao (Spring 1999). "सॉफ़्टवेयर परीक्षण" (coursework). Carnegie Mellon University. Retrieved 21 November 2017.
इस पेज में लापता आंतरिक लिंक की सूची
- कार्यक्रम विनिर्देश
- रुकने की समस्या
- उत्तम संख्या
- मॉडल की जाँच
संदर्भ
- "Human Language Technology. Challenges for Computer Science and Linguistics." Google Books. N.p., n.d. Web. 10 April 2017.
- "Security in Computing and Communications." Google Books. N.p., n.d. Web. 10 April 2017.
- "The Halting Problem of Alan Turing - A Most Merry and Illustrated Explanation." The Halting Problem of Alan Turing - A Most Merry and Illustrated Explanation. N.p., n.d. Web. 10 April 2017.
- Turner, Raymond, and Nicola Angius. "The Philosophy of Computer Science." Stanford Encyclopedia of Philosophy. Stanford University, 20 August 2013. Web. 10 April 2017.
- Dijkstra, E. W. "Program Correctness". U of Texas at Austin, Departments of Mathematics and Computer Sciences, Automatic Theorem Proving Project, 1970. Web.
- Templates that generate short descriptions
- Use dmy dates from April 2017
- Collapse templates
- Navigational boxes
- Navigational boxes without horizontal lists
- Sidebars with styles needing conversion
- Templates generating microformats
- Templates that are not mobile friendly
- Wikipedia metatemplates
- औपचारिक विधियों की शब्दावली
- सैद्धांतिक कंप्यूटर विज्ञान
- सॉफ्टवेयर गुणवत्ता
- Machine Translated Page
- Created On 22/11/2022