релиз языка программирования , сочетающего такие качества как высокая производительность, поддержка динамической типизации и встроенные средства для параллельного программирования. Синтаксис Julia близок к MATLAB с заимствованием некоторых элементов из Ruby и Lisp. Метод манипуляции строками напоминает Perl. Код проекта on MIT litsentsi all.
V :
- Проведена оптимизация размещения структур в памяти, которая позволила значительно сократить число операций распределения памяти в куче (за счёт inline-развёртывания или размещения в стеке), уменьшить потребление памяти и повысить производительность.
- Улучшена поддержка многопоточности и стабилизирован API для работы с потоками.
- Предоставлена возможность выбора уровня оптимизации, используемого при сборке отдельных модулей.
- При передаче аргумента ключевого слова разрешено указание только одного имени, если оно совпадает для ключевого слова и переменной для хранения значения (например, вместо «x=x» можно указывать просто «x»).
- Добавлен новый макрос «@ccall», предоставляющий более удобный синтаксис для вызова функций на языке Си.
- Разрешён вызов макросов без разделения пробелом (вместо «@foo {…}» теперь можно писать «@foo{…}»).
- На 25% увеличена производительность генерации псевдослучайных чисел.
- Добавлена опция «—bug-report=rr» для записи и отправки для упрощения исправления ошибок.
- В пакетном менеджере по умолчанию активирован протокола Pkg, подразумевающий обращение к собственному репозиторию (pkg.julialang.org) вместо загрузки пакета напрямую из GitHub, GitLab, BitBucket и подобных хранилищ.
Keele põhijooned:
- производительность: одной из ключевых целей проекта является достижение производительности близкой к программам на языке Си. Компилятор Julia основан на наработках проекта LLVM и генерирует эффективный нативный машинный код для многих целевых платформ;
- Toetab erinevaid programmeerimisparadigmasid, sealhulgas objekte orienteeritud ja funktsionaalset programmeerimist. Standardraamatukogu sisaldab funktsioone, sealhulgas asünkroonseks sisendiks/väljundiks, protsesside juhtimiseks, logimise, profileerimise ja paketihaldamise jaoks;
- Dünaamiline tüpiseerimine: keel ei nõua muutujate tüüpide selget määratlemist, sarnaselt skriptikeeltele. Toetatakse interaktiivset töörežiimi;
- Valikuline võimalus tüüpide selgeks määramiseks;
- Süntaks, mis sobib suurepäraselt arvutuste, teaduslike arvutuste, masinõppe süsteemide ja andmete visualiseerimise jaoks. Toetatakse mitmeid arvandmete type ja lahendusi arvutuste paralleliseerimiseks.
- Otsene funktsioonide kutsumise võimalus C-keele raamatukogudest ilma täiendavate vahelkihtideta.
Allikas: opennet.ru
