LINUX.ORG.RU

В MIT разработали новый язык программирования

 , , ,


3

7

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

Язык программирования Simit основан на обратимом автоматическом переводе низкоуровневого описания алгоритмов в высокоуровневое, или графиков в матрицы, с помощью численных методов линейной алгебры. Дальнейшее моделирование не требует от программиста дополнительного переключения и предполагает традиционное написание кода только на языке линейной алгебры. Программы, написанные на Simit, могут работать на обычных (CPU) и графических (GPU) микропроцессорах без адаптации кода.

Вместе с тем новый язык отличается высокой скоростью выполнения алгоритмов. Тесты показали, что на GPU код Simit работает в 4–20 раз быстрее, чем на CPU. Скорость написания кода на Simit в десятки и сотни раз превзошла показатель других языков научного программирования. По словам исследователей, такого результата удалось достичь за счет повышения производительности языка: для выполнения одного и того же алгоритма ему потребовалось 0,1 от стандартного объема кода.

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

Участие в разработке Simit принимали ученые из MIT, Калифорнийского университета в Беркли, Торонтского университета, Техасского университета A&M, Техасского университета в Остине, а также исследователи из компании Adobe Systems Inc.

Simit опубликован под лицензией MIT позволяющей использовать его как в проектах с открытым исходным кодом, так и в коммерческих проектах.

GitHub

Источник

Примеры кода и описание языка

>>> Подробности

Ответ на: комментарий от mono

Так это как раз и плохо. Зачем нужна точка с запятой в языке без требования её ставить в конце последней инструкции строки? Только чтоб разделять инструкции в одной строке. Практика писать несколько инструкций в одну строку не то что бы сильно распространена и не то что бы достойна поощрения. Так что, можно сказать, в хорошо отформатированном коде точка с запятой вообще не встречается. Далее, что означает отсутствие точки с запятой в конце строки? Это значит, либо инструкция не закончилась, либо что закончилась, но программист не поставил точку с запятой. Смысл прямо противоположный. если бы авторы языков без обязательного завершения точкой с запятой были бы не идиотами, и для них так принципиально экономить на точке с запятой, им следовало бы не делать точку с запятой опциональной, а совсем выкинуть, постановить, что перевод строки всегда означает конец инструкции и добавить некий символ переноса, означающий «инструкция не закончена, продолжение на другой строке».

khrundel ★★ ()
Ответ на: комментарий от i_gnatenko_brain

Зато «сделано чучоными». Это как «ынтерпрайз», только еще более злокачественный: в ынтерпрайзе глумятся над здравым смыслом посредством обычных языков программирования а чучоные доводят глумление до абсурда, запиливая еще и недоязыки типа хачкеля.

i36_zubov ()
Ответ на: комментарий от i_gnatenko_brain

если софт не собирается с последними версиями билиотек (ну или хотя бы почти последими), то этот софт какой-то не очень.

Оценивать качество софта по расписанию релизов используемых библиотек - это пять. Нет, это даже больше.

tailgunner ★★★★★ ()
Ответ на: комментарий от tailgunner

ну вот скажи, если бы код нужно было компилировать только при помощи gcc 4.5, ты бы не усомнился в качестве софта? и да, я вообще-то говорил не про качество.

использовать LLVM 3.4 в 2016 году... кхм.

i_gnatenko_brain ★★★★ ()

А самая жесть это их бенчмарки: на gpu в 4-20 раз быстрее, говорите? Что ж там за говнокод генерится для gpu

i36_zubov ()
Ответ на: комментарий от khrundel

Зачем нужна точка с запятой в языке без требования её ставить в конце последней инструкции строки?

Для кодогенерации и обфускации. Ну, и ещё всяких конференций, когда надо по-быстрому спастить пару строк, чтоб заработало, и не сношаться с форматированием.

Esper ()
Ответ на: комментарий от i_gnatenko_brain

использовать LLVM 3.4 в 2016 году... кхм.

Ты, конечно, много компиляторов разработал на базе LLVM и хорошо понимаешь какой это объем работ --- портировать, скажем, с 3.4 на 3.6 что-то сильно завязанное на API векторизатора, например.

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

anonymous ()
Ответ на: комментарий от i_gnatenko_brain

если софт не собирается с последними версиями билиотек (ну или хотя бы почти последими), то этот софт какой-то не очень.

Это утверждение не отвечает на вопрос о том, умеешь ли ты читать (и, кстати, искать прежде чем репортить очередной дубликат).

anonymous ()
Ответ на: комментарий от i_gnatenko_brain

ну вот скажи, если бы код нужно было компилировать только при помощи gcc 4.5, ты бы не усомнился в качестве софта?

Аналогия в принципе неверна. Они (точнее, даже не они) использовали LLVM как библиотеку, и авторы LLVM поломали интерфейс этой библиотеки. Претензии к LLVM выдвинуть не хочешь?

использовать LLVM 3.4 в 2016 году... кхм.

Тебе ведь ответили, в чем дело.

tailgunner ★★★★★ ()
Последнее исправление: tailgunner (всего исправлений: 1)

Scheme им стал не нужен? Он им прискучился.

anonymous ()
Ответ на: комментарий от tailgunner

если софт не собирается с последними версиями билиотек (ну или хотя бы почти последими), то этот софт какой-то не очень.

Оценивать качество софта по расписанию релизов используемых библиотек - это пять. Нет, это даже больше.

Использовать последнюю версию можно назвать блажью. Но использовать версию, которая является устаревшей и не поддерживается апстримом уже как более 2-х лет, вот это мне кажется проблематичным. Насколько я вижу, у llvm нет культуры поддержки нескольких стабильных веток (только предпоследний релиз получает пару багфиксов). Может, потому что релизы выходят не слишком часто и можно успеть адаптироваться.

gag ★★★★★ ()
Ответ на: комментарий от Venediktov

Где можно устроится писать на нем в статусе джуна?

Нет, сначала ты должен мыть полы и носить кофе для джуниоров.

anonymous ()

Язык пущай будет, но {} % для комментариев — классическое «вырвиглазное ненужно».

quickquest ★★★★★ ()
Ответ на: комментарий от hotpil

Ну в целом скорее из-за мерзких end, но сходство есть, да.

P.S.: Хотя нет, ты прав - посмотрел структуру и индексацию, сразу аж зубы заскрипели. Имхо, если авторы вдохновлялись матлабом (привет, Julia), то ЯП можно сразу закапывать.

ptarh ★★★★★ ()
Последнее исправление: ptarh (всего исправлений: 1)

скорее всего не взлетит ибо есть julia и уже куча библиотек под нее

anonymous ()

0.6 LibertyBSD (LibertyBSD — эталон ненужности, и единица измерения ненужности).

gnomosek ()

Если ты против сабжа, то ты антиsimit, всё продумано.

gnomosek ()
Ответ на: комментарий от intelfx

Мозг хорош тем, что вкусен. А так - биомасса.

kedr ()
Ответ на: комментарий от buddhist

Мягко обминули евреев в Википедии.

anonymous ()

Таки, если оно так легко на видеокарте.. Это значит, что можно написать ОС и запустить на видеокарте? Пусть она и не так оптимально.

anonymous ()
Ответ на: комментарий от anonymous

если ты занимаешься моделированием физических систем, писанины на порядок меньше, а производительность за счет оптимизаций больше

ну давай, расскажи нам про эти офигительные оптимизации.

i36_zubov ()
Ответ на: комментарий от anonymous

потому что их нет. есть только наглое кококо, аналогичное жаберскому про то как их jvm щас всё заинлайнит, и тормозное говно прекратит тормозить.

i36_zubov ()
func move(p : Point)
  p.x(0) += 1.0;  % p.x += [1.0, 0.0, 0.0];
end

It can be applied to the points set using an apply:

apply move to points;

Зачем так делать? ((((((((

anonymous ()
Ответ на: комментарий от anonymous

Ещё придурок по ссылке не ходил, а прочитал криво написанную новость

anonymous ()
Ответ на: комментарий от zaban

Ну чёрт его знает: может и выгорит что. Меня вот лично напрягает перескакивать с питона на С, хотелось бы что-то более универсальное.

ZERG ★★★★★ ()
Ответ на: комментарий от StReLoK

ок. в данном случае по отдельности... а комсол без матлаба... слабоват.

zaban ()

порог вхождения тысяча шекелей?

splinter ★★★★★ ()
Ответ на: комментарий от ZERG

если маленькие куски (функции) то мне норм,
а если сразу все... то одним языком, но step by step.
какому как удобно тот так и ...

zaban ()

ну а херли им еще делать. Институт всеж, работа такая

anonymous ()
Ответ на: комментарий от Stalin

не коммерческие

Будто что-то хорошее.

anonymous ()

Кстати, можно ли считать Java хипстерским языком?

pudding ()
Ответ на: комментарий от i36_zubov

Да ты болезный, ползи в свою пещеру писать дальше оптимальный говнокод для проблем на графах на 77-м ФОРТРАНе!

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.