The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Новый открытый динамический язык программирования Julia, исп..."
Отправлено opennews, 10-Мрт-12 20:55 
На предстоящей (http://llvm.org/devmtg/2012-04-12/) европейской конференции проекта LLVM (http://llvm.org/) в Лондоне будет (http://permalink.gmane.org/gmane.comp.compilers.llvm.devel/4... официально представлен новый язык программирования Julia (http://julialang.org/), использующий JIT-компилятор на базе наработок проекта LLVM (http://llvm.org/). Julia является динамическим языком высокого уровня с открытым исходным кодом (https://github.com/JuliaLang/julia) (лицензия MIT), нацеленный прежде всего на техническое программирование в статистико-математических областях, с областью применения аналогичной таким известным решениям, как Matlab, язык R и связка из Python и NumPy.


Julia мультипарадигменный язык, который может комбинировать разные стили программирования, такие как императивный, объектно-ориентированный и функциональный. Синтаксис Julia очень близок к синтаксису MATLAB. По мнению создателей этого языка, к его достоинствам также следует отнести множество заимствований из синтаксиса Ruby и Lisp, удобная работа со строками в стиле Perl, кроме того обеспечена очень гибкая встроенная поддержка Hadoop (http://hadoop.apache.org/). Уже идет работа по реализации полиморфных функций, поддержки задействования GPU для ускорения вычислений, автовектаризации  и прочего.


Отдельно следует подчеркнуть, что язык Julia изначально спроектирован с учетом поддержки параллельного программирования (http://julialang.org/manual/parallel-computing/) (например, реализованы так называемые Coroutines (http://en.wikipedia.org/wiki/Coroutine)), поэтому эта среда очень хорошо подходит для таких актуальных сегодня областей, как виртуализация и облачные вычисления, практическая работа со стороны разработчиков языка по экспериментированию в этих  областях уже начата.

Если же попытаться выделить основные новшества и отличия этого языка от ему подобных, то в качестве первого важного отличия Julia следует отметить его сильный акцент на производительности, больше сопоставимой по своим характеристикам с языком С, а также полная открытость технологии для сообщества.


<center><img src="http://www.opennet.ru/opennews/pics_base/0_1331397508.png" style="border-style: solid; border-color: #000000; border-width: 1px;" title="" border=0></center>

Ещё одна важная особенность Julia - язык  исповедует (http://julialang.org/manual/calling-c-and-fortran-code/) "безшаблонную" философию: внешние функции могут вызываться из Julia напрямую без какого-либо "кода для сопряжения" параметров вызова и библиотеки, и это можно делать не только из скомпилированного кода программы на Julia, но даже из  интерактивной командной строки. Единственное ограничение для такого подхода - библиотеки с вызываемыми функциями должны быть представлены в виде "
"разделяемой библиотеки". Впрочем, большинство библиотек для C или Fortran'a распространяются как раз именно в таком виде. Машинные инструкции, которые генерирует JIT-компилятор (http://en.wikipedia.org/wiki/Just-in-time_compilation) Julia в этом вызове - полностью аналогичны тому коду, который сгенерировал бы C-компилятор, поэтому накладные расходы от вызова внешней функции из Julia здесь почти такие же, как и в C. В этой области возможно ещё множество оптимизаций, которые будут реализованы в этом языке в ближайшем будущем.

Другие интересные особенности этого нового динамического языка:

-  Ядро языка очень невелико, его стандартная библиотека включает минимальный набор примитивных операций, такие как например арифметические операции, т.е. гибкая масштабируемость языка;
-  Богатый язык типов для описания и конструирования объектов;
-  Возможность определять поведение функции при передачи разного количества аргументов через multiple dispatch (http://en.wikipedia.org/wiki/Multiple_dispatch);
-  Автоматическая генерация максимально эффективного кода для разных типов аргументов и переменных;
-  Полная поддержка Unicode;
-  Мощные шелл-подобные функции для запуска и управления внешними  программами и процессами.

URL: http://permalink.gmane.org/gmane.comp.compilers.llvm.devel/4...
Новость: http://www.opennet.ru/opennews/art.shtml?num=33315

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру