- Vote on answer
- posted
18 years ago
WINAVR
- Vote on answer
- posted
18 years ago
- Vote on answer
- posted
18 years ago
- Vote on answer
- posted
18 years ago
- Vote on answer
- posted
18 years ago
- Vote on answer
- posted
18 years ago
- Vote on answer
- posted
18 years ago
- Vote on answer
- posted
18 years ago
- Vote on answer
- posted
18 years ago
- Vote on answer
- posted
18 years ago
- Vote on answer
- posted
18 years ago
- Vote on answer
- posted
18 years ago
- Vote on answer
- posted
18 years ago
- Vote on answer
- posted
18 years ago
- Vote on answer
- posted
18 years ago
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
- Vote on answer
- posted
18 years ago
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
- Vote on answer
- posted
18 years ago
- Vote on answer
- posted
18 years ago
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
- Vote on answer
- posted
18 years ago
- Vote on answer
- posted
18 years ago