Size: a a a

Compiler Development

2021 May 02

B

Brenoritvrezorkre in Compiler Development
(там, где это записывается, ... не тот же самый — к нему уже будет задана интерпретация, обозначенная ЯП, т.е. это пример омонимии)
источник
2021 May 03

AT

Alexander Tchitchigi... in Compiler Development
Как "развернуть итератор" (reverse) без вычисления всех его элементов (вычисляя только spine)?
источник

AT

Alexander Tchitchigi... in Compiler Development
Вы можете смотреть на это как на вопрос производительности/оптимизации, но можно смотреть как на вопрос "отзывчивости" — быстро показать пользователю "общий вид", а потом вычислять только то, что он попросит против "сначала всё вычислить, а потом показывать что нужно" — либо как на вопрос "степени извращённости" кода при заданной производительности. Потому что прямолинейная реализация + reverse + ленивость даёт нужный результат, но того же результата можно добиться, "вывернув алгоритм наизнанку" и добавив "инфраструктурного кода" вокруг.
источник

AT

Alexander Tchitchigi... in Compiler Development
The compiler will optimize that away
Article, Comments
источник

M

MaxGraey in Compiler Development
Классический пример производительности AoS vs SoA. Но самый быстрый будет все же гибридный подход Array of Structures of Arrays (AoSoA) или Tiled Array of Structs. В общем, тема не до конца раскрыта
источник

VS

Victor Shamparov in Compiler Development
Имхо скорость каждого из вариантов AoS vs SoA vs AoSoA сильно зависит от паттерна использования и потому нужно выбирать конкретную реализацию в зависимости от него. И от характеристик кэша, конечно.
источник

M

MaxGraey in Compiler Development
И от ширины SIMD регистра в случае с AoSoA
источник

VS

Victor Shamparov in Compiler Development
Конечно.
источник

AT

Alexander Tchitchigi... in Compiler Development
Ещё забавно, что автор пишет "Object-oriented" и под этой вывеской валит тупо процедурный код. 😂
источник

EL

Evgeny Link in Compiler Development
Так это, всё что не в point free функциональщине — всё ООП :)
источник

DP

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

DP

Dmitry Popov in Compiler Development
ranges в D это такие умные "итераторы", с ними и не такое можно
источник

Constantine ʕ◔ϖ◔ʔ🦀... in Compiler Development
А что делает !f после map🤔
источник

DP

Dmitry Popov in Compiler Development
Это так f передается в map.
источник

e

e in Compiler Development
map(iota(1000000), f)
источник

Constantine ʕ◔ϖ◔ʔ🦀... in Compiler Development
Спасибо, понял.
источник

AT

Alexander Tchitchigi... in Compiler Development
Списки в Haskell — это такие умные "итераторы", с ними и не такое можно.

Об чём, собственно, и речь. 😊
источник

DP

Dmitry Popov in Compiler Development
Аналогичный код на хаскельных списках развернет в памяти список на миллион санков. А тут нет, никаких лишних аллокаций. С другой стороны, ренджи не делают мемоизации, а настоящая ленивость делает. Везде свои trade offs. И ренджи лишь про последовательности, а хаскельная ленивость для произвольных структур данных работает...
источник

Т8

Т-34 85 in Compiler Development
У D отключаемый GC, C-like syntax, мощные compile time функции и многое другое!
источник

AT

Alexander Tchitchigi... in Compiler Development
Спасибо, что пересказали Википедию. Что же Вы хотели этим сообщить? 😉
источник