ओओपी में एक विशेष शब्द के रूप में "विधि" कहां से उत्पन्न होती है?


13

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

जवाबों:


11

जावा और सी # को सी ++ से विधि मिली , जो इसे सिमुला से मिली ।

और अल्गोल का शायद सिमाला पर प्रभाव था :

इसके अलावा, MIT ALGOL संस्करण, AED-0, लिंक किए गए डेटा स्ट्रक्चर्स ("plexes", उस बोली में) प्रक्रियाओं के साथ सीधे, प्रीफ़्यूरिंग जो बाद में "मैसेज", "मेथड्स" और "मेम्बर फ़ंक्शंस" कहे गए


3
IIRC, C ++ आमतौर पर 'मेम्बर फंक्शन' को 'मेथड' से अधिक पसंद करता है।
tdammers

उसी विकिपीडिया लेख के अनुसार, यह 60 के दशक की पहली छमाही के भीतर शब्द (OOP से संबंधित) का सिक्का रखता है।
ट्यूलेंस कोरडोवा

2

यह निश्चित रूप से पता लगाने के लिए कठिन है, लेकिन चीजों को संदर्भित करने वाली पहली भाषा है क्योंकि विधियों में सिमूला प्रतीत होता है, हालांकि यह अच्छी तरह से गलत या पूर्वव्यापी हो सकता है। यह देखते हुए कि फ़ंक्शन (गणित से) और प्रक्रियाएं (गणित से भी) प्रोग्रामिंग भाषाओं में दिखाई देती हैं, सबसे अच्छा मैं यह समझ सकता हूं कि "मेथड" "मेथोडोलॉजी" के लिए संक्षिप्त रूप है।

ये सभी सबरूटीन्स हैं, एक कंप्यूटर प्रोग्राम बनाने वाले कोड के बिट्स हैं। मुझे लगता है कि "विधि" को चुना गया था क्योंकि OOP शैली प्रोग्रामिंग के पीछे का विचार कोड का पुन: उपयोग करना है। इस प्रकार, आपके पास एक प्रक्रिया हो सकती है लेकिन एक विधि इसे और अधिक स्पष्ट करती है कि यह काम पर एक नई शैली है। ईमानदारी से, मुझे विधियों को कॉल करने के लिए जाना जाता है और मैंने फ़ंक्शन को विधि कहा जाता है।


6
मुझे डर है कि आप गलत तरीके से 'आंकड़ा' - विधि (एक लक्ष्य प्राप्त करने के लिए एक प्रक्रिया) और कार्यप्रणाली (अध्ययन) के अलग-अलग अर्थ हैं।
जेके

1
इसके अलावा, "विधि" बहुत लंबे समय के लिए एक अंग्रेजी शब्द के रूप में मौजूद है। अनुबंध करने के लिए लंबे समय तक शब्द देखने की आवश्यकता नहीं है।
स्टीव ३४

"विधि" के बजाय "फ़ंक्शन" का उपयोग करने पर, यह काफी हद तक सी ++ की गलती है, और इस तथ्य के कारण कि सी में "प्रक्रिया" की कोई अवधारणा नहीं है, केवल एक "फ़ंक्शन" जो रिटर्न देता है void। C ++ के सदस्य कार्य सामान्य कार्यों (सिमूला के विपरीत) से बहुत निकट से संबंधित हैं - एक निहित thisपैरामीटर और (संभवतः) एक रनटाइम डिस्पैच तंत्र वास्तव में वह नहीं बदलता है जो आप के साथ काम कर रहे हैं। मुझे नहीं पता कि क्या C पहली बार फ़ंक्शन और प्रक्रियाओं को एक ही चीज़ के रूप में मानता है, लेकिन पास्कल (एक नई भाषा) के पास functionऔर procedureकीवर्ड हैं - हालांकि IIRC, पास्कल फ़ंक्शन के दुष्प्रभाव हो सकते हैं।
स्टीव ३१४

विशेष रूप से, विधि एक लक्ष्य को प्राप्त करने का एक तरीका है, एक विवरण / ज्ञान, न कि प्रक्रिया। "क्लास" के संबंध में इसका एक महत्व है, एक अन्य अमूर्त अवधारणा, एक प्रकार की वस्तुओं को परिभाषित करना। जब तक वे उस वर्ग के होते हैं, तब तक आपको वस्तुओं का एक वर्ग और प्रत्येक / किसी भी वस्तु के साथ एक्स करने की एक विधि मिलती है। आप विशिष्ट वस्तु के लिए एक सामान्य विधि लागू करते हैं और उस वस्तु के लिए विशिष्ट परिणाम प्राप्त करते हैं।
एसएफ।

1

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


0

मुझे ओओपी इतिहास में इस शब्द की व्युत्पत्ति के बारे में कुछ भी पता नहीं है। लेकिन मुझे पता है कि यह नहीं है deductional (deducable)। इसके लिए एक बेहतर टर्म (एक अधिक डिडक्टेशनल टर्म या एमडीटी) प्रतिक्रिया या कार्य हो सकता है


2
मुझे पूरा यकीन है कि मैं आपसे सहमत नहीं हूँ। "मेथड" पूरी तरह से एक सारगर्भित शब्द है, जो कि पूरी चीज के रूप में शुरू हुआ, विभिन्न चीजों को मॉडलिंग करने का एक तरीका, प्रत्येक 'चीज' एक वर्ग का होने के साथ, इस बात को बदलने के तरीके होने से कि कैसे चीज थी। उसी तरह से जो वास्तविक दुनिया में चीजों को बदलते हैं, जैसे।
वैटीन जूल

मुझे लगता है कि "विधि" मूल रूप से "प्रक्रिया" के समान कार्यान्वयन कोड का वर्णन करती है - परिणाम की गणना के लिए विधि / प्रक्रिया / एल्गोरिथ्म। इसे एक इंटरफ़ेस के लिए उपयोग करना जहां कार्यान्वयन ज्ञात नहीं है, एक बालक अजीब है, लेकिन मूल रूप से (सिमुला में) "संदेश" शायद इसके लिए उपयोग किया गया था। फिर भी, जब आप किसी विधि को कॉल करते हैं, तो आप कार्यान्वयन कोड लागू कर रहे हैं, भले ही आपको पता न हो (कॉल साइट पर) कौन सा कार्यान्वयन।
स्टीव ३१४

1
मुझे लगता है कि तीन शब्द 'फ़ंक्शन', 'प्रक्रिया', और 'विधि', 'फंक्शन' का गणितीय अर्थ है (आउटपुट के लिए मैप इनपुट), 'प्रक्रिया' जरूरी है (चरणों की एक श्रृंखला निष्पादित करें) भी उसी में उपयोग किया जाता है सेना में भावना); 'विधि' में या तो अर्थ नहीं है, जो शायद इसलिए OOP में पसंद किया जाता है।
तदममर्स

@Vatine +1 "cromulent" के लिए
MattDavey

-1

REAL BASIC, VBx और VB.net बैकग्राउंड वाले प्रोग्रामर दो प्रकार के विधि घोषणाओं के बारे में जानते हैं "FUNCTION" & "SUB"। भाषाओं का मूल परिवार "समारोह" कीवर्ड के साथ-साथ "SUB" कीवर्ड के साथ एक फ़ंक्शन घोषित करने की अनुमति देता है। इन दोनों के बीच का अंतर यह है कि एक "FUNCTION" एक मान को वापस नहीं कर सकता है या जहां "SUB" के रूप में, कोड को निष्पादित करता है, लेकिन किसी भी मूल्य को वापस नहीं करेगा। लेकिन OO अवधारणाओं के आगमन के साथ, शर्तों उप और फ़ंक्शन का उपयोग तरीकों के रूप में परस्पर उपयोग किया जाने लगा है।


2
समान पास्कल की प्रक्रिया / कार्य के लिए जाता है
Mchl

3
VB "फ़ंक्शन" और "सब" का उपयोग करता है, "सबरूटीन" के लिए छोटा, "विधि" नहीं।
एंट

5
मुझे संदेह है कि एलन Kay OOP और स्मॉलटाक के साथ आने पर बेसिक सोच रहा था
मैगलो जूल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.