Могут ли оптимизации компилятора, такие как ghc -O2, изменить порядок (время или память) программы?

У меня такое ощущение, что ответ - да, и это не ограничивается Haskell. Например, оптимизация хвостового вызова изменяет требования к памяти с O (n) на O (l), не так ли?

Моя точная проблема: в контексте Haskell, что, как ожидается, нужно понимать при оптимизации компилятора при рассуждении о производительности и размере программы?

В Scheme вы можете принять некоторые оптимизации как должное, например, TCO, учитывая, что вы используете интерпретатор / компилятор, который соответствует спецификации.

9
задан gawi 3 October 2011 в 13:42
поделиться