Fast Flexible Function Dispatch in Julia
Jeff Bezanson, Jake Bolewski, Jiahao Chen

TL;DR
This paper discusses Julia's approach to technical computing, emphasizing its flexible multiple dispatch system that enables expressive abstractions and improved performance for complex, high-level code.
Contribution
It introduces Julia's dynamic multiple dispatch over parametric types as a novel way to balance expressiveness and performance in technical computing.
Findings
Julia's multiple dispatch facilitates complex polymorphic behaviors.
The approach improves code reuse and abstraction in technical computing.
Performance gains are achieved through specialized code generation.
Abstract
Technical computing is a challenging application area for programming languages to address. This is evinced by the unusually large number of specialized languages in the area (e.g. MATLAB, R), and the complexity of common software stacks, often involving multiple languages and custom code generators. We believe this is ultimately due to key characteristics of the domain: highly complex operators, a need for extensive code specialization for performance, and a desire for permissive high-level programming styles allowing productive experimentation. The Julia language attempts to provide a more effective structure for this kind of programming by allowing programmers to express complex polymorphic behaviors using dynamic multiple dispatch over parametric types. The forms of extension and reuse permitted by this paradigm have proven valuable for technical computing. We report on how this…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Logic, programming, and type systems · Scientific Computing and Data Management
