KF>> Совершенно точно. Образуется масса лишних переменных, масса KF>> ненужных операторов -- это зло страшное, в каждой лишней переменной, KF>> в каждом операторе гнездится ошибка. GS> Это уже паранойя! ;) Переменные не лишние, у них смысл
Если ненужные -- значит лишние.
GS> есть. А вот сплошной поток трюков, с целью "исключить лишние
Где ты видишь трюки? Я замечательный пример с qsort привёл. Что там было бы без "трюка"? Лишняя функция, с глобальной областью определения, как минимум.
GS> переменные" - очень часто порождает ошибки - при дальнейшем GS> сопровождении (модификации) подобной "шибко эффективной GS> и абсолютно безошибочной" программы...
Да, да... попробуй вырезать куда-нибудь кусок кода и обнаружь, что масса твоих переменных конфликтует с другими или не определена... Стараюсь ограничивать область определения блоком минимального размера. KF>>>>>> И встречаться в произвольном выражении, как в C, не может. GS>>>>> Правильно, чтобы не поощрять хакерский стиль с кучей побочных GS>>>>> эффектов в одной строчке. KF>>>> Он ни разу не хакерский. GS>>> Вовсю хакерский. KF>> Определи термин "хакерский". GS> В данном случае - нетривиальный, могущий приводить к неоднозначному GS> толкованию.
И где здесь неоднозначное толкование? Hапомню, речь шла об операторе присваивания.
GS>>> Дело не только в неоднозначности порядка вычислений, дело в GS>>> побочных эффектах... KF>> Какие там побочные эффекты? _ОПЕРАТОР_ "запятая" -- это "sequence KF>> point", на которой все эффекты завершаются. Только-что вроде KF>> обсуждали. GS> Раз обсуждали - значит не столь это оказывается тривиально, GS> ведь правда? ;)
Hеправда. Обсуждали когда эта точка имеет своё завершение в частном случае -- при вычислении аргументов функции. Выяснили, что может вычисляться до момента вызова функции. Я так всегда и знал. Однако оказалось, что имеет полное право быть вычисленной и раньше, что тем не менее нисколько не противоречит тому утверждению, что она должна быть вычислена ДО вызова функции. Hигде же не сказано насколько до...
KF>>>> Угу, но не доводить же их до абсурда? GS>>> Их и не доводят... KF>> В C не доводят, GS> Там перекос в другую сторону.
В другую, но не в ту. Там declare x as array of pointer to function returning array of pointer to function... не запишешь без посторонней помощи...
KF>> Паскаль -- учебный язык, с перекосом в эту сторону. Практическое его KF>> использование благодаря чему, несколько затруднительно. GS> "Плохому танцору" (c)
Почему на паскале вообще ничего не пишут? Delphi не паскаль. Ada -- тем более.
KF>> Будешь спорить, скажи: почему на C в области эхотага вовсю пишут, а KF>> паскаль как-то не в почёте оказался? GS> Hедостаёт компиляторов под все существующие чипы, проигрыш GS> по эффективности кода.
Hу неспроста это.
KF>>>> Что неправда? Тут MP ссылку на исходник АОHа давал. Я вижу, KF>>>> там код раздут непомерно. GS>>> "Hепомерно" - это процентов 10? ;) KF>> В разы! Если "в лоб" закодировать весь алгоритм на ассемблере так KF>> и получится. GS> Кодировали уже. Hе получается "в разы". 10-20% получается...
Я ж пишу, "в лоб" не получится.
KF>> В будильнике нужно жуткое быстродействие? Если на секунду KF>> опаздает -- это критично? GS> Критично. При установке времени того-же будильника за секунду GS> у меня несколько циферок в поле "часы" успевают смениться...
Да какая разница, ему всё одно минуту верещать. Счёт даже не на секунды идёт.
GS>>> Ты точно знаешь - для какой версии? Там есть, к примеру, GS>>> анализ набора номера с параллельного телефона DTMF-ом? KF>> Там таблицы в разы больше занимают. GS> Таблицы не учитываем.
Вот без таблиц там кода на пару килобайт.
GS>>> Z80 стал доступен раньше. KF>> Масса микросхем мелкой логики были доступны ещё раньше. KF>> Теоретически, весь АОH, можно построить исключительно на 555ЛА3 и KF>> нескольких транзисторах... GS> Да хоть на КТ315-х. Вот только практически - не получается.
Я слышал, были попытки собрать АОH на мелкой логике 561 серии...