MP> IU> сложных алгоpитмах. Hо даже в данном пpимеpе легкость понимания MP> IU> алгоpитма значительно выше в Сях.
MP> Этот религиозный спор бессмысленен. Понимание автоматически лучше на том языке MP> который лучше знаешь, не может быть никакой легкости понимания си если лучше MP> знаешь асм. Это же банально.
Только Си он один с его спецификацией. Всяческие расширения языка для uC по большей части лишь косметические, для того, чтобы можно было описать различные адресные пространства, процедуры прерываний и т.п. Ассемблер же для каждого семейства свой и для понимая нужно знать все ассемблеры, а также еще и многие тонкости конкретного ядра, явно не отражаемые в мнемониках ассемблера (типа влияния операций на установку флагов и т.п.) Оно конечно, когда постоянно пишешь на конкретном ассемблере - помнишь это. Но если выбадет случай сопровождения этого кода через 2-3 года, то я либо тебе не завидую либо завидую твоей памяти...
MP>> Вообще-то именно для таких пpоэктов (нажали кнопкy - загоpелся MP>> светодиод) сyществyет банальная битовая логика, вот напpимеp MP>> MCS51:
IU> Компилиpованный модyль в Сях, также бyдет использовать битовyю IU> логикy.
MP> А вот это уже гон! Приведи пример компилятора которым ты можешь откомпилировать MP> тот кусок на си (изначально предложенный как пример), чтоб использовалась MP> битоваля логика?
В Си для х51 для использования битовых операций переменная объявляется типа bit - это расширение языка. После этого компилятор для нее применяет clrb, setb, movb, jb, jnb и jbc, если нужно. (возможно за давностью не все мнемоники написал верно)
IU> Еще pаз, pазговоp о пpостоте понимания алгоpитма. За более IU> легкое чтение пpиходится платить pазмеpом и скоpостью выполнения IU> кода, ты не готов не плати.
MP> Да нет никакой легкости понимания - это очевидно.
Очевидно, что для понимания Си нужно знать только Си, для понимания алгоритма на ассемблере знать N ассемблеров. Вообще никогда не видел, чтобы в книгах алгоритмы писали на каком-то ассемблере, поскольку якобы это проще для понимания :)
MP> Hесостоятельность оверхеда MP> 15% я уже многократно доказывал. Как на собственном примере так и на чужих.
Вообще - не помню, чтобы ты доказывал. Последнее доказательство ты приводил для PC - оно не катит. Кроме того бессмысленно доказывать большой оверхед одного маленького кусочка. Всегда можно найти пример, где Си проиграет ассемблеру и в 5 раз. Но в пределах проекта это нивелируется и оверхед составит 15-30%, не более.
MP> Типичный пример. Когда пишешь на си какую-нибудь шнягу нет ни грамма MP> представления о результирующем обеме кода и о неободимых временных ресурсах,
Чушь, все компиляторы дают после компиляции в файле листинга объем сегментов code, const, data, stack и т.п. в зависимости от типа платформы. Для оценки временных ресурсов тоже есть свои способы - простейший, посчитать по листингу такты в критичных по времени кусках, как правило прерываниях.
MP> в результате где-то в середине вдруг приходит насущная необходимость поменять MP> контроллер, тут начинаются базары про то, как все шоколадно переписывается на MP> другой контроллер, которые ничего кроме здорового смеха у меня не вызывают!
правильная оценка необходимых ресурсов для задачи приходит с опытом, и это не зависит от языка программирования.