Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Регистрация Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Блоги > Идиотизмы

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

Идиотизмы: !true не всегда false

Запись от BlooDHounD размещена 23.04.2010 в 16:47

мы имеем очень странный компилятор ...
в некоторых случаях компилятор оптимизирует написанный нами код. например он вырезает не исполняемые блоки. такие как, код написанный после return, или блоки условий с заведомым false:
Код AS3:
if ( false ) {
	// ...
}
этот код вырежется, так как компилятор видит, что этот код не исполняется. но это происходит не всегда. конструкции посложнее он не трогает.
Код AS3:
if ( !true ) {
	// ...
}
а этот код вкомпилится =) ибо условие усложнилось на столько, что компилятор не может понять, что это выражение будет всегда false =)
Всего комментариев 10

Комментарии

Старый 23.04.2010 16:57 iNils вне форума
iNils
 
Аватар для iNils
Для того чтобы это понять, нужно сначала вычислить значение условие. А это уже стадия исполнения кода. Ведь может быть не только !true, а (false || true) && false и тд.
Старый 23.04.2010 17:29 BlooDHounD вне форума
BlooDHounD
 
Аватар для BlooDHounD
неа =) для АС2 компилятор, например, оптимизировал математические выражения. с булевыми значениями ничего сложно не вижу. может быть даже проще.
Старый 23.04.2010 17:37 iNils вне форума
iNils
 
Аватар для iNils
Не будем трогать as2. Там и (2 + 3) при компиляции становились 5, в ас3 этого нет
Старый 23.04.2010 18:09 BlooDHounD вне форума
BlooDHounD
 
Аватар для BlooDHounD
ну? так что не так? идиотизм же =)
Старый 23.04.2010 18:32 iNils вне форума
iNils
 
Аватар для iNils
Либо да, либо мы опять чего-то не знаем
Старый 23.04.2010 20:29 wvxvw вне форума
wvxvw
 
Аватар для wvxvw
Технически адобовский компилятор должен уметь это делать, как-то же он делает евал для констант... Просто он и так медленно работает, зачем его еще нагружать?

А вообще, если по чесному, то он бы еще мог проверять, были ли инициализированы переменные перед использованием, и что все пути возвращают значение... и много чего еще... Но просто в таком случае компиляции можно просто не дождаться
Старый 05.05.2010 15:11 Gaen вне форума
Gaen
 
Аватар для Gaen
Можно было сделать галку Super Strict Mode, которую особо нетерпеливые отключали бы
Старый 05.05.2010 15:30 BlooDHounD вне форума
BlooDHounD
 
Аватар для BlooDHounD
GAIKER, strict mode тут каким боком? =)
Старый 05.05.2010 20:30 Gaen вне форума
Gaen
 
Аватар для Gaen
BlooDHounD,
Цитата:
проверять, были ли инициализированы переменные перед использованием, и что все пути возвращают значение... и много чего еще...
Старый 05.05.2010 21:28 BlooDHounD вне форума
BlooDHounD
 
Аватар для BlooDHounD
GAIKER, мдя ... это должна быть автоматическая оптимизация, а не выдавания "Super" ошибки.
 

 


Часовой пояс GMT +4, время: 17:11.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.