2014 dxdy logo

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

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




На страницу Пред.  1, 2, 3, 4, 5
 
 Re: Возврат структуры из функции
Сообщение24.07.2023, 23:36 
Аватара пользователя
mihaild в сообщении #1602331 писал(а):
TheRuinedMap в сообщении #1602314 писал(а):
В таком виде это вполне может быть лишь иллюстрацией того, о чем я говорю. То есть вполне может быть, что "неправильная работа программы" в вашей практике вылезала намного чаще. Но вы просто не замечали этого, ибо свято верили в непогрешимость компилятора.
Я не понимаю, как вера в компилятор влияет на отладку. Рано или поздно я либо нахожу у себя ошибку, либо получаю настолько простой код, что могу проверить его по стандарту.


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

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

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

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

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

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

 
 
 [ Сообщений: 65 ]  На страницу Пред.  1, 2, 3, 4, 5


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group