फंक्शनल प्रोग्रामिंग में बहुत ही सुंदर लैंबडा कैलकुलस और इसके वेरिएंट एक बैकअप सिद्धांत के रूप में हैं। क्या OOP के लिए ऐसा है? ऑब्जेक्ट ओरिएंटेड मॉडल के लिए एक अमूर्त क्या है?
फंक्शनल प्रोग्रामिंग में बहुत ही सुंदर लैंबडा कैलकुलस और इसके वेरिएंट एक बैकअप सिद्धांत के रूप में हैं। क्या OOP के लिए ऐसा है? ऑब्जेक्ट ओरिएंटेड मॉडल के लिए एक अमूर्त क्या है?
जवाबों:
चार मुख्य दृष्टिकोण हैं, हालांकि ये केवल उपलब्ध सतह को खरोंचते हैं:
ऑब्जेक्ट मॉडल कोर और सेट सिद्धांत के बीच संबंध निम्नलिखित दस्तावेजों में वर्णित है:
दस्तावेज़ वस्तुओं के बीच उदाहरण और विरासत संबंधों की संरचना पेश करते हैं। इस तरह की संरचना को ओओपी का उच्चतम संभव अमूर्त माना जा सकता है। यह दिखाया गया है कि संरचना विशेष प्रोग्रामिंग भाषाओं (रूबी, पायथन, जावा, स्काला, स्मॉलटाक -80, ऑब्जेक्टिव-सी, सीएलओएस, पर्ल, डायलन, जावास्क्रिप्ट) पर भी लागू होती है और यह भी ऑन्कोलॉजी भाषाओं (आरडीवी स्कीमा और ओडब्ल्यूएल 2 पूर्ण) पर लागू होती है।
दस्तावेजों में, कक्षाएं ऑब्जेक्ट हैं दृष्टिकोण लिया जाता है ताकि कोर संरचना एकल-क्रमबद्ध हो। मुख्य रूप में, संरचना के रूप में व्यक्त किया जा सकता (ओ, ε , ≤, .ec) जहां
रूबी ऑब्जेक्ट मॉडल के अनुसार एक नमूना कोर संरचना निम्नलिखित चित्र द्वारा दिखाया गया है। से एक नीले रंग की लिंक - ग्रीन लिंक कर्मकर्त्ता सकर्मक कमी में विरासत संबंध, नीले लिंक "Subsumption कमी" में सदस्यता संबंध दिखाने दिखाने एक्स के कम से कम कंटेनर के लिए अंक एक्स । पॉवरक्लास का नक्शा .ec क्षैतिज नीले लिंक द्वारा बनता है। इस मानचित्र की छवि से ऑब्जेक्ट पॉवरक्लास (ग्रे में) हैं। रूबी में उन्हें ईगेंक्लास या एकल वर्ग भी कहा जाता है (बाद वाला शब्द बल्कि पदावनत)। वस्तुओं रों , यू और वी (गुलाबी में) कर रहे हैं टर्मिनलशेष वस्तुएँ वंशानुक्रम रूट r के वंशज हैं ।
r = BasicObject; c = Class; A = c.new(r); B = c.new(A); s = A.new; u = B.new; v = B.new; class << s; end; class << v; end
उपरोक्त सभी भाषाओं के ऑब्जेक्ट मॉडल के मुख्य भागों को संरचना के विशेषज्ञताओं के रूप में देखा जा सकता है, जिनमें कुछ या सिर्फ अतिरिक्त घटक नहीं हैं। सैद्धांतिक दृष्टिकोण से, एक अतिरिक्त घटक का सबसे महत्वपूर्ण मामला सिलेन द्वारा पेश किया गया सिंगलटन मैप (निरूपित .ɛϲ ) है। यह डायलन को केवल प्रोग्रामिंग भाषा बनाता है (उपर्युक्त में से) थैस मोनोटोनिकिटी कंडीशन (○) ≤ (ϵ) ⊆ (ϵ) के अधीन नहीं है जहां रचना प्रतीक ○ की व्याख्या बाएं से दाएं की जाती है।
ऑब्जेक्ट मॉडल कोर और सेट सिद्धांत के बीच संबंध को औपचारिक रूप देने का एक तरीका संरचनाओं के परिवार के माध्यम से है (हे, ≤, r, .ec।।।) को संदर्भित दस्तावेज़ों में मेटाोबिज़ संरचना कहा जाता है क्योंकि x.ec या x.ɛϲ पर विचार किया जा सकता है। एक्स के मेटाबेस के रूप में । इन संरचनाओं में x.ec के लिए हर वस्तु परिभाषित किया गया है एक्स और x.ɛς के लिए हर परिभाषित किया गया है घिरा ( "छोटे") वस्तु एक्स । संरचनाएं नीचे नौ स्वयंसिद्धों के अधीन हैं। स्वयंसिद्ध एक निश्चित विस्तार का उपयोग करता है जो पहले आठ स्वयंसिद्धों ( टी) के लिए काफी सरल हैउन जो के वंशज नहीं हैं - टर्मिनल वस्तुओं के सेट को दर्शाता है आर , और .ec * की कर्मकर्त्ता सकर्मक बंद है .ec ) बल्कि पिछले स्वयंसिद्ध के लिए शामिल किया गया।
पिछले स्वयंसिद्ध में, π एक निश्चित सीमा क्रमसूचक है, और .D है रैंक पारिभाषिक विस्तार से व्युत्पन्न कार्य करते हैं। ऑब्जेक्ट सदस्यता संबंध, ϵ, (( .∪ )। ( .Ec )) ○ (≤) के रूप में प्राप्त किया जाता है । अंतिम स्वयंसिद्ध के अनुसार, बाउंड ऑब्जेक्ट्स के सेट के लिए the का डोमेन-प्रतिबंध (.○) ɛϲ (○) के बराबर है । संदर्भित दस्तावेजों में, इस संबंध को बाध्य सदस्यता और निरूपित , कहा जाता है । एक महत्वपूर्ण विशेषताओं के रूप में, यह संबंध अच्छी तरह से स्थापित है। यह ε के विपरीत के बाद से जो गैर अच्छी तरह से की स्थापना की है में है आर ε आर। यह पता चला है कि वस्तु प्रौद्योगिकी और सेट सिद्धांत के बीच मुख्य पत्राचार के रूप में व्यक्त किया जा सकता है
∈ ∈ ∈
यानी बंधी हुई सदस्यता अच्छी तरह से स्थापित सेटों के बीच सदस्यता निर्धारित करने से मेल खाती है। एक विशेष मामले के रूप में, ϖ + 1 रैंक का आंशिक वॉन न्यूमैन ब्रह्मांड निश्चित विस्तार द्वारा एक मेटाबोजेक्ट संरचना है। सामान्य तौर पर, हर सार ( π + 1 ) - अधिरचना (ओ, ε ) definitionally एक के बराबर है पूरा metaobject संरचना। प्रत्येक मेटाबॉज संरचना को ईमानदारी से एक पूर्ण मेटाबोजेक्ट संरचना में एम्बेड किया जा सकता है जो बदले में वॉन न्यूमैन ब्रह्मांड में ईमानदारी से एम्बेडेड हो सकता है।
बुनियादी संरचना शब्द का उपयोग मेटाबोजेक्ट संरचनाओं के सामान्यीकरण के लिए किया जाता है। इस सामान्यीकरण में, .ec और .ɛϲ को आंशिक (संभवतः) खाली होने की अनुमति है। विशेष रूप से, परिमित मूल संरचनाएं संभव हैं, जिसमें न्यूनतम संरचना केवल वंशानुक्रम रूट आर है । हर बुनियादी संरचना को मेटाक्जेक्ट संरचना में विस्तारित किया जा सकता है पावरक्लास पूरा होने के बाद सिंगलटन पूरा होता है जो बुनियादी संरचनाओं को वॉन न्यूमैन ब्रह्मांड में विश्वासयोग्य रूप से एम्बेड करता है।