Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / C++ Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 5 6 7 [8] 9 10   вперед  Ctrl      все
 Re: Visual Studio 2019 или Visual Studio Code?  [new]
ptr128
Member

Откуда: Moscow
Сообщений: 887
mayton

А мне интересно другое. Почему "надёжники" (военные и аэрокосмос) не используют С++

Используют, но чаще C, чем C++. О MISRA что-то слышали?
14 янв 21, 21:21    [22263546]     Ответить | Цитировать Сообщить модератору
 Re: Visual Studio 2019 или Visual Studio Code?  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
petrav
mayton
пропущено...

А мне интересно другое. Почему "надёжники" (военные и аэрокосмос) не используют С++
а выбирают всякие Ады и Модулы и прочие паскали.

Наверное есть у них какая-то рекомендация по этому поводу. Хотелось бы услышать.

Кто в теме - прокомментируйте.

Утверждение неверное.

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

Грамотнее говорить не Ява а Джава. Этож тебе не мотоцикл. Верно? Если хочешь быть понятым
в обществе - прими правильую терминологию.

Ситуацию с выходом за границы массива надо рассмотреть отдельным топиком. Тема интересная.
И я убежден что философия fail-fast - тоесть упасть быстро и сразу должна быть выбрана как
метод поиска ошибок. И замыливать их или прятать по неопределённое поведение - не есть гуд.

Выж не хотите уронить ваш самолет как Боинг-737 ?
14 янв 21, 21:29    [22263549]     Ответить | Цитировать Сообщить модератору
 Re: Visual Studio 2019 или Visual Studio Code?  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
ptr128
mayton

А мне интересно другое. Почему "надёжники" (военные и аэрокосмос) не используют С++

Используют, но чаще C, чем C++. О MISRA что-то слышали?

Я невкурсе. Яж по этому и спрашиваю.
14 янв 21, 21:30    [22263550]     Ответить | Цитировать Сообщить модератору
 Re: Visual Studio 2019 или Visual Studio Code?  [new]
petrav
Member

Откуда:
Сообщений: 2861
mayton
petrav
пропущено...

Утверждение неверное.

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

Грамотнее говорить не Ява а Джава. Этож тебе не мотоцикл. Верно? Если хочешь быть понятым
в обществе - прими правильую терминологию.

Ситуацию с выходом за границы массива надо рассмотреть отдельным топиком. Тема интересная.
И я убежден что философия fail-fast - тоесть упасть быстро и сразу должна быть выбрана как
метод поиска ошибок. И замыливать их или прятать по неопределённое поведение - не есть гуд.

Выж не хотите уронить ваш самолет как Боинг-737 ?

А вы хотите лететь на самолёте, который построен на идеологии fail-fast? Как в том фильме: моменто морэ — моментом в море. На испытаниях fail-fast да хорош. Но это трудно совместить.

PS: Я чаще встречал Ява, а не Джава.
14 янв 21, 21:40    [22263552]     Ответить | Цитировать Сообщить модератору
 Re: Visual Studio 2019 или Visual Studio Code?  [new]
ptr128
Member

Откуда: Moscow
Сообщений: 887
petrav
Visual Studio давно уже поддерживает сторонние компиляторы, сторонние системы сборки и кросскомпиляцию.

Весь прикол в том, что это предлагается делать через тот же make. После чего VS со всеми потрохами превращается по функциональности в Atom, но тормозной и жрущий кучу памяти.
A отлаживаться пробовали? А я пробовал. Настроить remote debug через через gdb и ICE мне так и не удалось. Гарвардскую архитектуру вообще не поддерживает никак. Хотя на Eclipse это взлетает сразу.
14 янв 21, 21:43    [22263553]     Ответить | Цитировать Сообщить модератору
 Re: Visual Studio 2019 или Visual Studio Code?  [new]
ptr128
Member

Откуда: Moscow
Сообщений: 887
mayton
Я невкурсе. Яж по этому и спрашиваю.

Можно начать с вики
14 янв 21, 21:48    [22263555]     Ответить | Цитировать Сообщить модератору
 Re: Visual Studio 2019 или Visual Studio Code?  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
petrav
mayton
пропущено...

Грамотнее говорить не Ява а Джава. Этож тебе не мотоцикл. Верно? Если хочешь быть понятым
в обществе - прими правильую терминологию.

Ситуацию с выходом за границы массива надо рассмотреть отдельным топиком. Тема интересная.
И я убежден что философия fail-fast - тоесть упасть быстро и сразу должна быть выбрана как
метод поиска ошибок. И замыливать их или прятать по неопределённое поведение - не есть гуд.

Выж не хотите уронить ваш самолет как Боинг-737 ?

А вы хотите лететь на самолёте, который построен на идеологии fail-fast? Как в том фильме: моменто морэ — моментом в море. На испытаниях fail-fast да хорош. Но это трудно совместить.

PS: Я чаще встречал Ява, а не Джава.

Хорошо. Говори как угодно.

По самолётам - я-бы больше доверял пилотам в спорных ситуациях. А не софту.

Давай обсудим этот месседж.

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


Я не претендую на твои самолетные знания. Мне просто любопытно. Раскрой суть этой магии что я процитировал выше.
14 янв 21, 21:50    [22263556]     Ответить | Цитировать Сообщить модератору
 Re: Visual Studio 2019 или Visual Studio Code?  [new]
ptr128
Member

Откуда: Moscow
Сообщений: 887
mayton
Ситуацию с выходом за границы массива надо рассмотреть отдельным топиком.

С точки зрения MISRA C++ 2008 (новей под рукой нет)
Rule 5-0-15 (Required) Array indexing shall be the only form of pointer arithmetic.
Rule 5–0–16 (Required) A pointer operand and any pointer resulting from pointer arithmetic using that operand shall both address elements of the same array.
Rule 5–0–17 (Required) Subtraction between pointers shall only be applied to pointers that address elements of the same array.
Rule 5–0–18 (Required) >, >=, <, <= shall not be applied to objects of pointer type, except where they point to the same array.

И все это только для того, чтобы сканер исходного кода мог понять, возможен ли выход за границы массива или нет.
14 янв 21, 21:56    [22263558]     Ответить | Цитировать Сообщить модератору
 Re: Visual Studio 2019 или Visual Studio Code?  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
ptr128
mayton
Я невкурсе. Яж по этому и спрашиваю.

Можно начать с вики

Ссылки приводят к PVSStudio. Спасибо. Я понял что это.
14 янв 21, 21:59    [22263559]     Ответить | Цитировать Сообщить модератору
 Re: Visual Studio 2019 или Visual Studio Code?  [new]
petrav
Member

Откуда:
Сообщений: 2861
mayton
Кстати, допустим, мы пишем бортовую программу для авиационного комплекса на С++. И где-то с какой-то вероятностью выходим за пределы массива или указатель показывает на уже не существующий объект. Как ни странно такая программа на С++ может на практике работать надёжнее, чем если мы напишем на Яве и допустим такие же ошибки. Это удивительно, но это так.


Я не претендую на твои самолетные знания. Мне просто любопытно. Раскрой суть этой магии что я процитировал выше.

А что тут раскрывать? Мне кажется мы отлично друг-друга поняли. Просто такая программа на
С++ может начать подглючивать, но в общем продолжать работать. Может не так точно, с
непонятными пилоту особенностями — но работает и самолёт летит. В случае Явы такая
программа или полностью грохнется, или откажет целый блок логики. Прямо в эксплуатации.
14 янв 21, 22:06    [22263563]     Ответить | Цитировать Сообщить модератору
 Re: Visual Studio 2019 или Visual Studio Code?  [new]
ъъъъъ
Member

Откуда:
Сообщений: 1966
mayton
ptr128
PetroNotC Sharp,

то есть Вы все же согласны, что если программировать на C++ не только простые приложения под Windows, то VS на этом заканчивается и начинается Atom/Eclipse ?
Под "простые" я понимаю те, где не нужна ни AOCC (AMD), ни Intel Parallel Studio, ни что либо еще так же не вписывающееся в парадигму MS All-In-One )))

А мне интересно другое. Почему "надёжники" (военные и аэрокосмос) не используют С++
а выбирают всякие Ады и Модулы и прочие паскали.

Наверное есть у них какая-то рекомендация по этому поводу. Хотелось бы услышать.

Кто в теме - прокомментируйте.

"Военные и аэрокосмос" используют Фортран (так сложилось, много старого софта и библиотек) и С/С++.
14 янв 21, 22:09    [22263564]     Ответить | Цитировать Сообщить модератору
 Re: Visual Studio 2019 или Visual Studio Code?  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
petrav
mayton
пропущено...


Я не претендую на твои самолетные знания. Мне просто любопытно. Раскрой суть этой магии что я процитировал выше.

А что тут раскрывать? Мне кажется мы отлично друг-друга поняли. Просто такая программа на
С++ может начать подглючивать, но в общем продолжать работать. Может не так точно, с
непонятными пилоту особенностями — но работает и самолёт летит. В случае Явы такая
программа или полностью грохнется, или откажет целый блок логики. Прямо в эксплуатации.

Нет. Она никуда не грохнется. Будет IndexOutOfBoundException и если ты его обработаешь
в ближайшей ловушке catch то можешь принять решение что делать. Как вариант - перезапустить
поток вычислений заново. Но память при этом нигде не будет повреждена записью.

По поводу "подглючивать и работать" - неясно.

Но я понимаю к чему ты клонишь. Тоесть если-бы мы увидели в N+1 элементе массива
мусор - то это не повлияло бы на некую главную логику принятия решений. Но здесь
мне кажется что ты взял слишком уж частный случай.

И я хотел услышать мнение других С++ ников по этому поводу.
14 янв 21, 22:14    [22263566]     Ответить | Цитировать Сообщить модератору
 Re: Visual Studio 2019 или Visual Studio Code?  [new]
ptr128
Member

Откуда: Moscow
Сообщений: 887
ъъъъъ,

фортран почти все используют. Даже Intel MKL, преимущественно, на фортране.
14 янв 21, 22:16    [22263567]     Ответить | Цитировать Сообщить модератору
 Re: Visual Studio 2019 или Visual Studio Code?  [new]
petrav
Member

Откуда:
Сообщений: 2861
mayton
petrav
пропущено...

А что тут раскрывать? Мне кажется мы отлично друг-друга поняли. Просто такая программа на
С++ может начать подглючивать, но в общем продолжать работать. Может не так точно, с
непонятными пилоту особенностями — но работает и самолёт летит. В случае Явы такая
программа или полностью грохнется, или откажет целый блок логики. Прямо в эксплуатации.

Нет. Она никуда не грохнется. Будет IndexOutOfBoundException и если ты его обработаешь
в ближайшей ловушке catch то можешь принять решение что делать. Как вариант - перезапустить
поток вычислений заново. Но память при этом нигде не будет повреждена записью.

Ты рассуждаешь как по учебнику. Обложить try, перезапустить поток. Ты сам-то представь
каждый operator[] обложить try. Или перезапустить поток с полной потерей состояния.

mayton
По поводу "подглючивать и работать" - неясно.

Что не ясно?

mayton
Но я понимаю к чему ты клонишь. Тоесть если-бы мы увидели в N+1 элементе массива
мусор - то это не повлияло бы на некую главную логику принятия решений. Но здесь
мне кажется что ты взял слишком уж частный случай.

Да это самый распространённый случай багов везде. 90% багов не приводит к падению, но
приводит к странному поведению программы. Иногда вообще баги не заметны, просто на
выходе искажённая информация, но выглядит она корректной.
14 янв 21, 22:33    [22263577]     Ответить | Цитировать Сообщить модератору
 Re: Visual Studio 2019 или Visual Studio Code?  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
petrav
mayton
пропущено...

Нет. Она никуда не грохнется. Будет IndexOutOfBoundException и если ты его обработаешь
в ближайшей ловушке catch то можешь принять решение что делать. Как вариант - перезапустить
поток вычислений заново. Но память при этом нигде не будет повреждена записью.

Ты рассуждаешь как по учебнику. Обложить try, перезапустить поток. Ты сам-то представь
каждый operator[] обложить try. Или перезапустить поток с полной потерей состояния.

А что плохого в том чтобы перезапустить поток?
14 янв 21, 23:18    [22263600]     Ответить | Цитировать Сообщить модератору
 Re: Visual Studio 2019 или Visual Studio Code?  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 10925
petrav
В случае Явы такая программа или полностью грохнется, или откажет целый блок логики.
Зависит исключительно от обработки исключений.
Да, выход за пределы массива - RuntimeException, которое необязательно обрабатывать, но если обрабатываете - можно восстановиться и во всяких "непонятных" ситуациях. Как минимум - выходом в некую "контролируемую точку" с чётким протоколированием где именно случилась пакость и какого она была цвета.
15 янв 21, 07:10    [22263663]     Ответить | Цитировать Сообщить модератору
 Re: Visual Studio 2019 или Visual Studio Code?  [new]
Siemargl
Member

Откуда: 010100
Сообщений: 6422
Модератор: Редактировано

Поддерживается еще не всё и не везде
https://en.cppreference.com/w/cpp/compiler_support

gcc11 который только выходит и тот по дефолту будет C++17

Сообщение было отредактировано: 17 янв 21, 15:53
15 янв 21, 11:34    [22263773]     Ответить | Цитировать Сообщить модератору
 Re: Visual Studio 2019 или Visual Studio Code?  [new]
petrav
Member

Откуда:
Сообщений: 2861
Basil A. Sidorov
petrav
В случае Явы такая программа или полностью грохнется, или откажет целый блок логики.
Зависит исключительно от обработки исключений.
Да, выход за пределы массива - RuntimeException, которое необязательно обрабатывать, но если обрабатываете - можно восстановиться и во всяких "непонятных" ситуациях. Как минимум - выходом в некую "контролируемую точку" с чётким протоколированием где именно случилась пакость и какого она была цвета.

Вы сами-то хоть раз написали программу где вокруг каждого operator[] стоит try и прописана логика восстановления функционала? Как такая логика вообще может выглядеть?

А выход в "контролируемую точку" — это как раз то о чём я писал. В полёте у вас просто откажет целый блок логики, вообще перестанет работать. А ведь на него (на блок) опираются другие подсистемы.

PS: Вы сами сядете в самолёт, который спроектирован по принципу fail-fast?
15 янв 21, 13:06    [22263841]     Ответить | Цитировать Сообщить модератору
 Re: Visual Studio 2019 или Visual Studio Code?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
petrav,
Ну, если вы не писали try так как его нет в плюсах, то не так страшно.
try
    Делим на ноль
exception
   Убираем ноль на значение по умолчанию

Весь корпоративный софт пишется чтобы не отказал блок логики
15 янв 21, 13:15    [22263853]     Ответить | Цитировать Сообщить модератору
 Re: Visual Studio 2019 или Visual Studio Code?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
petrav,
>PS: Вы сами сядете в самолёт, который спроектирован по принципу fail-fast?
Они на этом принципе и летают
15 янв 21, 13:25    [22263862]     Ответить | Цитировать Сообщить модератору
 Re: Visual Studio 2019 или Visual Studio Code?  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
В топике - какая-то подмена понятий. Когда я говорил fail-fast - я подразумевал быстрое информирование о том
что ПРОБЛЕМА БЫЛА. Как ее решать - отдельный протокол. Проверять регистры состояний процессора. Сигналы аля-
чистый "C" или другие мехнизмы.

petrav говорит - информирование неважно. Важно чтоб программа глючно, но работала.

Вот только этот факт вызвал моё удивление.

Конечно я не хочу чтобы самолёт со мной вместе падал при любом делении на ноль.

Надеюсь что я понятно объяснил.
15 янв 21, 13:36    [22263868]     Ответить | Цитировать Сообщить модератору
 Re: Visual Studio 2019 или Visual Studio Code?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52921

mayton
Конечно я не хочу чтобы самолёт со мной вместе падал при любом делении на ноль.

А тебя никто и не пустит в самолёт, который не прошёл испытания. Если, конечно, ты не
лётчик-испытатель.

И fail-fast в них как раз нужен чтобы они падали на испытаниях, а не в последующей
эксплуатации.

Posted via ActualForum NNTP Server 1.5

15 янв 21, 13:48    [22263877]     Ответить | Цитировать Сообщить модератору
 Re: Visual Studio 2019 или Visual Studio Code?  [new]
ъъъъъ
Member

Откуда:
Сообщений: 1966
petrav
Вы сами-то хоть раз написали программу где вокруг каждого operator[] стоит try и прописана логика восстановления функционала?

Не нужно "вокруг каждого".
Ну вот смотри, поимер: сервер обрабатывает запросы клиентов.
Обработка атомарного запроса выполняется в try-catch блоке, обработка может быть сколь угодно сложной, исключения бросаются по разным причинам: самим кодом разработчика ("неправильный формат запроса", "недопустимый id клиента", "ресурс недоступен",... ) или средой выполнения ("невозможно выделить блок памяти указанного размера", "переполнение при вычислениях", "недостаточно прав",...). В большинстве случаев реакцией на исключение является отказ в обработке запроса и переход к обработке нового запроса.
Ничего сложного.
15 янв 21, 13:50    [22263883]     Ответить | Цитировать Сообщить модератору
 Re: Visual Studio 2019 или Visual Studio Code?  [new]
petrav
Member

Откуда:
Сообщений: 2861
Dimitry Sibiryakov

mayton
Конечно я не хочу чтобы самолёт со мной вместе падал при любом делении на ноль.

А тебя никто и не пустит в самолёт, который не прошёл испытания. Если, конечно, ты не
лётчик-испытатель.

И fail-fast в них как раз нужен чтобы они падали на испытаниях, а не в последующей
эксплуатации.

Страшный ты человек, Сибиряков.

А лётчики-испытатели — они что не люди что ли? Или по твоему у них работа такая, что бы самолёты падали вместе с ними?

Или по твоему, раз самолёт прошёл испытания и сертификацию, так там и ошибок что ли нет?
15 янв 21, 13:54    [22263887]     Ответить | Цитировать Сообщить модератору
 Re: Visual Studio 2019 или Visual Studio Code?  [new]
mayton
Member

Откуда: loopback
Сообщений: 51017
Dimitry Sibiryakov

mayton
Конечно я не хочу чтобы самолёт со мной вместе падал при любом делении на ноль.

А тебя никто и не пустит в самолёт, который не прошёл испытания. Если, конечно, ты не
лётчик-испытатель.

И fail-fast в них как раз нужен чтобы они падали на испытаниях, а не в последующей
эксплуатации.

Я с вашего позволения побуду пассажиром.

А вот цитата wiki по поводу самого термина

The responsibility of a fail-fast module is detecting errors, then letting the next-highest level of the system handle them.
15 янв 21, 13:56    [22263889]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 5 6 7 [8] 9 10   вперед  Ctrl      все
Все форумы / C++ Ответить