प्रोग्रामिंग भाषाओं के बारे में बात करते समय "ऑर्थोगोनलिटी" का क्या अर्थ है?
रूढ़िवादिता के कुछ उदाहरण क्या हैं?
प्रोग्रामिंग भाषाओं के बारे में बात करते समय "ऑर्थोगोनलिटी" का क्या अर्थ है?
रूढ़िवादिता के कुछ उदाहरण क्या हैं?
जवाबों:
रूढ़िवादिता वह संपत्ति है जिसका अर्थ है "परिवर्तन ए नहीं बदलता बी"। एक ऑर्थोगोनल सिस्टम का एक उदाहरण एक रेडियो होगा, जहां स्टेशन को बदलने से वॉल्यूम नहीं बदलता है और इसके विपरीत।
एक गैर-ऑर्थोगोनल प्रणाली एक हेलीकॉप्टर की तरह होगी जहां गति बदलने से दिशा बदल सकती है।
प्रोग्रामिंग भाषाओं में इसका मतलब है कि जब आप किसी निर्देश को निष्पादित करते हैं, तो कुछ भी नहीं होता है, लेकिन यह निर्देश होता है (डीबगिंग के लिए बहुत महत्वपूर्ण)।
अनुदेश सेट का जिक्र करते समय एक विशिष्ट अर्थ भी होता है ।
एरिक एस। रेमंड के "UNIX प्रोग्रामिंग की कला" से
ऑर्थोगोनलिटी सबसे महत्वपूर्ण गुणों में से एक है जो जटिल डिजाइन को भी कॉम्पैक्ट बनाने में मदद कर सकता है। विशुद्ध रूप से ऑर्थोगोनल डिज़ाइन में, ऑपरेशन के दुष्प्रभाव नहीं होते हैं; प्रत्येक क्रिया (चाहे वह एपीआई कॉल हो, मैक्रो इनवोकेशन, या भाषा ऑपरेशन) दूसरों को प्रभावित किए बिना सिर्फ एक चीज बदलती है। आपके द्वारा नियंत्रित की जा रही किसी भी प्रणाली की प्रत्येक संपत्ति को बदलने का एक और केवल एक ही तरीका है।
इसके बारे में सोचें कि यह एक चीज को दूसरे हिस्से पर अनदेखी प्रभाव डाले बिना बदलने में सक्षम है।
यदि आपके पास निर्माणों का एक सेट है। एक लंगोट को ओर्थोगोनल कहा जाता है यदि यह प्रोग्रामर को इन निर्माणों को स्वतंत्र रूप से मिश्रण करने की अनुमति देता है। उदाहरण के लिए, C में आप किसी ऐरे (स्थिर सरणी) को नहीं लौटा सकते, C को इस मामले में अपरंपरागत कहा जाता है:
int[] fun(); // you can't return a static array.
// Of course you can return a pointer, but the langauge allows passing arrays.
// So, it is unorthognal in case.
मोटे तौर पर, ऑर्थोगोनलिटी दो चीजों के बीच एक ऐसा संबंध है, जिसका एक दूसरे पर न्यूनतम प्रभाव पड़ता है।
यह शब्द गणित से आया है, जहां दो वैक्टर ऑर्थोगोनल हैं अगर वे समकोण पर काटते हैं।
एक सामान्य 2 आयामी कार्टेशियन स्पेस के बारे में सोचें (आप एक्स / वाई कुल्हाड़ियों के साथ विशिष्ट ग्रिड)। प्लॉट दो लाइनें: x = 1 और y = 1। दो पंक्तियाँ ओर्थोगोनल हैं। आप x = 1 को बदलकर x बदल सकते हैं, और इससे दूसरी लाइन पर कोई प्रभाव नहीं पड़ेगा, और इसके विपरीत।
सॉफ्टवेयर में, इस शब्द का इस्तेमाल उन स्थितियों में उचित रूप से किया जा सकता है, जहां आप सिस्टम के दो हिस्सों के बारे में बात कर रहे हैं, जो एक-दूसरे से स्वतंत्र व्यवहार करते हैं।
अधिकांश उत्तर बहुत लंबे-घुमावदार होते हैं, और अस्पष्ट भी। मुद्दा यह है: यदि कोई उपकरण ऑर्थोगोनल है, तो इसे जोड़ा जा सकता है, प्रतिस्थापित किया जा सकता है, या हटा दिया जा सकता है, बेहतर उपकरण के पक्ष में, और सब कुछ खराब किए बिना।
यह एक कारपेंटर के बीच एक हथौड़ा और आरी के बीच का अंतर है, जिसका इस्तेमाल हथौड़े या आरी से करने के लिए किया जा सकता है, या कुछ नए नुकीले हथौड़े / आरा कॉम्बो के साथ किया जा सकता है, जो लकड़ी को देखने के लिए डिज़ाइन किया गया है, फिर इसे एक साथ मिलाएं। या तो एक साथ काटने और फिर हथौड़े मारने का काम करेगा, लेकिन अगर आपको कुछ ऐसा काम मिलता है, जिसे देखने के लिए ज़रूरी है, लेकिन हथौड़ा चलाना नहीं है, तो केवल ऑर्थोगोनल उपकरण काम करेंगे। इसी तरह, अगर आपको हथौड़ा चलाने के बजाय पेंच करने की ज़रूरत है, तो आपको अपने हथौड़े को फेंकने की ज़रूरत नहीं होगी, अगर यह आपके हथौड़ा के साथ ऑर्थोगोनल (मिश्रित नहीं है)।
क्लासिक उदाहरण यूनिक्स कमांड लाइन उपकरण है: आपके पास डिस्क (dd) की सामग्री प्राप्त करने के लिए एक उपकरण है, फ़ाइल से लाइनों को फ़िल्टर करने के लिए एक और (grep), उन पंक्तियों को एक फ़ाइल (बिल्ली), आदि के लिए लिखने के लिए। सभी को मिलाया जा सकता है और वसीयत में मिलान किया जा सकता है।
प्रोग्रामिंग भाषाओं पर परियोजना के निर्णयों के बारे में बात करते समय, ऑर्थोगोनलिटी को देखा जा सकता है कि अतीत में जो आपने देखा है, उस भाषा के बारे में अन्य चीजों की भविष्यवाणी करना आपके लिए कितना आसान है।
उदाहरण के लिए, एक भाषा में आप हो सकते हैं:
str.split
एक स्ट्रिंग को विभाजित करने के लिए और
लेन (एसटीआर)
पा लेने के लिए।
अधिक ऑर्थोगोनल भाषा पर, आप हमेशा str.x या x (str) का उपयोग करेंगे।
जब आप किसी ऑब्जेक्ट को क्लोन करेंगे या कुछ और करेंगे, तो आपको पता होगा कि क्या उपयोग करना है
क्लोन (obj)
या
obj.clone
यह प्रोग्रामिंग भाषाओं पर मुख्य बिंदुओं में से एक है जो ऑर्थोगोनल है। यह आपको मैनुअल से परामर्श करने या किसी से पूछने से परहेज करता है।
विकिपीडिया लेख जटिल डिजाइन या निम्न स्तर की भाषाओं पर रूढ़िवाद के बारे में अधिक बात करता है। जैसा कि किसी ने एक टिप्पणी पर ऊपर सुझाव दिया है, सेबेस्टा पुस्तक रूढ़िवादिता के बारे में सफाई से बात करती है।
यदि मैं केवल एक वाक्य का उपयोग करता हूं, तो मैं कहूंगा कि एक प्रोग्रामिंग भाषा ऑर्थोगोनल है जब इसके अज्ञात भाग आपके द्वारा देखे गए के आधार पर अपेक्षित रूप से कार्य करते हैं। या ... कोई आश्चर्य नहीं।
;)
से विकिपीडिया :
कंप्यूटर विज्ञान
ऑर्थोगोनलिटी एक प्रणाली डिजाइन संपत्ति है जो जटिल डिजाइनों की व्यवहार्यता और कॉम्पैक्टनेस की सुविधा प्रदान करती है। ऑर्थोगोनलिटी गारंटी देती है कि सिस्टम के एक घटक द्वारा उत्पादित तकनीकी प्रभाव को संशोधित करना न तो सिस्टम के अन्य घटकों के लिए साइड इफेक्ट्स बनाता है और न ही प्रचार करता है। घटकों से मिलकर एक प्रणाली के उद्भव व्यवहार को उसके तर्क की औपचारिक परिभाषाओं द्वारा कड़ाई से नियंत्रित किया जाना चाहिए, न कि खराब एकीकरण के परिणामस्वरूप, मॉड्यूल और इंटरफेस के गैर-ऑर्थोगोनल डिजाइन के परिणामस्वरूप। ऑर्थोगोनलिटी परीक्षण और विकास के समय को कम कर देता है क्योंकि डिजाइनों को सत्यापित करना आसान है जो न तो दुष्प्रभाव का कारण बनते हैं और न ही उन पर निर्भर करते हैं।
उदाहरण के लिए, एक कार में ऑर्थोगोनल घटक और नियंत्रण होते हैं (जैसे वाहन को गति देना कुछ और प्रभावित नहीं करता है लेकिन विशेष रूप से त्वरण फ़ंक्शन के साथ शामिल घटक)। दूसरी ओर, एक गैर-ऑर्थोगोनल डिज़ाइन का इसका स्टीयरिंग प्रभाव इसकी ब्रेकिंग (जैसे इलेक्ट्रॉनिक स्थिरता नियंत्रण) हो सकता है, या इसकी गति इसके निलंबन को मोड़ सकती है। 1 नतीजतन, इस उपयोग को गणित में ऑर्थोगोनल के उपयोग से प्राप्त किया जाता है: कोई एक वेक्टर को एक उप-प्रस्थान पर ले जा सकता है, इसे अलग-अलग आधार वैक्टर के प्रत्येक सदस्य पर प्रोजेक्ट करके और अनुमानों को जोड़ने और यदि केवल आधार वैक्टर है पारस्परिक रूप से रूढ़िवादी हैं।
एक निर्देश सेट को ऑर्थोगोनल कहा जाता है यदि कोई भी निर्देश किसी भी पते के मोड में किसी भी रजिस्टर का उपयोग कर सकता है। यह शब्दावली एक निर्देश को एक सदिश के रूप में मानती है जिसके घटक अनुदेश क्षेत्र हैं। एक क्षेत्र रजिस्टरों को संचालित करने के लिए पहचानता है, और दूसरा पता मोड को निर्दिष्ट करता है। एक ऑर्थोगोनल इंस्ट्रक्शन सेट विशिष्ट रूप से रजिस्टरों और एड्रेसिंग मोड के सभी संयोजनों को कूटबद्ध करता है।
से विकिपीडिया :
ऑर्थोगोनलिटी एक प्रणाली डिजाइन संपत्ति है जो जटिल डिजाइनों की व्यवहार्यता और कॉम्पैक्टनेस की सुविधा प्रदान करती है। ऑर्थोगोनलिटी गारंटी देती है कि सिस्टम के एक घटक द्वारा उत्पादित तकनीकी प्रभाव को संशोधित करना न तो सिस्टम के अन्य घटकों के लिए साइड इफेक्ट्स बनाता है और न ही प्रचार करता है। घटकों से मिलकर एक प्रणाली के उद्भव व्यवहार को उसके तर्क की औपचारिक परिभाषाओं द्वारा कड़ाई से नियंत्रित किया जाना चाहिए, न कि खराब एकीकरण के परिणामस्वरूप, मॉड्यूल और इंटरफेस के गैर-ऑर्थोगोनल डिजाइन के परिणामस्वरूप। ऑर्थोगोनलिटी परीक्षण और विकास के समय को कम करती है क्योंकि डिजाइनों को सत्यापित करना आसान होता है जो न तो साइड इफेक्ट का कारण बनते हैं और न ही उन पर निर्भर करते हैं।
उदाहरण के लिए, एक कार में ऑर्थोगोनल घटक और नियंत्रण होते हैं (जैसे वाहन को गति देना कुछ और प्रभावित नहीं करता है लेकिन विशेष रूप से त्वरण फ़ंक्शन के साथ शामिल घटक)। दूसरी ओर, एक गैर-ऑर्थोगोनल डिज़ाइन का स्टीयरिंग प्रभाव इसकी ब्रेकिंग (जैसे इलेक्ट्रॉनिक स्थिरता नियंत्रण) हो सकता है, या इसकी गति इसके निलंबन को मोड़ सकती है। [१] नतीजतन, इस उपयोग को गणित में ऑर्थोगोनल के उपयोग से प्राप्त किया जाता है: कोई एक वेक्टर को एक उप-प्रस्थान पर ले जा सकता है, इसे अलग-अलग आधार वैक्टर के प्रत्येक सदस्य पर प्रोजेक्ट करके और अनुमानों को जोड़ सकता है यदि और केवल आधार वैक्टर हैं तो पारस्परिक रूप से रूढ़िवादी।
एक निर्देश सेट को ऑर्थोगोनल कहा जाता है यदि कोई भी निर्देश किसी भी पते के मोड में किसी भी रजिस्टर का उपयोग कर सकता है। यह शब्दावली एक निर्देश को एक सदिश के रूप में मानती है जिसके घटक अनुदेश क्षेत्र हैं। एक क्षेत्र रजिस्टरों को संचालित करने के लिए पहचानता है, और दूसरा पता मोड को निर्दिष्ट करता है। एक ऑर्थोगोनल इंस्ट्रक्शन सेट विशिष्ट रूप से रजिस्टरों और एड्रेसिंग मोड के सभी संयोजनों को कूटबद्ध करता है।
यदि संभव हो तो इसे सरलतम शब्दों में कहें, तो दो चीजें ऑर्थोगोनल हैं यदि एक को बदलने पर दूसरे पर कोई प्रभाव नहीं पड़ता है।
उच्च-स्तरीय भाषा में ऑर्थोगोनलिटी की कमी के उदाहरण के रूप में, सी में निम्नलिखित नियमों और अपवादों पर विचार करें। हालांकि सी में दो प्रकार के संरचित डेटा प्रकार, सरणियाँ और रिकॉर्ड (संरचनाएं) हैं, रिकॉर्ड फ़ंक्शन से वापस आ सकते हैं लेकिन सरणियाँ नहीं कर सकते। किसी संरचना का सदस्य शून्य या एक ही प्रकार की संरचना को छोड़कर कोई भी डेटा प्रकार हो सकता है। सरणी तत्व शून्य या फ़ंक्शन को छोड़कर कोई भी डेटा प्रकार हो सकता है। पैरामीटर मान द्वारा पारित किए जाते हैं, जब तक कि वे सरणियां नहीं होती हैं, जिस स्थिति में वे प्रभाव में होते हैं, संदर्भ द्वारा पारित किया जाता है (क्योंकि सी कार्यक्रम में बिना सबस्क्रिप्ट के एक सरणी नाम की उपस्थिति को सरणी के पहले तत्व का पता समझा जाता है)
प्रोग्रामिंग भाषाओं में एक प्रोग्रामिंग लैंग्वेज फीचर को ऑर्थोगोनल कहा जाता है यदि यह बिना किसी प्रतिबंध (या अपवाद) के साथ जुड़ा हुआ है। उदाहरण के लिए, पास्कल कार्यों में संरचित प्रकारों को वापस नहीं किया जा सकता है। यह एक फ़ंक्शन से मान वापस करने पर प्रतिबंध है। इसलिए हम इसे एक गैर-ऑर्थोगोनल विशेषता के रूप में माना जाता है। ;)
प्रोग्रामिंग में रूढ़िवादिता:
ऑर्थोगोनलिटी एक महत्वपूर्ण अवधारणा है, जिससे पता चलता है कि अपेक्षाकृत कम संख्या में घटकों को वांछित परिणाम प्राप्त करने के लिए अपेक्षाकृत कम संख्या में कैसे जोड़ा जा सकता है। यह सादगी से जुड़ा है; अधिक ओर्थोगोनल डिजाइन, कम अपवाद। इससे प्रोग्रामिंग भाषा में प्रोग्राम सीखना, पढ़ना और लिखना आसान हो जाता है। ऑर्थोगोनल विशेषता का अर्थ संदर्भ से स्वतंत्र है; मुख्य पैरामीटर समरूपता और स्थिरता हैं (उदाहरण के लिए, एक सूचक एक ऑर्थोगोनल अवधारणा है)।
से विकिपीडिया
एक प्रोग्रामिंग भाषा में रूढ़िवादिता का मतलब है कि भाषा के नियंत्रण और डेटा संरचनाओं के निर्माण के लिए अपेक्षाकृत कम संख्या में आदिम निर्माण का एक अपेक्षाकृत छोटा सेट जोड़ा जा सकता है। इसके अलावा, आदिम का हर स्थिति-योग्य संयोजन कानूनी और सार्थक है। उदाहरण के लिए, डेटा प्रकारों पर विचार करें। मान लीजिए कि एक भाषा में चार आदिम डेटा प्रकार (पूर्णांक, फ्लोट, डबल और चरित्र) और दो प्रकार के ऑपरेटर (सरणी और सूचक) हैं। यदि दो प्रकार के ऑपरेटरों को स्वयं और चार आदिम डेटा प्रकारों पर लागू किया जा सकता है, तो बड़ी संख्या में डेटा संरचनाएं परिभाषित की जा सकती हैं। एक ऑर्थोगोनल भाषा विशेषता का अर्थ एक कार्यक्रम में अपनी उपस्थिति के संदर्भ से स्वतंत्र है। (ऑर्थोगोनल शब्द ऑर्थोगोनल वैक्टर की गणितीय अवधारणा से आया है, जो एक दूसरे से स्वतंत्र हैं। ) रूढ़िवादिता आदिम संबंधों के बीच संबंधों की समरूपता से होती है। रूढ़िवादिता की कमी भाषा के नियमों को अपवाद की ओर ले जाती है। उदाहरण के लिए, एक प्रोग्रामिंग भाषा में जो पॉइंटर्स का समर्थन करता है, भाषा में किसी भी विशिष्ट प्रकार को इंगित करने के लिए एक पॉइंटर को परिभाषित करना संभव होना चाहिए। हालाँकि, यदि बिंदुओं को सरणियों को इंगित करने की अनुमति नहीं है, तो संभावित रूप से उपयोगी उपयोगकर्ता-परिभाषित डेटा संरचनाओं को परिभाषित नहीं किया जा सकता है। हम आईबीएम मेनफ्रेम कंप्यूटर की असेंबली लैंग्वेज और मिनिकॉमपॉइंट्स की वैक्स श्रृंखला के एक पहलू की तुलना करके डिजाइन अवधारणा के रूप में ऑर्थोगोनलिटी के उपयोग का वर्णन कर सकते हैं। हम एक एकल साधारण स्थिति पर विचार करते हैं: दो 32-बिट पूर्णांक मानों को जोड़ना जो या तो मेमोरी या रजिस्टरों में रहते हैं और योग के साथ दो मानों में से एक को प्रतिस्थापित करते हैं। इस उद्देश्य के लिए आईबीएम मेनफ्रेम के दो निर्देश हैं,
A Reg1, memory_cell
AR Reg1, Reg2
जहां Reg1 और Reg2 रजिस्टरों का प्रतिनिधित्व करते हैं। इनके शब्दार्थ हैं
Reg1 ← contents(Reg1) + contents(memory_cell)
Reg1 ← contents(Reg1) + contents(Reg2)
32-बिट पूर्णांक मानों के लिए VAX जोड़ निर्देश है
ADDL operand_1, operand_2
जिसका शब्दार्थ है
operand_2 ← contents(operand_1) + contents(operand_2)
इस मामले में, या तो ऑपरेंड एक रजिस्टर या मेमोरी सेल हो सकता है। VAX इंस्ट्रक्शन डिज़ाइन ऑर्थोगोनल है, जिसमें सिंगल इंस्ट्रक्शंस, रजिस्टरों या मेमोरी सेल्स को ऑपरेंड के रूप में इस्तेमाल कर सकते हैं। ऑपरेंड निर्दिष्ट करने के दो तरीके हैं, जिन्हें सभी संभव तरीकों से जोड़ा जा सकता है। IBM डिज़ाइन ओर्थोगोनल नहीं है। चार ऑपरेंड कॉम्बिनेशन की संभावनाओं में से केवल दो ही कानूनी हैं, और दोनों को अलग-अलग निर्देशों, ए और एआर की आवश्यकता होती है। आईबीएम डिज़ाइन अधिक प्रतिबंधित है और इसलिए कम लेखन योग्य है। उदाहरण के लिए, आप दो मान नहीं जोड़ सकते हैं और किसी स्मृति स्थान में योग को संग्रहीत कर सकते हैं। इसके अलावा, आईबीएम डिजाइन प्रतिबंध और अतिरिक्त निर्देश के कारण सीखना अधिक कठिन है। ऑर्थोगोनलिटी सादगी से निकटता से संबंधित है: किसी भाषा का डिजाइन जितना अधिक ऑर्थोगोनल होता है, भाषा के नियमों में उतने ही कम अपवादों की आवश्यकता होती है। कम अपवादों का मतलब डिजाइन में नियमितता का एक उच्च स्तर है, जो भाषा को सीखना, पढ़ना और समझना आसान बनाता है। जिस किसी ने भी अंग्रेजी भाषा का एक कठिन-महत्वपूर्ण हिस्सा सीखा है, वह अपने कई नियम अपवादों को सीखने की कठिनाई की गवाही दे सकता है (उदाहरण के लिए, ई से पहले ई को छोड़कर सी)।
ऑर्थोगोनलिटी का अर्थ है वह डिग्री जिसमें भाषा में स्वतंत्र आदिम निर्माण का एक सेट होता है जिसे किसी कार्यक्रम को व्यक्त करने के लिए आवश्यक रूप से जोड़ा जा सकता है। यदि वे संयुक्त हो सकते हैं तो इस पर कोई प्रतिबंध नहीं है, तो सुविधाएँ रूढ़िवादी हैं
Example : non-orthogonality
PASCAL: फ़ंक्शन संरचित प्रकार वापस नहीं कर सकते। कार्यात्मक भाषाएँ अत्यधिक ओर्थोगोनल हैं।
ओर्थोगोनलिटी का मूल विचार यह है कि जो चीजें वैचारिक रूप से संबंधित नहीं हैं, उन्हें सिस्टम में संबंधित नहीं होना चाहिए। आर्किटेक्चर के कुछ हिस्सों का वास्तव में दूसरे से कोई लेना-देना नहीं है, जैसे डेटाबेस और यूआई, को एक साथ बदलने की आवश्यकता नहीं है। एक में बदलाव से दूसरे में बदलाव नहीं होना चाहिए।
मैट्रिसेस की जाँच करें
मातृत्व के संबंध में रूढ़िवादिता भी हो सकती है,
Matrix *(transpose of matrix)= identity matrix.
रूढ़िवादी पर YouTube वीडियो देखने के लिए नीचे दिए गए लिंक पर क्लिक करें।
https://youtu.be/tNekLaxnfW8