Alexey Veselovsky писал(а):
Отдельный код для каждой из платформ увеличивает стоимость сопровождения продукта. Что не здорово.
Что значит сопровождение ???
Типа, изменилась система команд проца, а мы - оппаньки, и подправили ???
Надо написать, чтобы это работало всегда.
Вот я уже говорил "умными словами", в чем отличие работы "профессионала", от "любителя"... То же самое можно выразить более коротко: второй умеет делать чтобы работало, а первый - чтобы работало всегда.
А вообще-то моя главная мысль состоит в том, что не укладываются инженерые решения всегда в один шаблон (базовый!!!). Решение портируемости в виде кодов ANSI-C - это тоже же шаблон. Где-то он работает эффективно, наверное.
Ну скажем, тот же XDS... Или вот Рефаловская компания занимается генерацией выходных кодов в таком виде...
Народ думал, соображал принял решение. Возможно и правильное.
Но для 30-40 байт кода - не тот случай. Это не утверждение, это мне пока так кажется
Alexey Veselovsky писал(а):
Ну, я ж не соревноваться, а больше ради образовательных целей
Был и у меня период для "образовательнгых целей"
Не сразу же я начал для AVR-ок на АСМ-е писать. Сначала я был молод, и верил, что ЯВУ шибко экономит время разработки. Использовал IAR-овский C++. Даже классы соорудил с переопределенными арифметическими операциями (типа один байт умножить на два байта - будет 3 байта).
Потом начал замечать, что гораздо эффективней "запуска сразу" просмотреть сгенерированный АСМ-код - просто на предмет анализа, правильно ли меня ентот C++ понял.
Пробовал "помогать" оптимизатору. Типа короткая серия операций с глобальным указателем. А в регистрах он располагает в первую очередь переменные с минимальной областью видимости. Ну я заводил локальную переменную, инициализировал глобальной, работал с локальной, и возвращал значение обратно в глобальную. Помогало очень хорошо
До следующей версии компилятора.
И понял я - глупое это дело, писать оптимальный код на ЯВУ. Компилятор, он хоть и тупой, но ведет себя, будто умнее программиста.
А потом понял еще: решаю я задачу полгода, предположим. В кодинге я половину времени трачу на борьбу с компилятором. Но выполнить работу компилятора ручками - ну максимум 2 дня.... Из полугода.
И спрашиваеися нафига мне такой "экскаватор", когда 2 солдата из стройбата выполнят его работу в два раза эффективнее. Не по времени, а по результату