स्कूप (सॉफ्टवेयर)

स्कूप या SCOOP (सरल समवर्ती वस्तु उन्मुख प्रोग्रामिंग/ सिंपल कंकररेंट ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग) एफिल (प्रोग्रामिंग भाषा) के लिए डिज़ाइन किया गया एक समवर्ती मॉडल है, जिसकी कल्पना एफिल के निर्माता और डिजाइनर बर्ट्रेंड मेयर ने की है।

स्कूप थ्रेड्स, लॉक्स या अन्य विशिष्ट बहु क्रमादेशन  विधियों की अवधारणा के बिना ऑब्जेक्ट ओरिएंटेड प्रोग्राम को लिखे जाने के तरीके को परिभाषित करता है। यह संकलक या रनटाइम वातावरण को समवर्ती की मात्रा को अनुकूलित करने के साथ-साथ गतिरोध जैसे विशिष्ट डिज़ाइन दोषों को समाप्त करने की अनुमति देता है।

मॉडल को पहली बार 1990 के दशक की प्रारम्भ में डिजाइन किया गया था और 1993 में एसीएम के संचार में प्रकाशित किया गया था। वस्तु-उन्मुख सॉफ्टवेयर निर्माण पुस्तक के अध्याय 30 में एक अद्यतन संस्करण का वर्णन किया गया था। एफिल सॉफ्टवेयर द्वारा 1995 में एक प्रोटोटाइप कार्यान्वयन विकसित किया गया था। कॉम्पटन और वॉकर का एक लेख स्कूप का एक सिंहावलोकन प्रदान करता है और एक अन्य प्रारंभिक कार्यान्वयन का वर्णन करता है। Nienaltowski, Arslan और Meyer ने 2003 तक मॉडल का विवरण प्रकाशित किया है। ईटीएच ज्यूरिख में सॉफ्टवेयर इंजीनियरिंग के चेयर में स्कूप पर काम जारी है। स्कूप 2011 की प्रारम्भ में एफिलस्टूडियो के मानक भाग के रूप में उपलब्ध हो गया।

तकनीकी सिंहावलोकन
स्कूप कुछ वस्तुओं के संदर्भों को अलग घोषित करने की अनुमति देकर काम करता है। नीचे दिए गए कोड में, एक entity  एफिल भाषा कीवर्ड निर्दिष्ट करके एक अलग प्रकार के रूप में घोषित किया गया है   घोषणा में।

एक अलग ऑब्जेक्ट को स्कूप प्रोसेसर द्वारा नियंत्रित किया जा सकता है जो संदर्भित ऑब्जेक्ट को संभालने वाले प्रोसेसर से भिन्न होता है। एक स्कूप प्रोसेसर नियंत्रण के एक स्वायत्त सूत्र की अमूर्त धारणा है जो एक या अधिक वस्तुओं पर संचालन के निष्पादन को नियंत्रित करता है। स्कूप प्रोसेसर थ्रेड (कंप्यूटिंग), मल्टी-कोर प्रोसेसर, और वितरित कंप्यूटिंग जैसे अंतर्निहित समवर्ती तंत्रों से स्वतंत्र हैं।

अलगाव की अवधारणा के अलावा, स्कूप साझा अलग-अलग संसाधनों तक पहुंच को सिंक्रनाइज़ करने के लिए स्कूप रणनीति के हिस्से के रूप में 'अनुबंध द्वारा डिजाइन' के सिद्धांतों का उपयोग करता है। उदाहरण के लिए, ऊपर दिए गए वस्तु-सूची उदाहरण में किसी आइटम तक पहुंचने के इच्छुक उपभोक्ता के लिए एक पूर्व शर्त यह हो सकती है कि ऐसा आइटम वर्तमान में उपलब्ध है। यह वर्ग की विशेषता पर एक अनुबंध के साथ व्यक्त किया जाएगा  जो आइटम लौटाता है।

पारंपरिक, अनुक्रमिक प्रसंस्करण में, कॉल करने का इच्छुक क्लाइंट  यह सुनिश्चित करने के लिए जिम्मेदार होगा कि पूर्व शर्त   कॉल करने से पहले रखता है। अगर कॉल करें   जिस राज्य में किया गया था   होल्ड नहीं किया, तो कॉल करने वाले को एक पूर्व शर्त उल्लंघन अपवाद होगा।

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

नतीजतन, जब स्कूप सक्षम होता है, तो पूर्व शर्त  एक शुद्धता की स्थिति से बदल दिया जाता है, जो उल्लंघन के मामले में प्रतीक्षा की स्थिति में एक अपवाद का कारण बनेगा। प्रतीक्षा स्थिति के निष्पादन का कारण बनेगी   तक के लिए विलंबित किया जाए   रखती है। एफिल सॉफ्टवेयर कार्यान्वयन में, यदि स्कूप सक्षम नहीं है, तो   कीवर्ड को नजरअंदाज कर दिया जाता है और अनुक्रमिक प्रसंस्करण मान लिया जाता है।

यह भी देखें

 * एफिल (प्रोग्रामिंग भाषा)
 * ऑब्जेक्ट-ओरिएंटेड सॉफ्टवेयर कंस्ट्रक्शन

बाहरी संबंध

 * Eiffel Software online documentation for SCOOP.
 * The SCOOP research page at ETH Zurich.

Computación concurrente Programmation concurrente Multiprogrammeren Programação concorrente