Size: a a a

Compiler Development

2020 February 02

AT

Alexander Tchitchigin in Compiler Development
У внедрения линейности в Haskell, в отличие от SISAL/SAC, есть одна тонкость - обратная совместимость. Поэтому вопрос не такой простой, как всем бы хотелось. 😞
источник

b⛅

bouncepaw ⛅ in Compiler Development
А что за линейность? Как по-английски?
источник

AT

Alexander Tchitchigin in Compiler Development
Михаил Бахтерев
Есть парочка языков - SISAL и SAC (Single Assignment C), в них эта задача была решена довольно давно. Код пишется функциональный, без явной линейности в типах, но компилятор видит, где массивы (или frame-ы в случае SISAL) последовательно thread-ятся, и в этих местах повторно использует память. SISAL в какие-то времена был эффективнее Фортрана.

И алгоритмы эти, вроде не такие уж сложные, чтобы не иметь возможности закодировать их в системе типов. В Haskell же есть стрелка -o? SPJ рассказывал уже. Проверить, к сожалению, пока не могу
Ну Clean примерно так и работает уже тоже сколько-то десятилетий...
источник

AT

Alexander Tchitchigin in Compiler Development
bouncepaw ⛅
А что за линейность? Как по-английски?
Так и по-английски: linearity. Linear Types ещё.
источник

b⛅

bouncepaw ⛅ in Compiler Development
Alexander Tchitchigin
Так и по-английски: linearity. Linear Types ещё.
Спасибо. Звучит круто
источник

МБ

Михаил Бахтерев in Compiler Development
Alexander Tchitchigin
Ну Clean примерно так и работает уже тоже сколько-то десятилетий...
Clean я пока не осилил. Описание алгоритмов у них названию не соответствует. Хотя, уже надо бы плотно за это взяться.
источник

AT

Alexander Tchitchigin in Compiler Development
bouncepaw ⛅
Спасибо. Звучит круто
Это ещё что! Вы работы Жирара почитайте! 😂
источник

AS

Aλexander Syrotenko in Compiler Development
bouncepaw ⛅
У вас тут такое большое сообщество... И все пишут компиляторы всякие?
Почему бы и нет?
источник

TC

Tom Cauf in Compiler Development
@dponyatov Как у тебя со Smalltalk? Есть светлое будущее у языка и среды?
источник

AV

Alexander Vershilov in Compiler Development
Я думаю, что в haskell нужно будет с линейными типами писать новые либы
источник

AV

Alexander Vershilov in Compiler Development
максимум linearity polymorphic
источник

b⛅

bouncepaw ⛅ in Compiler Development
Ћ плус плус:
https://Ћпп.срб
источник

МБ

Михаил Бахтерев in Compiler Development
Alexander Vershilov
Я думаю, что в haskell нужно будет с линейными типами писать новые либы
Зачем? Линейность в haskell - это утверждение: если результат функции используется 1 раз, то её аргумент используется 1 раз. Если не так, то обычное поведение.
источник

AV

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

DP

Dmitry Ponyatov in Compiler Development
Tom Cauf
@dponyatov Как у тебя со Smalltalk? Есть светлое будущее у языка и среды?
есть, но кормить еще не готов
источник

BD

Berkus Decker in Compiler Development
не знаю, читали или нет, но вот чувак делал микропарсер сабсета Си чисто для автовекторизации — https://leiradel.github.io/2011/05/05/Auto-Vectorization-1.html
источник

E

EgorBo in Compiler Development
> микропарсер сабсета Си чисто для автовекторизации
wut
источник

TC

Tom Cauf in Compiler Development
Dmitry Ponyatov
есть, но кормить еще не готов
Кого кормить? И чем?
источник

BD

Berkus Decker in Compiler Development
EgorBo
> микропарсер сабсета Си чисто для автовекторизации
wut
The main goal is to write a source code translator that will parse input written in our SimpleC language and output the vectorized C code corresponding to that input.
источник

E

EgorBo in Compiler Development
написать простой пример llvm pass для блога чтобы векторизовать цикл? Неее, лучше написать парсер для сасета Си -_-
источник