Выпуск языка программирования Julia 1.5

3 августа 2020 года

Wikinews-logo-ru.svg

Опубликован релиз языка программирования Julia 1.5, сочетающего такие качества как высокая производительность, поддержка динамической типизации и встроенные средства для параллельного программирования. Синтаксис Julia близок к MATLAB с заимствованием некоторых элементов из Ruby и Lisp. Метод манипуляции строками напоминает Perl. Код проекта распространяется под лицензией MIT.

В новой версии:

  • Проведена оптимизация размещения структур в памяти, которая позволила значительно сократить число операций распределения памяти в куче (за счёт inline-развёртывания или размещения в стеке), уменьшить потребление памяти и повысить производительность.
  • Улучшена поддержка многопоточности и стабилизирован API для работы с потоками.
  • Предоставлена возможность выбора уровня оптимизации, используемого при сборке отдельных модулей.
  • При передаче аргумента ключевого слова разрешено указание только одного имени, если оно совпадает для ключевого слова и переменной для хранения значения (например, вместо "x=x" можно указывать просто "x").
  • Добавлен новый макрос "@ccall", предоставляющий более удобный синтаксис для вызова функций на языке Си.
  • Разрешён вызов макросов без разделения пробелом (вместо "@foo {...}" теперь можно писать "@foo{...}").
  • На 25% увеличена производительность генерации псевдослучайных чисел.
  • Добавлена опция "--bug-report=rr" для записи и отправки rr-трассировок для упрощения исправления ошибок.
  • В пакетном менеджере по умолчанию активирован протокола Pkg, подразумевающий обращение к собственному репозиторию (pkg.julialang.org) вместо загрузки пакета напрямую из GitHub, GitLab, BitBucket и подобных хранилищ.

Ключевые особенности языка:

  • Высокая производительность: одной из ключевых целей проекта является достижение производительности близкой к программам на языке Си. Компилятор Julia основан на наработках проекта LLVM и генерирует эффективный нативный машинный код для многих целевых платформ;
  • Поддержка различных парадигм программирования, включая элементы объектно-ориентированного и функционального программирования. Стандартная библиотека предоставляет в том числе функции для асинхронного ввода/вывода, управления процессами, ведения логов, профилирования и управления пакетами;
  • Динамическая типизация: язык не требует явного определения типов для переменных по аналогии со скриптовыми языками программирования. Поддерживается интерактивный режим работы;
  • Опциональная возможность явного указания типов;
  • Синтаксис, превосходно подходящий для численных вычислений, научных расчётов, систем машинного обучения и визуализации данных. Поддержка многих числовых типов данных и средств для распараллеливания вычислений.
  • Возможность прямого вызова функций из библиотек на языке Си без дополнительных прослоек.
 

ИсточникиПравить

Эта статья содержит материалы из статьи «Выпуск языка программирования Julia 1.5», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
Эта статья загружена автоматически ботом NewsBots и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
 

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.