LINUX.ORG.RU
ФорумTalks

Компиляция и преждевременная оптимизация


0

1

А никто не задумывался о том, что компиляция является примером преждевременной оптимизации? Например код:

a=1+2
do 3 times a
компилятор все равно соптимизирует. Конечно, время компиляции часто неважно, но если вспомнить языки высокого уровня, такие как JS, LISP, Python, Perl, это же определенно не так.Там ведь вполне может быть цикл компиляция, интерпретация, снова компиляция и тд. А тут уже пользователь ЯП терпеливо ждет.

Перемещено true_admin из development



Последнее исправление: phill (всего исправлений: 1)
Ответ на: комментарий от phill

Лень было искать. А что ты утверждал? Что анон не так понял в твоих словах?

да он вообще какой-то бред написал. Давай ищи оригинал.

На кой ляд компилятору создавать код, который множит 2 на 2?

Чтобы не вычислять его в цикле на каждой итерации, очевидно.

компилятор по любому вынесет 2*2 из цикла. Хоть в виде 2*2, хоть в виде 4.

emulek
()
Ответ на: комментарий от emulek

компилятор по любому вынесет 2*2 из цикла. Хоть в виде 2*2, хоть в виде 4.

Да, вынесет даже если это не нужно. А анализ занимает время.

phill
() автор топика
Ответ на: комментарий от phill

компилятор по любому вынесет 2*2 из цикла. Хоть в виде 2*2, хоть в виде 4.

Да, вынесет даже если это не нужно. А анализ занимает время.

не понимаю. Твои предложения?

И да, если ты не знал, то 123, это для компилятора 1*10²+2*10¹+3*10⁰. Т.ч. ему по любому считать надо. Это уж если опускаться ниже плинтуса. Т.ч. твоё предложение вставлять 1+2 в код не считая, компиляцию не ускорит.

emulek
()
Ответ на: комментарий от emulek

Когда евал евалит, он из одного решения делает другое, и опять его в себя засовывает. Как змея, которая жрёт свой хвост.

ну там наша с ним ветка началась с вот этого твоего утверждения

Когда евал евалит, он из одного решения делает другое, и опять его в себя засовывает. Как змея, которая жрёт свой хвост.

Я вообще не понял о чем ты говоришь, если честно. То что программист может такое написать, типо, рекурсивный eval, который эвалит результат своего вычисления, не означает, что эвал так работает сам по себе. Это и в рекурсивном вызове функции также можно сделать.

А оригинал хз где искать, это обобщение было, видимо.

phill
() автор топика
Ответ на: комментарий от emulek

компиляцию не ускорит

А я что про ускорение компиляции говорю? Я про то, что выкинуть ее вообще из высокоуровневых ЯП.

phill
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.