Серия

Julia

на Jeff Bezanson, Stefan Karpinski

Джулия — это динамический язык в традиции Lisp, Perl, Python и Ruby. Она направлена на повышение экспрессивности и удобства для научных и технических вычислений за рамки сред, таких как Matlab и NumPy, одновременно закрывая разрыв производительности с скомпилированных языков, таких как C, C++, Фортран и Java.

Большинство высокопроизводительных динамических языковых реализаций приняли существующий интерпретируемый язык и работали над ускорением его выполнения. При создании Джулии мы пересмотрели базовый дизайн языка, учитывая возможности современных компиляторов JIT и конкретные потребности технических вычислений. Наш дизайн включает в себя:

  1. Несколько диспетчеров в качестве основной языковой парадигмы.
  2. Предоставление сложной системы типов, включая зависимые от параметров типы.
  3. Вывод динамического типа для создания быстрого кода из программ без объявлений.
  4. Агрессивная специализация созданного кода для типов, встречающихся во время выполнения.

Джулия чувствует себя легкой и естественной для изучения данных и создания прототипов алгоритмов, но имеет производительность, которая позволяет развертывать прототипы.