Stream X-Machine
स्ट्रीम एक्स-मशीन (एसएक्सएम) गणना का एक मॉडल है जिसे गिल्बर्ट लेकॉक ने अपने 1993 के पीएचडी थीसिस, द थ्योरी एंड प्रैक्टिस ऑफ स्पेसिफिकेशन बेस्ड सॉफ्टवेयर टेस्टिंग में पेश किया था। सैमुअल आइलेनबर्ग की एक्स-मशीन पर आधारित, एक्स प्रकार के डेटा को संसाधित करने के लिए एक विस्तारित परिमित-अवस्था मशीन, स्ट्रीम एक्स-मशीन एक प्रकार की एक्स-मशीन है जो एक मेमोरी डेटा प्रकार मेम को संसाधित करने के लिए संबंधित इनपुट और आउटपुट स्ट्रीम इन * और आउट * के साथ है, यानी जहां एक्स = आउट * × मेम × इन * है। एक स्ट्रीम एक्स-मशीन के संक्रमणों को φ: मेम × इन → आउट × मेम के रूप के कार्यों द्वारा लेबल किया जाता है, अर्थात, जो एक आउटपुट मूल्य की गणना करते हैं और वर्तमान मेमोरी और एक इनपुट मूल्य से मेमोरी को अपडेट करते हैं। यद्यपि सामान्य एक्स-मशीन की पहचान 1980 के दशक में सॉफ्टवेयर प्रणालियों को निर्दिष्ट करने के लिए एक संभावित उपयोगी औपचारिक मॉडल के रूप में की गई थी, लेकिन स्ट्रीम एक्स-मशीन के उद्भव तक इस विचार का पूरी तरह से दोहन नहीं किया जा सका था। फ्लोरेंटिन इपेट और माइक होल्कोम्बे ने पूर्ण कार्यात्मक परीक्षण का एक सिद्धांत विकसित किया, माइक होल्कोम्बे और फ्लोरेंटिन इपेट (1998) सही प्रणालियाँ-एक व्यावसायिक प्रक्रिया समाधान का निर्माण। अनुप्रयुक्त कम्प्यूटिंग श्रृंखला। बर्लिनः स्प्रिंगर-वेरलैग. जिसमें सैकड़ों हजारों अवस्थाओं और लाखों संक्रमणों के साथ जटिल सॉफ्टवेयर प्रणालियों को अलग-अलग एस. एक्स. एम. में विघटित किया जा सकता है जिनका सही एकीकरण के गारंटीकृत प्रमाण के साथ समग्र रूप से परीक्षण किया जा सकता है। "इनपुट और आउटपुट के साथ प्रसंस्करण एजेंट" के रूप में स्ट्रीम एक्स-मशीनों की सहज व्याख्या के कारण, उन्होंने वास्तविक दुनिया की घटनाओं के मॉडलिंग में अपनी उपयोगिता के कारण बढ़ती रुचि को आकर्षित किया है। एस. एक्स. एम. मॉडल के कम्प्यूटेशनल जीव विज्ञान, सॉफ्टवेयर परीक्षण और एजेंट-आधारित कम्प्यूटेशनल अर्थशास्त्र जैसे विविध क्षेत्रों में महत्वपूर्ण अनुप्रयोग हैं। स्ट्रीम एक्स-मशीन ए स्ट्रीम एक्स-मशीन (एस. एक्स. एम.) सहायक मेमोरी, इनपुट और आउटपुट के साथ एक विस्तारित परिमित-अवस्था मशीन है। यह सामान्य एक्स-मशीन का एक प्रकार है, जिसमें मौलिक डेटा प्रकार एक्स = आउट * × मेम × इन *, यानी एक टुपल जिसमें एक आउटपुट स्ट्रीम, मेमोरी और एक इनपुट स्ट्रीम होता है। एस. एक्स. एम. एक प्रणाली के नियंत्रण प्रवाह को प्रणाली द्वारा किए गए प्रसंस्करण से अलग करता है। नियंत्रण को एक परिमित-अवस्था मशीन (संबंधित ऑटोमेटन के रूप में जाना जाता है) द्वारा मॉडल किया जाता है, जिसके संक्रमणों को एक सेट (मशीन के प्रकार के रूप में जाना जाता है) से चुने गए प्रसंस्करण कार्यों के साथ लेबल किया जाता है, जो मौलिक डेटा प्रकार पर कार्य करते हैं। प्रत्येक प्रक्रमण फलन एक आंशिक फलन है, और इसे φ प्रकार का माना जा सकता हैः मेम × इन → आउट × मेम, जहाँ मेम मेमोरी प्रकार है, और इन और आउट क्रमशः इनपुट और आउटपुट प्रकार हैं। किसी भी स्थिति में, एक संक्रमण सक्षम किया जाता है यदि संबंधित फ़ंक्शन φi के डोमेन में अगला इनपुट मान और वर्तमान स्मृति स्थिति शामिल होती है। यदि (अधिक से अधिक) एक संक्रमण किसी दिए गए अवस्था में सक्षम है, तो मशीन नियतात्मक है। एक संक्रमण को पार करना संबंधित कार्य φi को लागू करने के बराबर है, जो एक इनपुट का उपभोग करता है, संभवतः स्मृति को संशोधित करता है और एक आउटपुट का उत्पादन करता है। मशीन के माध्यम से प्रत्येक मान्यता प्राप्त पथ इसलिए कार्यों की एक सूची φ1. φn उत्पन्न करता है, और SXM मौलिक डेटा प्रकार |φ1 पर एक संबंध उत्पन्न करने के लिए इन कार्यों को एक साथ बनाता है। एक्स-मशीनों के साथ संबंध स्ट्रीम एक्स-मशीन एक्स-मशीन का एक प्रकार है जिसमें मौलिक डेटा प्रकार एक्स = आउट * × मेम × इन * होता है। मूल एक्स-मशीन में, φi एक्स पर सामान्य संबंध हैं। स्ट्रीम एक्स-मशीन में, ये आमतौर पर कार्यों तक ही सीमित होते हैं; हालाँकि एस. एक्स. एम अभी भी केवल तभी निर्धारित होता है जब प्रत्येक राज्य में (अधिक से अधिक) एक संक्रमण सक्षम हो। एक सामान्य एक्स-मशीन इनपुट के लिए एक पूर्व एन्कोडिंग फ़ंक्शन α: Y → X का उपयोग करके इनपुट और आउटपुट को संभालती है, और आउटपुट के लिए एक पोस्टीरियर डिकोडिंग फ़ंक्शन β: X → Z, जहां Y और Z क्रमशः इनपुट और आउटपुट प्रकार हैं। एक धारा एक्स-मशीन में, ये प्रकार धाराएँ हैंः वाई = इन * जेड = आउट * और एन्कोडिंग और डिकोडिंग कार्यों को इस प्रकार परिभाषित किया जाता हैः α (इन्स) = (<>, मेम0, इन्स) β (आउट, मेमन, <>) = आउट जहां इन्सः इन *, आउटः आउट * और मेमीः मेम। दूसरे शब्दों में, मशीन को पूरी इनपुट धारा के साथ आरंभ किया जाता है; और डिकोडेड परिणाम पूरी आउटपुट धारा है, बशर्ते कि इनपुट धारा अंततः खपत हो (अन्यथा परिणाम अनिर्धारित हो)। एस. एक्स. एम. में प्रत्येक प्रसंस्करण कार्य को संक्षिप्त प्रकार φSXM दिया जाता हैः मेम × इन → आउट × मेम। इसे φ: X → X प्रकार के सामान्य एक्स-मशीन संबंध पर मैप किया जा सकता है यदि हम इसे कंप्यूटिंग के रूप में मानते हैंः φ (आउट, मेमी, मेंः इन्स) = (आउटःः आउट, मेमी + 1, इन्स) जहांः: एक तत्व और एक अनुक्रम के संयोजन को दर्शाता है। दूसरे शब्दों में, संबंध इनपुट धारा के शीर्ष को निकालता है, स्मृति को संशोधित करता है और आउटपुट धारा के पिछले हिस्से में एक मान जोड़ता है। प्रसंस्करण और परीक्षण योग्य गुण उपरोक्त समतुल्यता के कारण, ध्यान इस बात पर केंद्रित हो सकता है कि कैसे एक स्ट्रीम एक्स-मशीन एक सहायक स्मृति का उपयोग करके आउटपुट में इनपुट को संसाधित करती है। एक प्रारंभिक स्मृति अवस्था मेम0 और एक इनपुट स्ट्रीम इन्स को देखते हुए, मशीन एक बार में एक इनपुट का उपभोग करती है, और एक बार में एक आउटपुट उत्पन्न करती है। बशर्ते कि (कम से कम) एक मान्यता प्राप्त पथ पथ = φ1. φn मौजूद है जो एक ऐसी स्थिति की ओर ले जाता है जिसमें इनपुट का उपभोग किया गया है, मशीन एक अंतिम मेमोरी स्टेट मेमन और एक आउटपुट स्ट्रीम आउट देता है। सामान्य तौर पर, हम इसे सभी मान्यता प्राप्त पथों द्वारा गणना किए गए संबंध के रूप में सोच सकते हैंः। पथ।: इन * → आउट *। इसे अक्सर स्ट्रीम एक्स-मशीन का व्यवहार कहा जाता है। व्यवहार नियतात्मक है, यदि (अधिक से अधिक) प्रत्येक राज्य में एक संक्रमण सक्षम किया जाता है। यह गुण, और इनपुट और मेमोरी के जवाब में मशीन कैसे कदम-वार तरीके से व्यवहार करती है, इसे नियंत्रित करने की क्षमता, इसे सॉफ्टवेयर सिस्टम के विनिर्देश के लिए एक आदर्श मॉडल बनाती है। यदि विनिर्देशन और कार्यान्वयन दोनों को स्ट्रीम एक्स-मशीन माना जाता है, तो प्रत्येक चरण में इनपुट और आउटपुट का निरीक्षण करके विनिर्देशन मशीन के अनुरूपता के लिए कार्यान्वयन का परीक्षण किया जा सकता है। लेकॉक ने पहले परीक्षण उद्देश्यों के लिए टिप्पणियों के साथ एकल-चरण प्रसंस्करण की उपयोगिता पर प्रकाश डाला। होल्कोम्बे और इपेट ने इसे सॉफ्टवेयर परीक्षण के एक व्यावहारिक सिद्धांत के रूप में विकसित किया जो पूरी तरह से संरचनात्मक था, जो बहुत बड़ी प्रणालियों तक था। सही एकीकरण का प्रमाण इस बात की गारंटी देता है कि प्रत्येक घटक और प्रत्येक एकीकरण परत का अलग से परीक्षण पूरी प्रणाली के परीक्षण के अनुरूप है। यह विभाजन और विजय दृष्टिकोण बड़ी प्रणालियों के लिए संपूर्ण परीक्षण को संभव बनाता है। स्ट्रीम एक्स-मशीन परीक्षण पद्धति पर एक अलग लेख में परीक्षण विधि का वर्णन किया गया है। एक साधारण उदाहरण सहित, एक्स-मशीन मॉडल का एक सामान्य विवरण, एक्स-मशीन भी देखें। स्ट्रीम एक्स-मशीन परीक्षण पद्धति, एक पूर्ण कार्यात्मक परीक्षण तकनीक है। इस पद्धति का उपयोग करते हुए, परीक्षणों के एक सीमित समूह की पहचान करना संभव है जो पूरी तरह से निर्धारित करता है कि क्या कोई कार्यान्वयन उसके विनिर्देश से मेल खाता है। तकनीक इस बात पर जोर देकर औपचारिक अनिर्णायकता सीमाओं को पार करती है कि उपयोगकर्ता कार्यान्वयन के दौरान परीक्षण सिद्धांतों के लिए सावधानीपूर्वक निर्दिष्ट डिजाइन लागू करते हैं। सामाजिक कीटों से लेकर अर्थशास्त्र तक के क्षेत्रों में अनुप्रयोगों के साथ संचार धारा एक्स-मशीन (सी. एस. एक्स. एम.), एस. एक्स. एम. मॉडल का एक समवर्ती संस्करण है। ऑब्जेक्ट-ओरिएंटेड सॉफ़्टवेयर के लिए परीक्षण सेट उत्पन्न करने के लिए एस. एक्स. एम तकनीकों का उपयोग करते हुए मोटिव परियोजना। EURACE परियोजना, एजेंट-आधारित कम्प्यूटेशनल अर्थशास्त्र के लिए CSXM तकनीकों का एक अनुप्रयोग है। x-machines.net, एक्स-मशीन अनुसंधान की पृष्ठभूमि का वर्णन करने वाली एक साइट। माइक (प्रो. डब्ल्यू. एम. एल.) शेफ़ील्ड विश्वविद्यालय में होल्कोम्बे का वेब पेज। संगणना का संदर्भ सिद्धांत संगणना सॉफ्टवेयर परीक्षण के मॉडल