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

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

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

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

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

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

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

यह भी देखें

 * औपचारिक विशिष्टता
 * भाषा-स्वतंत्र विशिष्टता
 * विनिर्देश और विवरण भाषा
 * एकीकृत मॉडलिंग भाषा