gns_ua: (Default)
gns_ua ([personal profile] gns_ua) wrote2011-09-07 05:11 pm

(no subject)

то что ты сейчас пытаешься сделать (использовать ассемблер в программах на Delphi) — ошибка. Генетическая. Российская. Всей образовательной системы страны. Таких преподов надо увольнять сразу же. Если выжигать эту дурь из мозгов каленым железом не получается. Правильно им копейки платят. Они это заслужили.

http://lurkmore.ru/Pascal#.D0.9F.D1.80.D0.B8.D0.BC.D0.B5.D1.80.D1.8B_.D0.9F.D0.A0.D0.90.D0.92.D0.94.D0.AB_.D0.BF.D1.80.D0.BE_Delphi

А я говорил!

[identity profile] v-l-a-d.livejournal.com 2011-09-07 09:17 pm (UTC)(link)
Под "декомпозировать" я в данном случае подразумеваю "бить на более мелкие функции", если что

[identity profile] st-archer.livejournal.com 2011-09-08 10:34 am (UTC)(link)
Кстати, педивикия нам намекает:

Другие варианты решения этой проблемы — помещение вложенных циклов в отдельную процедуру и использование команды досрочного выхода из процедуры, а в языках с поддержкой исключений — генерацию исключения, обработчик которого располагается за пределами циклов. Однако подобные решения могут снижать производительность, в особенности если этот участок кода вызывается многократно (поскольку и вызовы процедур, и операторы работы с исключениями транслируются далеко не в одну машинную инструкцию).

[identity profile] gns-ua.livejournal.com 2011-09-08 10:46 am (UTC)(link)
Педивикию писали задроты, дрочащие на машинные такты.

> Однако подобные решения могут снижать производительность, в особенности если этот участок кода вызывается многократно (поскольку и вызовы процедур, и операторы работы с исключениями транслируются далеко не в одну машинную инструкцию).

Инлайн!

Или, к примеру, посмотри на хаскел и осознай что вот ЭТО хуйзнаетшо компилируется в вообще хуй проссышь ассемблерную кашу - но работает, сцуко, быстро и решительно.

[identity profile] v-l-a-d.livejournal.com 2011-09-08 01:18 pm (UTC)(link)
Все нормальные компиляторы цэ/цэ-плюс-плюс сами умеют инлайнить функции, когда надо.

А вот throw - да, там вообще какая-то дикая херь в ассемблере генерится. Так что исключения стоит использовать для действительно исключительных ситуаций.

[identity profile] st-archer.livejournal.com 2011-09-08 01:22 pm (UTC)(link)
А ведь, к слову, риальне соблазнительный вариант: к примеру, надо считать число из строки. Лабаешь

String str = "четотам";
try
{
int temp = (int)str;
}
catch(ArgumentException e)

И вуаля.