Julia (язык программирования)
язык программирования / Материал из Википедии — свободной encyclopedia
Уважаемый Wikiwand AI, давайте упростим задачу, просто ответив на эти ключевые вопросы:
Перечислите основные факты и статистические данные о Julia (язык программирования)?
Кратко изложите эту статью для 10-летнего ребёнка
Julia — высокоуровневый свободный язык программирования с динамической типизацией, созданный для математических вычислений. Эффективен также и для написания программ общего назначения.[5][6][7] Синтаксис языка схож с синтаксисом других математических языков (например, MATLAB и Octave), однако имеет некоторые существенные отличия. Julia написан на Си, C++ и Scheme. Имеет встроенную поддержку многопоточности и распределённых вычислений, реализованные в том числе в стандартных конструкциях.
Julia | |
---|---|
Класс языка | объектно-ориентированный, язык функционального программирования, векторный язык программирования[вд], мультипарадигмальный, императивный и интерпретируемый |
Появился в | 23 августа 2009[1][2] |
Автор | Джефф Безансон[вд], Алан Эдельман[вд], Стефан Карпински[вд] и Вирал Шах[вд] |
Разработчик | Джефф Безансон[вд], Стефан Карпински[вд], Алан Эдельман[вд] и Вирал Шах[вд] |
Расширение файлов |
.jl [3] |
Испытал влияние | MATLAB |
Сайт | julialang.org (англ.) |
ОС | Linux, Windows[4] и macOS[4] |
Медиафайлы на Викискладе |
Язык является динамическим, при этом поддерживает JIT-компиляцию (JIT-компилятор на основе LLVM входит в стандартный комплект), благодаря чему, по утверждению авторов языка, приложения, полностью написанные на языке (без использование низкоуровневых библиотек и векторных операций) практически не уступают в производительности приложениям, написанным на статически компилируемых языках, таких как Си или C++[7]. Большая часть стандартной библиотеки языка написана на нём же[8].
Поддерживается перегрузка функций и операторов (которые фактически также являются функциями), при этом опционально можно указывать тип для аргументов функции, чего обычно нет в динамически типизируемых языках. Это позволяет создавать специализированные варианты функций и операторов для ускорения вычислений. Наиболее подходящий вариант функции выбирается автоматически в процессе выполнения. Также благодаря перегрузке операторов можно создавать новые типы данных, которые ведут себя подобно встроенным типам.