Size: a a a

Compiler Development

2020 February 01

DP

Dmitry Ponyatov in Compiler Development
Andrei Kurosh
Ну вот я примерно об этом и говорю. Решение задачи с помощью создания нового языка требует изначального вложения огромных усилий. Чтобы они в долгосрочной перспективе окупились, это должна быть чертовски широкая область с реальными проблемами, а таких осталось мало. Да и кроме того, зачастую можно гораздо проще решить вопрос не языком, а библиотекой с набором методов/функций, формирующих некий embedded DSL
фронт для LLVM для приятного для самого разработчика синтаксиса, решающего наоборот _узкую_ задачу, или транслятор в С++/Java  (типа собственного языка для GUI + Web) — задача уровня приличной курсовой для ИТ специальности, максимум — глава с "мясом" для дипломной работы
источник

AK

Andrei Kurosh in Compiler Development
Dmitry Ponyatov
фронт для LLVM для приятного для самого разработчика синтаксиса, решающего наоборот _узкую_ задачу, или транслятор в С++/Java  (типа собственного языка для GUI + Web) — задача уровня приличной курсовой для ИТ специальности, максимум — глава с "мясом" для дипломной работы
Легко ли на LLVM ложатся динамические языки? И позволяет ли фронт для LLVM полу/автоматически сделать поддержку этого языка в редакторе?
источник

YS

Yaroslav Schekin in Compiler Development
Dmitry Ponyatov
как пример, 1С — как язык и платформа жуткое буээ, но оно на коне и задавило даже Java, потому что эффективно покрывает свою нишу
В одной отдельно взятой стране, и то спорно. В других про неё практически никто не знает.
А вот некоторые другие известные платформы для той же цели как раз используют Java (либо Java-подобные языки).
Just FYI.
источник

DP

Dmitry Ponyatov in Compiler Development
Yaroslav Schekin
В одной отдельно взятой стране, и то спорно. В других про неё практически никто не знает.
А вот некоторые другие известные платформы для той же цели как раз используют Java (либо Java-подобные языки).
Just FYI.
ну вот компашка имеет свою банку с икрой на разработке legacy-транслятора:
источник

DP

Dmitry Ponyatov in Compiler Development
источник

YS

Yaroslav Schekin in Compiler Development
Dmitry Ponyatov
ну вот компашка имеет свою банку с икрой на разработке legacy-транслятора:
Подобных "компашек" немало, наверное, если по тёмным углам поискать. ;)
Но похоже, что на практике всё почти всегда решается так, как пишет @impworks
источник

МБ

Михаил Бахтерев in Compiler Development
Andrei Kurosh
Хорошо, в каком контексте изобретение нового ДТ-языка оправдано?
Ну. Вот физики написали себе Julia. Очень ей довольны. Думаю, если целевая аудитория загружена другой математикой, то им заходят динамические языки, потому что не надо вкладывать существенные усилия ещё и в сложную теорию языка (и не интересно, и времени нет). Ещё подтверждения гипотезы: математики написали себе Sage на Python, у числовых теоретиков популярна Scheme, датасаейнтисты сидят в Python, финжиры используют APL.
источник

МБ

Михаил Бахтерев in Compiler Development
IMHO, имеет смысл сделать что-то типа immutable scheme (js, python, etc ...), потому что мутабельность и многопоточность ограничивают возможности оптимизации и анализа кода. В эту сторну вполне можно развивать современную динамическую мысль.
источник

SM

Sailor Moon in Compiler Development
динамического хаскеля не хватает :(
источник

МБ

Михаил Бахтерев in Compiler Development
Sailor Moon
динамического хаскеля не хватает :(
Имеется в виду чистая функциональность вместе с IO?
источник

SM

Sailor Moon in Compiler Development
Михаил Бахтерев
Имеется в виду чистая функциональность вместе с IO?
dynamic + lazy + immutable, а IO можно пер модул ограничивать, если надо
источник

МБ

Михаил Бахтерев in Compiler Development
Sailor Moon
dynamic + lazy + immutable, а IO можно пер модул ограничивать, если надо
Если lazy, без IO не обойдётся. Но так-то тоже вариант
источник

МБ

Михаил Бахтерев in Compiler Development
источник

SM

Sailor Moon in Compiler Development
но тут же руками надо delay i force делать? а хочется по дефолту
источник

SM

Sailor Moon in Compiler Development
как в #racket/lazy
источник

AV

Alexander Vershilov in Compiler Development
Sailor Moon
dynamic + lazy + immutable, а IO можно пер модул ограничивать, если надо
На хаскеле можно писать так, в чем проблема то?
источник

AV

Alexander Vershilov in Compiler Development
Зависти библиотеку с universe типом, как в динамических ЯП и вперёд. Делается ну совсем не сложно
источник

SM

Sailor Moon in Compiler Development
Alexander Vershilov
Зависти библиотеку с universe типом, как в динамических ЯП и вперёд. Делается ну совсем не сложно
а можно пример?
источник

AV

Alexander Vershilov in Compiler Development
Вспомнить бы блог пост в тему, был неплохой, где переизобретался общий тип из схемы
источник

AV

Alexander Vershilov in Compiler Development
Но в целом идея сделать data с тегами и оптику для доступа к полям, после этого можно все функции обернуть в динамические.  Если понимать почему динамические языки это untyped, то алгоритм понятен. Но могу вечером и пост поискать и расписать подробнее
источник