Julia: dynamism and performance reconciled by design
Abstract
Julia is a programming language for the scientific community that combines features of productivity languages, such as Python or MATLAB, with characteristics of performance-oriented languages, such as C++ or Fortran. Julia's productivity features include: dynamic typing, automatic memory management, rich type annotations, and multiple dispatch. At the same time, Julia allows programmers to control memory layout and leverages a specializing just-in-time compiler to eliminate much of the overhead of those features. This paper details the design choices made by the creators of Julia and reflects on the implications of those choices for performance and usability.
Document Details
- Document Type
- Pub Defense Publication
- Publication Date
- Oct 24, 2018
- Source ID
- 10.1145/3276490
Entities
People
- Benjamin Chung
- Jan Vitek
- Jeff Bezanson
- Jiahao Chen
- Lionel Zoubritzky
- Stefan Karpinski
- Viral B. Shah
Organizations
- Capital One
- Czech Technical University in Prague
- European Research Council
- Julia Computing
- National Science Foundation
- Northeastern University
- Office of Naval Research