OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 28 Март, 2024 18:00

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 17 ] 
Автор Сообщение
СообщениеДобавлено: Среда, 04 Октябрь, 2017 14:02 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
https://m.habrahabr.ru/company/infopulse/blog/338812/
"Как может вызваться никогда не вызываемая функция? "

И тут же вспоминается сформулированный в День Оберона 2017 принцип от Дмитрия Дагаева:
приоритет оценки угроз над возможностями - viewtopic.php?f=57&t=6119


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 04 Октябрь, 2017 14:08 
Аватара пользователя

Зарегистрирован: Воскресенье, 12 Апрель, 2015 18:12
Сообщения: 1134
Откуда: СССР v2.0 rc 1
Статью читал, от результата кода был в восторге, но особенно порадовал первый комментарий, на счёт Паскаля, и "-34" в карму за комментарий))
И ближайший комментарий про Rust -- "+14". Двойные стандарты есть везде. И в государстве, и в христианстве/исламе/буддизме. И в программировании тоже))


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 04 Октябрь, 2017 16:07 

Зарегистрирован: Пятница, 13 Март, 2015 16:40
Сообщения: 597
Меня восхитила фраза "Давайте посмотрим, как компилятор анализирует данную программу.", почему-то показалось, что где-то будет предложение самим странслировать исходник в код (; ну и коммент "Undefined behavior — как раз то, что позволяет компилировать сишный код в эффективный машинный код." - отлить в граните.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 04 Октябрь, 2017 16:42 
Аватара пользователя

Зарегистрирован: Воскресенье, 12 Апрель, 2015 18:12
Сообщения: 1134
Откуда: СССР v2.0 rc 1
Цитата:
"Undefined behavior — как раз то, что позволяет компилировать сишный код в эффективный машинный код." - отлить в граните.

Как я это не процитировал первым?))


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 04 Октябрь, 2017 17:15 

Зарегистрирован: Вторник, 26 Январь, 2010 09:31
Сообщения: 717
Откуда: Барнаул
Предложенные в статье примеры шедевральны. Потому что они дефективны в своей основе. Чего на компилятор пенять? Там поди и варнинги были.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 04 Октябрь, 2017 18:55 

Зарегистрирован: Понедельник, 25 Июнь, 2012 17:26
Сообщения: 473
Примеры, конечно же, искусственные, но ведь на основе реально пойманных граблей. Вот ещё подобные разборки с "форматированием винчестера":
http://rsdn.org/forum/cpp/5654034.all


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 04 Октябрь, 2017 19:00 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 1447
Откуда: Киев
Я это называю проблемой восприятия маленьких примеров. Их создают простыми и понятными для того, чтобы очевидным способом показать проблему, хотя, конечно же, такое может проявиться и в менее очевидном коде, выполняющемся в значимой программе. Но эта же очевидность порождает у части людей желание заявить следующее:
Kemet писал(а):
они дефективны в своей основе. Чего на компилятор пенять?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 04 Октябрь, 2017 19:04 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 1447
Откуда: Киев
Artyemov писал(а):
ну и коммент "Undefined behavior — как раз то, что позволяет компилировать сишный код в эффективный машинный код." - отлить в граните.
В Обероне тоже есть неопределённое поведение. Отчасти потому, что так проще, отчасти потому, что так эффективнее. Исправлять есть что, особо радоваться не стоит.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 05 Октябрь, 2017 06:59 

Зарегистрирован: Вторник, 26 Январь, 2010 09:31
Сообщения: 717
Откуда: Барнаул
Comdiv писал(а):
Я это называю проблемой восприятия маленьких примеров. Их создают простыми и понятными для того, чтобы очевидным способом показать проблему, хотя, конечно же, такое может проявиться и в менее очевидном коде, выполняющемся в значимой программе. Но эта же очевидность порождает у части людей желание заявить следующее:
Kemet писал(а):
они дефективны в своей основе. Чего на компилятор пенять?
Здесь всё не просто, а очень просто. Когда кто-то накосячит, а потом ищет на кого бы это свалить. И сваливают. На компилятор, на подчиненных, на людей, живших лет так 50-5000... назад. В Оберонах ( и в языках и в компиляторах ) столько косяков, что цепляться к другим просто моветон.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 05 Октябрь, 2017 12:17 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 1447
Откуда: Киев
Kemet писал(а):
Здесь всё не просто, а очень просто. Когда кто-то накосячит
Оказывается, люди совершают ошибки. Оказывается, некоторые люди хотели бы, чтобы компилятор сообщил бы об ошибке или, по крайней мере, не усугублял её. Но это неправильное поведение, правильное - это быть придатком инструмента и обвинять себя за то, что ты недостаточен хорош для него.
А статья на хабре как раз больше похожа не на обвинение компилятора в непригодности, а на обзор в стиле - посмотрите какая забавная особенность.
habrahabr писал(а):
Компилятор (в данном случае — Clang) вправе сделать это.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 05 Октябрь, 2017 12:27 
Аватара пользователя

Зарегистрирован: Воскресенье, 12 Апрель, 2015 18:12
Сообщения: 1134
Откуда: СССР v2.0 rc 1
Kemet писал(а):
В Оберонах ( и в языках и в компиляторах ) столько косяков, что цепляться к другим просто моветон.

Видимо,я что-то делаю не так со своим русифицированным Обероном.
Кемет, примерчик в студию (аналог примера в топике из хабра).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 05 Октябрь, 2017 13:57 

Зарегистрирован: Вторник, 26 Январь, 2010 09:31
Сообщения: 717
Откуда: Барнаул
Comdiv писал(а):
Оказывается, люди совершают ошибки. Оказывается, некоторые люди хотели бы, чтобы компилятор сообщил бы об ошибке или, по крайней мере, не усугублял её. Но это неправильное поведение, правильное - это быть придатком инструмента и обвинять себя за то, что ты недостаточен хорош для него.
А статья на хабре как раз больше похожа не на обвинение компилятора в непригодности, а на обзор в стиле - посмотрите какая забавная особенность.
habrahabr писал(а):
Компилятор (в данном случае — Clang) вправе сделать это.

Конечно совершают. Человеческий фактор он везде. И в программировании. И при использовании С++, и при использовании Оберонов. Нормальные люди не истерики устраивают, а багрепорты пишут, обосновывая своё видение проблемы.
То, что компилятор был вправе так поступить, это просто констатация факто такого поведения. Является ли такое поведение штатным - нужно обсуждать не здесь, а с разработчиками.
Это, в любом случае, не означает, что компилятор должен думать за программиста, это не означает, что косяки программиста оправдывают косяки разработчиков компилятора, но и наоборот, косяки компилятора не оправдывают наличие дурного кода.

Ну отдельные русскоязычные любители Оберона, по ощущениям и есть придатки инструмента, и на любые неприятные вопросы, касающиеся Оберона они и отвечают в духе "что ты недостаточен хорош для него".
Об этом, в общем-то и речь. Чего возбуждаться?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 05 Октябрь, 2017 14:38 
Аватара пользователя

Зарегистрирован: Воскресенье, 12 Апрель, 2015 18:12
Сообщения: 1134
Откуда: СССР v2.0 rc 1
Компилятор, как результат человеческого труда -- неизбежно содержит ошибки.
Компилятор, как инструмент -- не должен гнать брак.
И, как инструмент -- должен быть безопасным.
Если есть желание ногой держать гвозди, а зубами молоток и забивать гвозди молотком в руки, да нет проблем.

Люблю приводить диалог из "Матрицы":
----------------------------------------------
Советник: Нео, что такое контроль?
Нео: Это когда, мы можем отключить машины.
С.: Да. Верно. Но тогда нам придётся думать как добывать воздух, тепло и свет.
Н.: Т.е. мы не можем отключить машины? Они контролируют нас?
С.: Что может утверждать человек в моём возрасте?
Н.: Поэтому в Совете нет молодых людей?
С.: В точку!


Кемет, похоже, жить ещё будет долго))
Человек, чувства которого возбудить невозможно есть труп.

Чтобы понять, на сколько хорош инструмент по сравнению с другим -- надо другим инструментом до отвращения набить себе синяков. По сравнению с хорошим. И если этот хороший инструмент справляется со своей работой, и не нужно привлекать другой -- зачем? Это не придаток. Это симбиоз. (Нео: "Я понял, как остановить войну. Мы и машины нужны друг другу" -- конец диалога)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 05 Октябрь, 2017 15:07 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 1447
Откуда: Киев
Kemet писал(а):
Чего возбуждаться?
А где Вы это увидели? Судя по Вашему 1-му сообщению, Вы достаточно остро отреагировали на сообщение Ильи. Но ведь оно совершенно отстранённое. Так где же Вы увидели возбуждение?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 05 Октябрь, 2017 15:14 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1428
Kemet писал(а):
То, что компилятор был вправе так поступить, это просто констатация факто такого поведения. Является ли такое поведение штатным - нужно обсуждать не здесь, а с разработчиками.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 05 Октябрь, 2017 16:48 

Зарегистрирован: Вторник, 26 Январь, 2010 09:31
Сообщения: 717
Откуда: Барнаул
Trurl писал(а):
Так уже обсудили.
Кто с кем обсудил?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 06 Октябрь, 2017 08:25 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1428
Те, кто обнаружил грабельки, с теми, кто их заботливо разложил.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 17 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB