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

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

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

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

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

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

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

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

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

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

यह भी देखें

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

बाहरी संबंध

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

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