Global Information Lookup Global Information

Monomorphization information


In Rust, monomorphization is a compile-time process where polymorphic functions are replaced by many monomorphic functions for each unique instantiation.[1] It is considered beneficial to undergo the mentioned transformation because it results in the output intermediate representation (IR) having specific types, which allows for more effective optimization. Additionally, many IRs are intended to be low-level and do not accommodate polymorphism. The resulting code is generally faster than dynamic dispatch, but may require more compilation time and storage space due to duplicating the function body.[2][3][4][5][6][7]

  1. ^ "Generic Data Types - The Rust Programming Language". 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). "Safe Low-level Code Generation in Coq Using Monomorphization and Monadification". 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). "System f-omega with equirecursive types for datatype-generic programming". Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. POPL '16. St. Petersburg, FL, USA: Association for Computing Machinery. pp. 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). 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. Springer. ISBN 978-3-319-21401-6.

and 5 Related for: Monomorphization information

Request time (Page generated in 0.5479 seconds.)

Monomorphization

Last Update:

In Rust, monomorphization is a compile-time process where polymorphic functions are replaced by many monomorphic functions for each unique instantiation...

Word Count : 363

Type erasure

Last Update:

definition. Template (C++) Problems with type erasure (in Generics in Java) Monomorphization Type polymorphism Langer, Angelika. "What is reification?". Crary,...

Word Count : 189

Static dispatch

Last Update:

T) { pet.speak(); } fn main() { let pet = Cat; talk(pet); } Rust will monomorphize this when compiled into: fn talk_cat(pet: Cat) { pet.speak(); } Dynamic...

Word Count : 240

Partial template specialization

Last Update:

each one working with a different data type. This process is called monomorphization of generics. If one knows that a class template will be used with a...

Word Count : 960

Intersection type

Last Update:

Additionally, generic type parameters can have constraints that require their (monomorphized) type-arguments to implement multiple interfaces, whereupon the runtime...

Word Count : 2388

PDF Search Engine © AllGlobal.net