मोनोमोर्फाइजेशन

From Vigyanwiki
Revision as of 11:17, 16 June 2023 by alpha>Indicwiki (Created page with "{{Short description|Compile-time transformation}} प्रोग्रामिंग भाषाओं में, मोनोमोर्फाइजेशन एक...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

प्रोग्रामिंग भाषाओं में, मोनोमोर्फाइजेशन एक संकलन-समय की प्रक्रिया है जहां बहुरूपी कार्यों को प्रत्येक अद्वितीय तात्कालिकता के लिए कई मोनोमोर्फिक कार्यों द्वारा प्रतिस्थापित किया जाता है।[1] उल्लिखित परिवर्तन से गुजरना फायदेमंद माना जाता है क्योंकि इसका परिणाम विशिष्ट प्रकार के आउटपुट इंटरमीडिएट प्रतिनिधित्व (आईआर) में होता है, जो अधिक प्रभावी अनुकूलन की अनुमति देता है। इसके अतिरिक्त, कई आईआर निम्न स्तर के होने का इरादा रखते हैं और बहुरूपता को समायोजित नहीं करते हैं। परिणामी कोड आमतौर पर गतिशील प्रेषण से तेज़ होता है, लेकिन फ़ंक्शन बॉडी को डुप्लिकेट करने के कारण अधिक संकलन समय और संग्रहण स्थान की आवश्यकता हो सकती है।[2][3][4][5][6][7]


उदाहरण

यह Rust_(programming_language) में एक सामान्य प्रोग्रामिंग पहचान फ़ंक्शन के उपयोग का एक उदाहरण है

fn id<T>(x: T) -> T {
    return x;
}

fn main() {
    let int = id(10);
    let string = id("some text");
    println!("{int}, {string}");
}

मोनोमोर्फाइजेशन के बाद, यह बन जाएगा

fn id_i32(x: i32) -> i32 {
    return x;
}

fn id_str(x: &str) -> &str {
    return x;
}

fn main() {
    let int = id_i32(10);
    let string = id_str("some text");
    println!("{int}, {string}");
}


यह भी देखें

संदर्भ

  1. "सामान्य डेटा प्रकार - जंग प्रोग्रामिंग भाषा". Retrieved 27 May 2021.
  2. Hume, Tristan. "Models of Generics and Metaprogramming: Go, Rust, Swift, D and More". Retrieved 27 May 2021.
  3. Tanaka, Akira; Affeldt, Reynald; Garrigue, Jacques (2018). "मोनोमोर्फाइजेशन और मोनाडिफिकेशन का उपयोग करके Coq में सुरक्षित निम्न-स्तरीय कोड जनरेशन". Journal of Information Processing. 26: 54–72. doi:10.2197/ipsjjip.26.54.
  4. "Extending Smt-Lib v2 with λ-Terms and Polymorphism". CiteSeerX 10.1.1.663.6849. {{cite journal}}: Cite journal requires |journal= (help)
  5. Cai, Yufei; Giarrusso, Paolo G.; Ostermann, Klaus (2016-01-11). "डेटाटाइप-जेनेरिक प्रोग्रामिंग के लिए समवर्ती प्रकार के साथ सिस्टम f-omega". Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. POPL '16. St. Petersburg, FL, USA: Association for Computing Machinery: 30–43. doi:10.1145/2837614.2837660. ISBN 978-1-4503-3549-2. S2CID 17566568.
  6. Klabnik, Steve; Nichols, Carol (2019-08-06). The Rust Programming Language (Covers Rust 2018) (in English). No Starch Press. ISBN 978-1-7185-0044-0.
  7. Felty, Amy P.; Middeldorp, Aart (2015-07-30). Automated Deduction - CADE-25: 25th International Conference on Automated Deduction, Berlin, Germany, August 1-7, 2015, Proceedings (in English). Springer. ISBN 978-3-319-21401-6.