Size: a a a

Compiler Development

2020 February 02

BD

Berkus Decker in Compiler Development
Constantine
не знаю как устроен мадболге, где можно поизучать, погуглил быстренько, но ненашёл
источник

YS

Yuriy Syrovetskiy in Compiler Development
Alexander Tchitchigin
Надо пристально смотреть на реализацию, но insert может стать мутабельным, если мапа используется линейно.
ну, это очевидные общие слова. я надеялся увидеть про подмену реализаций через rewrite rules, например
источник

AT

Alexander Tchitchigin in Compiler Development
Yuriy Syrovetskiy
ну, это очевидные общие слова. я надеялся увидеть про подмену реализаций через rewrite rules, например
Мы же линейные типы обсуждали - при чём тут rewrite rules?
источник

YS

Yuriy Syrovetskiy in Compiler Development
Alexander Tchitchigin
Мы же линейные типы обсуждали - при чём тут rewrite rules?
переписывать иммутабельный Map на мутабельный Map в случае линейности
источник

C

Constantine in Compiler Development
спасиб, но хочу уточнить, что интерпретатор брайнфака на препроцессорах си не моя работа
источник

YS

Yuriy Syrovetskiy in Compiler Development
Yuriy Syrovetskiy
переписывать иммутабельный Map на мутабельный Map в случае линейности
без переписывания пользовательского кода
источник

BD

Berkus Decker in Compiler Development
Constantine
спасиб, но хочу уточнить, что интерпретатор брайнфака на препроцессорах си не моя работа
я понимаю, я про то, что написать хоть что-нибудь на малболге - довольно сложная задача, даже для генераторов
источник

YS

Yuriy Syrovetskiy in Compiler Development
Alexander Tchitchigin
Мы же линейные типы обсуждали - при чём тут rewrite rules?
мы всё ещё обсуждаем линейные типы. а точнее, вот этот тезис: https://t.me/CompilerDev/54653
источник

AT

Alexander Tchitchigin in Compiler Development
Yuriy Syrovetskiy
переписывать иммутабельный Map на мутабельный Map в случае линейности
У rewrite rules в Haskell нет доступа к информации о типах и, соответственно, линейности. Поэтому сначала переписывание, а уже потом линейность в компиляторе.
источник

λ

λ <Bogdanella/> λ in Compiler Development
Alexander Tchitchigin
А! Есть всё-таки ещё борцы за инклюзивность кроме меня! 😄

Но я всё равно глубоко убеждён, что читать молча - предпочтительный режим, особенно, когда речь идёт о чём-то вне твоей сферы знаний. Даже не пытайтесь меня переубедить! 😄
ого, какое высокомерие )
источник

AT

Alexander Tchitchigin in Compiler Development
Наверное, в Idris 2 со всяким elaborator reflection может быть так как ты хочешь.
источник

AT

Alexander Tchitchigin in Compiler Development
λ λ
ого, какое высокомерие )
Это Вы просто меня пока ещё плохо знаете! 😂
источник

YS

Yuriy Syrovetskiy in Compiler Development
Alexander Tchitchigin
У rewrite rules в Haskell нет доступа к информации о типах и, соответственно, линейности. Поэтому сначала переписывание, а уже потом линейность в компиляторе.
ну, значит, не rewrite rules. или не в текущем виде. просто это первое, что приходит в голову, когда я думаю об оптимизации в компиляторе, ведомой библиотекой
источник

λ

λ <Bogdanella/> λ in Compiler Development
Alexander Tchitchigin
Это Вы просто меня пока ещё плохо знаете! 😂
учту 😂
источник

AT

Alexander Tchitchigin in Compiler Development
Хорошо, признаю, что неудачно выразился. Без переписывания кода мало что заработает. Скорее, даже, не то, что хотелось бы. Это вообще если аннотации линейности будут сами выводиться, в чём я сомневаюсь.
источник

AT

Alexander Tchitchigin in Compiler Development
Yuriy Syrovetskiy
ну, значит, не rewrite rules. или не в текущем виде. просто это первое, что приходит в голову, когда я думаю об оптимизации в компиляторе, ведомой библиотекой
Вот "ведомой библиотекой" не будет. Не в обозримом будущем. 😔
источник

YS

Yuriy Syrovetskiy in Compiler Development
Alexander Tchitchigin
Хорошо, признаю, что неудачно выразился. Без переписывания кода мало что заработает. Скорее, даже, не то, что хотелось бы. Это вообще если аннотации линейности будут сами выводиться, в чём я сомневаюсь.
перечитал. это я неправильно тебя истолковал
источник

AT

Alexander Tchitchigin in Compiler Development
Yuriy Syrovetskiy
перечитал. это я неправильно тебя истолковал
Но это значит, что я недостаточно внятно написал. 😊
источник

МБ

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

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

AT

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

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