Size: a a a

Compiler Development

2020 May 18

p

polunin.ai in Compiler Development
Да
источник

M

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

p

polunin.ai in Compiler Development
MaxGraey
Ну вот, представьте что весь алгоритм сортировки и взятия первого элемента постоен на генераторах а не циклах и рекурсии. То есть внешняя функция-генератор может всегда сказать, так, стоп мы уже получили то, что хотели и прерываем дальнейшую работу по цепочке
Для этого нужно чтобы компилятор соптимизировал код вот так. А я повторюсь, сомневаюсь что это произойдет. Нужно будет как-то вечерком посмотреть какой там асм сгенерирует компилятор
источник

λ

λoλdog in Compiler Development
polunin.ai
Для этого нужно чтобы компилятор соптимизировал код вот так. А я повторюсь, сомневаюсь что это произойдет. Нужно будет как-то вечерком посмотреть какой там асм сгенерирует компилятор
Я дал вам ссылку на книгу
источник

λ

λoλdog in Compiler Development
Компилятор вполне все это делает
источник

E

Eugene in Compiler Development
polunin.ai
Я же написал, если там честно сортируется, то никак меньше O(n*logn) не выйдет
не нужно полностью сортировать коллекцию, если она не нужна полностью отсортированная
источник

E

Eugene in Compiler Development
polunin.ai
Я же написал, если там честно сортируется, то никак меньше O(n*logn) не выйдет
источник

M

MaxGraey in Compiler Development
Eugene
не нужно полностью сортировать коллекцию, если она не нужна полностью отсортированная
В хаскеле есть maximum/minimum и как я понял использовагние max = head . sort вместо них - это такой панегирик в честь ленивости и исключительности хаскеля)
источник

E

Eugene in Compiler Development
MaxGraey
В хаскеле есть maximum/minimum и как я понял использовагние max = head . sort вместо них - это такой панегирик в честь ленивости и исключительности хаскеля)
источник

EM

Evgenii Moiseenko in Compiler Development
polunin.ai
Для этого нужно чтобы компилятор соптимизировал код вот так. А я повторюсь, сомневаюсь что это произойдет. Нужно будет как-то вечерком посмотреть какой там асм сгенерирует компилятор
Хаскель ленивый язык, там подобные фишки из коробки работают, никакой особой компиляторной магии нет. Можно и в императивном языке этого добиться, используя генераторы или thunk-и.
источник

M

MaxGraey in Compiler Development
Мне кажется вам хаскелистам пора вводить термин lazy-friendly алгоритмов по аналогии с cache-friendly) Потому что не скаждым алгоритмом сортировки такое можно провернуть.
источник

АУ

Анна Удовиченко... in Compiler Development
polunin.ai
Нихрена не понял, но очень интересно. Повторяю.
Если честно сортировать, потом брать первый элемент то время будет минимум O(n*logn).
Есть классная книжка - Окасаки "Чисто функциональные структуры данных"... Там про оценку сложности алгоритмов из параллельной вселенной 🙃
источник

AT

Alexander Tchitchigi... in Compiler Development
polunin.ai
Не вижу разницы. Просто ещё один метод снаружи добавили. В том что компилятор каким-то необычным образом догадается, что здесь поиск минимального элемента и превратит это в перебор по списку сомневаюсь.
источник

DP

Dmitry Ponyatov in Compiler Development
Как думаете, для студентов в курсе реализации игрушечного языка какой фреймворк больше подходит — LLVM или Graal?
не спецкурс, желательна минимальная сложность, но при этом хотелось бы на выходе иметь хоть и калькулятор но полноценный
источник

AT

Alexander Tchitchigi... in Compiler Development
Dmitry Ponyatov
Как думаете, для студентов в курсе реализации игрушечного языка какой фреймворк больше подходит — LLVM или Graal?
не спецкурс, желательна минимальная сложность, но при этом хотелось бы на выходе иметь хоть и калькулятор но полноценный
Тогда уж не Graal VM, а Truffle — тупо пишем интерпретатор (tree-walking), получаем компилятор бесплатно.
источник

AD

Artyom Drozdov in Compiler Development
polunin.ai
Давно доказано что сортировка массива не может иметь время меньше чем O(n*logn)
Radix sort же
источник

IJ

Igor 🐱 Jirkov in Compiler Development
Artyom Drozdov
Radix sort же
*Сортировка массива про элементы которого ничего не известно
источник

AD

Artyom Drozdov in Compiler Development
Igor 🐱 Jirkov
*Сортировка массива про элементы которого ничего не известно
Важное уточнение)
источник

DS

Doge Shibu in Compiler Development
polunin.ai
Давно доказано что сортировка массива не может иметь время меньше чем O(n*logn)
Radix sort с его O(n) к вашим услугам, хотя, это конечно, не алгоритм сортировки общего плана.
источник

DS

Doge Shibu in Compiler Development
А, тут уже без меня упомянули
источник