OberonCore https://forum.oberoncore.ru/ |
|
Издержки оптимизирующих компиляторов https://forum.oberoncore.ru/viewtopic.php?f=26&t=6123 |
Страница 1 из 1 |
Автор: | Илья Ермаков [ Среда, 04 Октябрь, 2017 14:02 ] |
Заголовок сообщения: | Издержки оптимизирующих компиляторов |
https://m.habrahabr.ru/company/infopulse/blog/338812/ "Как может вызваться никогда не вызываемая функция? " И тут же вспоминается сформулированный в День Оберона 2017 принцип от Дмитрия Дагаева: приоритет оценки угроз над возможностями - viewtopic.php?f=57&t=6119 |
Автор: | prospero78 [ Среда, 04 Октябрь, 2017 14:08 ] |
Заголовок сообщения: | Re: Издержки оптимизирующих компиляторов |
Статью читал, от результата кода был в восторге, но особенно порадовал первый комментарий, на счёт Паскаля, и "-34" в карму за комментарий)) И ближайший комментарий про Rust -- "+14". Двойные стандарты есть везде. И в государстве, и в христианстве/исламе/буддизме. И в программировании тоже)) |
Автор: | Artyemov [ Среда, 04 Октябрь, 2017 16:07 ] |
Заголовок сообщения: | Re: Издержки оптимизирующих компиляторов |
Меня восхитила фраза "Давайте посмотрим, как компилятор анализирует данную программу.", почему-то показалось, что где-то будет предложение самим странслировать исходник в код (; ну и коммент "Undefined behavior — как раз то, что позволяет компилировать сишный код в эффективный машинный код." - отлить в граните. |
Автор: | prospero78 [ Среда, 04 Октябрь, 2017 16:42 ] |
Заголовок сообщения: | Re: Издержки оптимизирующих компиляторов |
Цитата: "Undefined behavior — как раз то, что позволяет компилировать сишный код в эффективный машинный код." - отлить в граните. Как я это не процитировал первым?)) |
Автор: | Kemet [ Среда, 04 Октябрь, 2017 17:15 ] |
Заголовок сообщения: | Re: Издержки оптимизирующих компиляторов |
Предложенные в статье примеры шедевральны. Потому что они дефективны в своей основе. Чего на компилятор пенять? Там поди и варнинги были. |
Автор: | PSV100 [ Среда, 04 Октябрь, 2017 18:55 ] |
Заголовок сообщения: | Re: Издержки оптимизирующих компиляторов |
Примеры, конечно же, искусственные, но ведь на основе реально пойманных граблей. Вот ещё подобные разборки с "форматированием винчестера": http://rsdn.org/forum/cpp/5654034.all |
Автор: | Comdiv [ Среда, 04 Октябрь, 2017 19:00 ] |
Заголовок сообщения: | Re: Издержки оптимизирующих компиляторов |
Я это называю проблемой восприятия маленьких примеров. Их создают простыми и понятными для того, чтобы очевидным способом показать проблему, хотя, конечно же, такое может проявиться и в менее очевидном коде, выполняющемся в значимой программе. Но эта же очевидность порождает у части людей желание заявить следующее: Kemet писал(а): они дефективны в своей основе. Чего на компилятор пенять?
|
Автор: | Comdiv [ Среда, 04 Октябрь, 2017 19:04 ] |
Заголовок сообщения: | Re: Издержки оптимизирующих компиляторов |
Artyemov писал(а): ну и коммент "Undefined behavior — как раз то, что позволяет компилировать сишный код в эффективный машинный код." - отлить в граните. В Обероне тоже есть неопределённое поведение. Отчасти потому, что так проще, отчасти потому, что так эффективнее. Исправлять есть что, особо радоваться не стоит.
|
Автор: | Kemet [ Четверг, 05 Октябрь, 2017 06:59 ] |
Заголовок сообщения: | Re: Издержки оптимизирующих компиляторов |
Comdiv писал(а): Я это называю проблемой восприятия маленьких примеров. Их создают простыми и понятными для того, чтобы очевидным способом показать проблему, хотя, конечно же, такое может проявиться и в менее очевидном коде, выполняющемся в значимой программе. Но эта же очевидность порождает у части людей желание заявить следующее: Здесь всё не просто, а очень просто. Когда кто-то накосячит, а потом ищет на кого бы это свалить. И сваливают. На компилятор, на подчиненных, на людей, живших лет так 50-5000... назад. В Оберонах ( и в языках и в компиляторах ) столько косяков, что цепляться к другим просто моветон.
Kemet писал(а): они дефективны в своей основе. Чего на компилятор пенять? |
Автор: | Comdiv [ Четверг, 05 Октябрь, 2017 12:17 ] |
Заголовок сообщения: | Re: Издержки оптимизирующих компиляторов |
Kemet писал(а): Здесь всё не просто, а очень просто. Когда кто-то накосячит Оказывается, люди совершают ошибки. Оказывается, некоторые люди хотели бы, чтобы компилятор сообщил бы об ошибке или, по крайней мере, не усугублял её. Но это неправильное поведение, правильное - это быть придатком инструмента и обвинять себя за то, что ты недостаточен хорош для него.А статья на хабре как раз больше похожа не на обвинение компилятора в непригодности, а на обзор в стиле - посмотрите какая забавная особенность. habrahabr писал(а): Компилятор (в данном случае — Clang) вправе сделать это.
|
Автор: | prospero78 [ Четверг, 05 Октябрь, 2017 12:27 ] |
Заголовок сообщения: | Re: Издержки оптимизирующих компиляторов |
Kemet писал(а): В Оберонах ( и в языках и в компиляторах ) столько косяков, что цепляться к другим просто моветон. Видимо,я что-то делаю не так со своим русифицированным Обероном. Кемет, примерчик в студию (аналог примера в топике из хабра). |
Автор: | Kemet [ Четверг, 05 Октябрь, 2017 13:57 ] |
Заголовок сообщения: | Re: Издержки оптимизирующих компиляторов |
Comdiv писал(а): Оказывается, люди совершают ошибки. Оказывается, некоторые люди хотели бы, чтобы компилятор сообщил бы об ошибке или, по крайней мере, не усугублял её. Но это неправильное поведение, правильное - это быть придатком инструмента и обвинять себя за то, что ты недостаточен хорош для него. А статья на хабре как раз больше похожа не на обвинение компилятора в непригодности, а на обзор в стиле - посмотрите какая забавная особенность. habrahabr писал(а): Компилятор (в данном случае — Clang) вправе сделать это. Конечно совершают. Человеческий фактор он везде. И в программировании. И при использовании С++, и при использовании Оберонов. Нормальные люди не истерики устраивают, а багрепорты пишут, обосновывая своё видение проблемы. То, что компилятор был вправе так поступить, это просто констатация факто такого поведения. Является ли такое поведение штатным - нужно обсуждать не здесь, а с разработчиками. Это, в любом случае, не означает, что компилятор должен думать за программиста, это не означает, что косяки программиста оправдывают косяки разработчиков компилятора, но и наоборот, косяки компилятора не оправдывают наличие дурного кода. Ну отдельные русскоязычные любители Оберона, по ощущениям и есть придатки инструмента, и на любые неприятные вопросы, касающиеся Оберона они и отвечают в духе "что ты недостаточен хорош для него". Об этом, в общем-то и речь. Чего возбуждаться? |
Автор: | prospero78 [ Четверг, 05 Октябрь, 2017 14:38 ] |
Заголовок сообщения: | Re: Издержки оптимизирующих компиляторов |
Компилятор, как результат человеческого труда -- неизбежно содержит ошибки. Компилятор, как инструмент -- не должен гнать брак. И, как инструмент -- должен быть безопасным. Если есть желание ногой держать гвозди, а зубами молоток и забивать гвозди молотком в руки, да нет проблем. Люблю приводить диалог из "Матрицы": ---------------------------------------------- Советник: Нео, что такое контроль? Нео: Это когда, мы можем отключить машины. С.: Да. Верно. Но тогда нам придётся думать как добывать воздух, тепло и свет. Н.: Т.е. мы не можем отключить машины? Они контролируют нас? С.: Что может утверждать человек в моём возрасте? Н.: Поэтому в Совете нет молодых людей? С.: В точку! Кемет, похоже, жить ещё будет долго)) Человек, чувства которого возбудить невозможно есть труп. Чтобы понять, на сколько хорош инструмент по сравнению с другим -- надо другим инструментом до отвращения набить себе синяков. По сравнению с хорошим. И если этот хороший инструмент справляется со своей работой, и не нужно привлекать другой -- зачем? Это не придаток. Это симбиоз. (Нео: "Я понял, как остановить войну. Мы и машины нужны друг другу" -- конец диалога) |
Автор: | Comdiv [ Четверг, 05 Октябрь, 2017 15:07 ] |
Заголовок сообщения: | Re: Издержки оптимизирующих компиляторов |
Kemet писал(а): Чего возбуждаться? А где Вы это увидели? Судя по Вашему 1-му сообщению, Вы достаточно остро отреагировали на сообщение Ильи. Но ведь оно совершенно отстранённое. Так где же Вы увидели возбуждение?
|
Автор: | Trurl [ Четверг, 05 Октябрь, 2017 15:14 ] |
Заголовок сообщения: | Re: Издержки оптимизирующих компиляторов |
Kemet писал(а): То, что компилятор был вправе так поступить, это просто констатация факто такого поведения. Является ли такое поведение штатным - нужно обсуждать не здесь, а с разработчиками. Так уже обсудили. И выяснили, что все в рамках действующего законодательства. Тут интересно, что в обоих случаях компилятор делает далекоидущие выводы исходя из того, что программисты ошибок не совершают. |
Автор: | Kemet [ Четверг, 05 Октябрь, 2017 16:48 ] |
Заголовок сообщения: | Re: Издержки оптимизирующих компиляторов |
Trurl писал(а): Так уже обсудили. Кто с кем обсудил?
|
Автор: | Trurl [ Пятница, 06 Октябрь, 2017 08:25 ] |
Заголовок сообщения: | Re: Издержки оптимизирующих компиляторов |
Те, кто обнаружил грабельки, с теми, кто их заботливо разложил. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |