WINAVR

Reply to
Dimmy Timchenko
Loading thread data ...
Reply to
Dimmy Timchenko
Reply to
Dimmy Timchenko
Reply to
Andy Mozzhevilov
Reply to
Dimmy Timchenko
Reply to
Dimmy Timchenko
Reply to
Andrey Solomatov
Reply to
Sergei Tuchinski
Reply to
Leha Bishletov
Reply to
Leha Bishletov
Reply to
George Shepelev
Reply to
George Shepelev
Reply to
George Shepelev

Hello, Dimmy Timchenko! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Thu, 13 Oct 2005 03:24:40

+0400:

DT>>> Hе все такие умные, да и забыть что-то можно.

DO>> Забыть всегда можно. Можно и диапазон забыть указать или DO>> указать неправильно.

DT> Компилятор должен подстилать соломку везде, где это возможно.

Компилятор не знает что тебе нужно.

DT> Конечно, особенно статически - динамические проверки для DT> embedded дОроги.

Могут быть дороги.

DT>>> А дырки должны быть все заткнуты. Особенно во встроенных DT>>> приложениях.

DO>> Почему особенно?

DT> Потому что встроенные приложения могут управлять DT> (потенциально) опасным или важным оборудованием. Это тебе не DT> интернет эксплорер.

А могут управлять детской игрушкой. Ответственность приложения зависит не от того встраиваемое оно или десктопное.

DT>>> Вряд ли. Область динамической памяти, размещённая DT>>> вперемешку с кодом?

DO>> Видимо перемешанная с кодом область статической памяти или DO>> стека представляется тебе более естественным решением...

DT> Да я вообще не представляю, как надо делать компиляторы и DT> писать программы, чтобы данные были вперемешку с кодом.

А с чего ты взял, что они идут?

DT>>> Кстати, сегмент кода следовало бы защищать от записи...

DO>> Это вопрос организации ОС, а не языка программирования.

DT> Многое и в организации ОС класса Windows идёт от пофигизма, DT> подобного керниган-ричиевскому.

Ты знаешь другие массовые ОС?

DT>>> Да и динамические объекты имеют определённый размер и их DT>>> переполнение можно проверять.

DO>> Можно. Причем в любом языке. Только это время...

DT> Время критично примерно в 20% кода.

Это сильно зависит.

DT> А надёжность и безопасность важны всегда.

И это тоже.

DT>>> Обрабатывать, вестимо. По ситуации.

DO>> То есть вместо С++ класса, где все это в одном месте описано, DO>> получается рыхлый код, где программист должен думать об DO>> обработке этих исключительных ситуаций при каждом действии. DO>> Потому как полагаться на стандартный - DO>> получить бессмысленную для embedded остановку программы.

DT> Сделай её осмысленной.

Не могу. Остановка программы - авария.

DT> Выведи хотя бы диагностику.

Куда и кому? Есть огромное количество необслуживаемых систем, лишенных какого-либо интерфейса с человеком.

DT> Потому что такая остановка - свидетельство внутренней ошибки.

Ну и что?

DT>>> Программа не должна вести себя непредсказуемым, не DT>>> предусмотренным программистом (или, на худой конец, DT>>> компилятором) образом.

DO>> Семь бед - один ресет. В случае embedded - watchdog.

DT> Ты, похоже, делаешь очень простые и не особенно ответственные DT> приборы. Хотя, видимо, это вопрос личных принципов. :)

Нет, это вопрос технической целесообразности. А что до простоты, то да, ничего сложного в моих программах нет, да и что может быть сложного написано в мелкий восьмиразрядный контроллер?

DO>> Я не вижу на твоем примере чем задание типа с диапазоном и DO>> обработкой исключений лучше задания класса, в котором описаны DO>> допустимые действия и операторы.

DT> В данном случае задание такого типа чрезвычайно наглядно и DT> позволяет описывать величины, независимые от реализации. DT> Вопрос об обработке исключительных ситуаций поставил ты.

Дело в том, что без этого вопроса в этом наглядном описании толку чуть. Какой смысл в проверке, если ее результатами невозможно воспользоваться?

dima

formatting link

Reply to
Dmitry Orlov

Hello, Dimmy Timchenko! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Thu, 13 Oct 2005 03:37:05

+0400:

DT>>>> Это явно неправильные компиляторы.

NA>>> Это полуфича-полубага у некоторых MS/wintel компиляторов и NA>>> совместимых с ними.

DO>> Hапример если цикл использовался для поиска позиции символа в DO>> строке, значение переменной цикла после выхода из него хранит DO>> найденную величину, что удобно.

DT> Мало ли что удобно - это неправильно идеологически и не DT> соответствует стандарту. А из идеологии "чтоб удобно было" и DT> получился C времён K&R.

Что для своего времени было огромным шагом вперед.

dima

formatting link

Reply to
Dmitry Orlov
Reply to
Alex Mogilnikov

Hello, Dimmy Timchenko! You wrote in conference fido7.ru.embedded to Basargin Konstantin on Thu, 13 Oct 2005 04:05:17

+0400: BK>> Borland C++ Builder например спокойно отностится к такому DT> [...]

BK>> а вот Microsoft Visual C++ ругается: "unexpected 'int ('" BK>> говорит на строчке "x.~int();"

BK>> :-)

DT> Да-а, хар-роший язык, если каждый разработчик компилятора DT> понимает его по-своему. :) Hе зря создатели Ады были так DT> помешаны на стандартах и сертификации...

И где теперь та Ада?

dima

formatting link

Reply to
Dmitry Orlov
Reply to
Sergei Tuchinski
Reply to
Dimmy Timchenko

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.