Size: a a a

Compiler Development

2021 May 02

AT

Alexander Tchitchigi... in Compiler Development
Признаю, проблемы эти встречаются очень редко, так что если Вы их не встречали -- это нормально.
источник

KR

K R in Compiler Development
Я эту фразу явно понимаю неправильно.
источник

AT

Alexander Tchitchigi... in Compiler Development
С другой стороны, я и с ленивостью особых проблем не встречал. 🤷‍♀
источник

KR

K R in Compiler Development
Так именно поэтому и хочется из вас выпытать, какие же именно проблемы.

Возможно они мне встречались, но я их не распознал.
источник

AT

Alexander Tchitchigi... in Compiler Development
Энергичный код форсит задумки ровно в тот момент, когда тебе хотелось бы, чтобы этого не происходило. 😄
Но сделать ты ничего не можешь, потому что нет времени и желания переписывать все библиотеки. 🤷‍♀
источник

KR

K R in Compiler Development
Ну почему хочется, чтобы этого не происходило?
источник

KR

K R in Compiler Development
Мне в 100% случаев хочется для производительности внутри программы или вне её.
источник

AT

Alexander Tchitchigi... in Compiler Development
Первый пример, на который я наткнулся давным давно: мой алгоритм генерировал тяжёлые вычисления в обратном порядке тому, как я бы хотел их вычислять. Переверни стрим -- и всё уже вычислено, ленивость пропала. Ну и толку было пытаться её прикрутить?
источник

KR

K R in Compiler Development
Ну это производительность.

Вы же пишите "тяжёлые вычисления".
источник

EL

Evgeny Link in Compiler Development
Итераторы для этого же есть
источник

KR

K R in Compiler Development
Много чего есть.
источник

EL

Evgeny Link in Compiler Development
Танки, трансдьюсеры?
источник

EL

Evgeny Link in Compiler Development
Что ещё?
источник

к

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

к

кана in Compiler Development
хорошо видно на парсерах каких-нибудь
источник

EL

Evgeny Link in Compiler Development
Наивная эта запись только для адептов хаскеля
источник

к

кана in Compiler Development
у меня обратное мнение, что именно строгое программирование исказило оценку наивности решения
источник

к

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

KR

K R in Compiler Development
То есть, у ленивость есть два положительных момента:

1. Не вычисляем то, что не нужно

2. Переупорядочиваем вычисления - это может привести к локальности (выделяем память, и тут же её отдаём).
источник

к

кана in Compiler Development
но при построении этого неформального утверждения люди просто не задумываются о порядке вычисления и строгости, поэтому это и "наивное" утверждение
источник