स्पेसिफिकेशन लैंग्वेज

एक स्पेसिफिकेशन लैंग्वेज कंप्यूटर विज्ञान में औपचारिक लैंग्वेज है जिसका उपयोग सिस्टम विश्लेषण, आवश्यकताओं के विश्लेषण और सिस्टम डिज़ाइन के समय प्रोग्रामिंग लैंग्वेज की तुलना में बहुत उच्च स्तर पर सिस्टम का वर्णन करने के लिए किया जाता है, जिसका उपयोग किसी सिस्टम के लिए निष्पादन योग्य कोड का उत्पादन करने के लिए किया जाता है।

अवलोकन
स्पेसिफिकेशन लैंग्वेज को समान्यत: सीधे निष्पादित नहीं किया जाता है। वे क्या का वर्णन करने के लिए हैं, कैसे का नहीं। वास्तव में, यदि किसी आवश्यकता स्पेसिफिकेशन को अनावश्यक कार्यान्वयन विवरण के साथ अव्यवस्थित किया जाता है तो इसे त्रुटि माना जाता है।

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

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

विशिष्टताओं को वास्तव में प्रयुक्त करने से पहले उन्हें परिशोधन की प्रक्रिया (कार्यान्वयन विवरण भरना) के अधीन होना चाहिए। ऐसी शोधन प्रक्रिया का परिणाम निष्पादन योग्य एल्गोरिदम है, जिसे या तो प्रोग्रामिंग लैंग्वेज में तैयार किया जाता है, या हैण्ड स्पेसिफिकेशन लैंग्वेज के निष्पादन योग्य सबसेट में तैयार किया जाता है। उदाहरण के लिए, हार्टमैन पाइपलाइन को, जब ठीक से प्रयुक्त किया जाता है, तो डेटा फ्लो स्पेसिफिकेशन माना जा सकता है जो सीधे निष्पादन योग्य है। अन्य उदाहरण एक्टर मॉडल है जिसमें कोई विशिष्ट एप्लिकेशन सामग्री नहीं है और निष्पादन योग्य होने के लिए इसे विशेषीकृत किया जाना चाहिए।

विनिर्देशन लैंग्वेज का महत्वपूर्ण उपयोग प्रोग्राम की शुद्धता के गणितीय प्रमाण के निर्माण को सक्षम करना है (स्वचालित प्रमेय देखें)।

यह भी देखें

 * फॉर्मल स्पेसिफिकेशन
 * लैंग्वेज -इंडिपेंडेंट स्पेसिफिकेशन
 * स्पेसिफिकेशन और डिस्क्रिप्शन लैंग्वेज
 * एकीकृत मॉडलिंग लैंग्वेज