स्थैतिक प्रेषण

From Vigyanwiki
Revision as of 11:19, 16 June 2023 by alpha>Indicwiki (Created page with "{{Short description|During compilation, selecting which implementation of a method or function to use}} {{more citations needed|date=January 2021}} {{Polymorphism}} <!--- Perh...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

कम्प्यूटिंग में, स्थैतिक प्रेषण बहुरूपता (कंप्यूटर विज्ञान) का एक रूप है जो संकलन समय के दौरान पूरी तरह से हल हो गया है। यह मेथड डिस्पैच का एक रूप है, जो बताता है कि कैसे एक भाषा या वातावरण चयन करेगा कि किस विधि या फ़ंक्शन का उपयोग करना है।[1] उदाहरण हैं टेम्पलेट (सी ++)C++)|C++ में टेम्प्लेट, और अन्य भाषाओं में सामान्य प्रोग्रामिंग, समारोह अधिभार (ऑपरेटर ओवरलोडिंग सहित) के संयोजन में। कोड को मोनोमोर्फिज्म (कंप्यूटर विज्ञान) कहा जाता है, विशिष्ट डेटा प्रकारों के साथ कॉल ग्राफ़ के माध्यम से घटाया और पता लगाया जाता है, ताकि सामान्य कार्यों के विशिष्ट संस्करणों को तुरंत चालू किया जा सके और आपूर्ति की गई परिभाषाओं के आधार पर विशिष्ट फ़ंक्शन कॉल का चयन किया जा सके।

यह डायनेमिक डिस्पैच के विपरीत है, जो रनटाइम सूचना (जैसे vtable पॉइंटर्स और रन टाइम प्रकार की जानकारी के अन्य रूप) पर आधारित है।

स्टेटिक डिस्पैच संभव है क्योंकि इस बात की गारंटी है कि प्रश्न में विधि का केवल एक ही कार्यान्वयन होगा। स्टेटिक डिस्पैच आमतौर पर गतिशील प्रेषण की तुलना में तेज़ होता है, जो स्वभाव से अधिक ओवरहेड होता है।

जंग में उदाहरण

जंग में (प्रोग्रामिंग भाषा)।[2]

trait Speak {
    fn speak(&self);
}

struct Cat;

impl Speak for Cat {
    fn speak(&self) {
        println!("Meow!");
    }
}

fn talk<T: Speak>(pet: T) {
    pet.speak();
}

fn main() {
    let pet = Cat;
    talk(pet);
}

संकलित होने पर जंग इसे मोनोमोर्फाइज करेगा:

fn talk_cat(pet: Cat) {
    pet.speak();
}


यह भी देखें

  • गतिशील प्रेषण

संदर्भ

  1. क्लोजर के तत्व. Lulu.com. 2019. p. 68. ISBN 9780359360581. Retrieved 17 July 2022.
  2. "सामान्य डेटा प्रकार - जंग प्रोग्रामिंग भाषा". doc.rust-lang.org.