2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3, 4, 5
 
 Re: Возврат структуры из функции
Сообщение24.07.2023, 23:36 
Аватара пользователя


28/10/21
100
mihaild в сообщении #1602331 писал(а):
TheRuinedMap в сообщении #1602314 писал(а):
В таком виде это вполне может быть лишь иллюстрацией того, о чем я говорю. То есть вполне может быть, что "неправильная работа программы" в вашей практике вылезала намного чаще. Но вы просто не замечали этого, ибо свято верили в непогрешимость компилятора.
Я не понимаю, как вера в компилятор влияет на отладку. Рано или поздно я либо нахожу у себя ошибку, либо получаю настолько простой код, что могу проверить его по стандарту.


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

 Профиль  
                  
 
 Re: Возврат структуры из функции
Сообщение24.07.2023, 23:42 
Заслуженный участник
Аватара пользователя


16/07/14
9201
Цюрих
TheRuinedMap в сообщении #1602339 писал(а):
Я в первую очередь говорю о ситуациях, когда код работает так, как хотел его автор. Однако на самом деле оказывается, что в своем коде он положился на функциональность компилятора, которая является не гарантированной или даже ошибочной
Случаев, когда я писал код, в котором было UB, но который работал как я ожидаю, и UB осталось ненайденным, наверняка было много, и я опять же не понимаю, причем тут "вера в компилятор".
Случаев, когда я написал код, поведение которого определено стандартом, по стандарту отличается от задуманного, но в итоге из-за ошибки в компиляторе работает как я ожидал, было, думаю, сильно меньше. Вполне возможно, что и 0. Но даже если и были, опять же не вижу, как отсутствие "веры в компилятор" помогло бы их найти.
(разумеется есть стандартное неправильное рассуждение "работает, значит написано правильно", но большинство случаев, когда неправильный код работает, связано с UB, а не багами компилятора)

 Профиль  
                  
 
 Re: Возврат структуры из функции
Сообщение25.07.2023, 22:11 
Заслуженный участник


18/01/15
3237
mihaild в сообщении #1602238 писал(а):
И даже понять, что в скомпилированном коде ошибка очень сложно.
Чего же сложного ? Если на каких-то тестах не работает, значит ошибка (ошибка программиста или баг компилятора). Если на достаточно представительных тестах работает правильно, значит, с высокой вероятностью программа правильна. Даже если она создана с помощью кривого компилятора.
mihaild в сообщении #1602238 писал(а):
Поэтому компилятор должен быть максимально надежным.
А зачем максимально ? Ведь нет совершенства под луной. Если у меня с ним получается работать нормально (в том смысле, что глюки бывают очень редко, и таки обнаруживаются), значит, для моих целей в данный момент он нормальный.

Попытался таки разобраться с gcc, часа полтора потратил, голова опухла. Понял, что быстро у меня это не получится, и решил, что овчина выделки не стоит.

 Профиль  
                  
 
 Re: Возврат структуры из функции
Сообщение25.07.2023, 22:19 
Заслуженный участник
Аватара пользователя


16/07/14
9201
Цюрих
vpb в сообщении #1602458 писал(а):
Если на достаточно представительных тестах работает правильно, значит, с высокой вероятностью программа правильна
Тогда "создать достаточно представительные тесты" очень сложно:)
vpb в сообщении #1602458 писал(а):
А зачем максимально ?
Естественно "максимально" в пределах здравого смысла.
vpb в сообщении #1602458 писал(а):
Если у меня с ним получается работать нормально (в том смысле, что глюки бывают очень редко, и таки обнаруживаются), значит, для моих целей в данный момент он нормальный.
Я бы сказал, что настолько очевидная ошибка в настолько простом коде это серьезный признак, что с компилятором что-то сильно не так.
vpb в сообщении #1602458 писал(а):
Попытался таки разобраться с gcc, часа полтора потратил, голова опухла
Вообще это странно. Т.е. под виндой конечно что-то установить это тот еще квест, но не настолько же.

 Профиль  
                  
 
 Re: Возврат структуры из функции
Сообщение25.07.2023, 22:30 
Заслуженный участник


18/01/15
3237
mihaild в сообщении #1602460 писал(а):
Я бы сказал, что настолько очевидная ошибка в настолько простом коде это серьезный признак, что с компилятором что-то сильно не так.
Не то чтобы с компилятором что-то не так, а да, возврат структуры из функции он не понимает. Ну и ладно, буду возвращать через ссылку, тем более что надо это очень редко. Яма, конечно, очевидная, ну так в нее можно и не ступать.
mihaild в сообщении #1602460 писал(а):
Вообще это странно.
Может и странно, но я программист никакой, так что для меня тут трудность.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 65 ]  На страницу Пред.  1, 2, 3, 4, 5

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



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

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


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

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group