Дмитрий Радищев (dibr) wrote,
Дмитрий Радищев
dibr

и последний раз об оптимизации

И последний раз об оптимизации (после того, как я немного поигрался в GCC из Cygwin, и убедился, что таки да, значение косинуса при желании может достигать четырёх, ну и так далее).

Оптимисты считают, что роботы могут уничтожить человечество либо в результате явной ошибки, как на КДПВ - а значит достаточно вовремя их обнаруживать, благо реально опасные места обычно известны; либо когда *осознают себя*, и *решат* нас уничтожить - а это явно не скоро.

Я же вижу, что раньше последствия программных ошибок были предсказуемы, потому что компилятор (и компьютер) делали ровно то, что написано (пропустил запятую - космический зонд сошёл с курса и был потерян; неправильно учёл знак географической широты - автопилот перевернул истребитель вверх ногами при пересечении экватора), а очень часто ошибки не замечались годами (потому что их проявления были малозаметны или редки, или потому что на конкретной архитектуре "так получалось" что формальная ошибка фактически давала правильный результат).
Сейчас же ошибка (даже та, которую раньше не заметили бы) - индульгенция компилятору ДЕЛАТЬ ВООБЩЕ ВСЁ ЧТО УГОДНО, СТАНДАРТ РАЗРЕШАЕТ!!!111 (здесь и далее речь про Си). И это "что угодно" может никак не соотноситься со здравым смыслом: косинус таки может быть больше двух (я проверил, у меня сработало), а говорят что какая-то версия GCC при ошибке в коде пыталась запустить игры NetHack, Rogue или Ханойские башни (хорошо хоть при компиляции, а не при работе программы)...

Поэтому, если создатели компиляторов всерьёз не задумаются о том, что заявленное в стандарте Си "если человек ошибся, то МОЖНО ДЕЛАТЬ ЧТО УГОДНО" должно иметь какие-то пределы, то человечество может быть уничтожено просто потому, что ты промахнулся мимо кнопки и поделил на ноль на калькуляторе. Потому что по стандарту, В ЭТОМ СЛУЧАЕ - МОЖНО ВСЁ!

Subscribe
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 16 comments