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

Tags

Fields of Study

  • Computer science

Readers

  • Computational Linguistics
  • Distributed Systems and Data Platform Development
  • Systems Analysis and Design