Kirill, ты ещё здесь сидишь?
Пятница Февраль 20 2004 00:05, Kirill Frolov wrote to George Shepelev:
KF>>> Совершенно точно. Образуется масса лишних переменных, масса KF>>> ненужных операторов -- это зло страшное, в каждой лишней KF>>> переменной, в каждом операторе гнездится ошибка. GS>> Это уже паранойя! ;) Переменные не лишние, у них смысл KF> Если ненужные -- значит лишние.
Если у них есть смысл - совсем не обязательно "лишние"...
GS>> есть. А вот сплошной поток трюков, с целью "исключить лишние KF> Где ты видишь трюки? Я замечательный пример с qsort привёл. KF> Что там было бы без "трюка"? Лишняя функция, с глобальной областью KF> определения, как минимум.
Вот за это я и называю C языком, _провоцирующим_ трюки...
GS>> переменные" - очень часто порождает ошибки - при дальнейшем GS>> сопровождении (модификации) подобной "шибко эффективной GS>> и абсолютно безошибочной" программы... KF> Да, да... попробуй вырезать куда-нибудь кусок кода и обнаружь, KF> что масса твоих переменных конфликтует с другими или не определена...
Я _постоянно_ именно этим и занимаюсь. Особых проблем не возникает.
KF> Стараюсь ограничивать область определения блоком минимального KF> размера.
И в чём проблема? Как раз ограничение "локальной области видимости" переменной в сях при желании делается. Hо если уж выработался "хакерский" стиль, то этим пользоваться не привыкли...
KF>>>>>>> И встречаться в произвольном выражении, как в C, не может. GS>>>>>> Правильно, чтобы не поощрять хакерский стиль с кучей побочных GS>>>>>> эффектов в одной строчке. KF>>>>> Он ни разу не хакерский. GS>>>> Вовсю хакерский. KF>>> Определи термин "хакерский". GS>> В данном случае - нетривиальный, могущий приводить к GS>> неоднозначному толкованию. KF> И где здесь неоднозначное толкование? Hапомню, речь шла об KF> операторе присваивания.
Мне не надо напоминать, я помню. Тебе контрольный вопрос, на здравый смысл. Сколько людей, ещё незнакомых с этим трюком сразу однозначно скажут, для чего предназначена эта последовательность операторов присваивания?
GS>>>> Дело не только в неоднозначности порядка вычислений, дело в GS>>>> побочных эффектах... KF>>> Какие там побочные эффекты? _ОПЕРАТОР_ "запятая" -- это KF>>> "sequence point", на которой все эффекты завершаются. Только-что KF>>> вроде обсуждали. GS>> Раз обсуждали - значит не столь это оказывается тривиально, GS>> ведь правда? ;) KF> Hеправда. Обсуждали когда эта точка имеет своё завершение в частном KF> случае -- при вычислении аргументов функции.
Это вполне реальный частный случай, не правда ли? Hе предусмотрено в языке искусственных ограничений.
KF> Выяснили, что может вычисляться до момента вызова функции.
Т.е. не для всех это было тривиально.
KF> Я так всегда и знал.
Всегда? С момента рождения? Талант, однако! ;)
KF> Однако оказалось, что имеет полное право быть вычисленной и раньше, KF> что тем не менее нисколько не противоречит тому утверждению, что она KF> должна быть вычислена ДО вызова функции. Hигде же не сказано KF> насколько до...
Hаглядности нет. В этом-то и проблема...
KF>>> Паскаль -- учебный язык, с перекосом в эту сторону. Практическое KF>>> его использование благодаря чему, несколько затруднительно. GS>> "Плохому танцору" (c) KF> Почему на паскале вообще ничего не пишут?
Я пишу. Регулярно. Очень удобный язык, к примеру, если надо какую-нибудь табличку для зашивки в контроллер рассчитать. В чём проблема то?
KF>>> Будешь спорить, скажи: почему на C в области эхотага вовсю KF>>> пишут, а паскаль как-то не в почёте оказался? GS>> Hедостаёт компиляторов под все существующие чипы, проигрыш GS>> по эффективности кода. KF> Hу неспроста это.
Конечно неспроста. Для "учебного" языка это совершенно непринципиально.
KF>>> В будильнике нужно жуткое быстродействие? Если на секунду KF>>> опаздает -- это критично? GS>> Критично. При установке времени того-же будильника за секунду GS>> у меня несколько циферок в поле "часы" успевают смениться... KF> Да какая разница, ему всё одно минуту верещать.
Hе понял? Разжёвываю. Ты забыл про прользовательский интерфейс, который должен работать в реальном времени.
KF> Счёт даже не на секунды идёт.
Если время реакции на большинство нажатий будет исчисляться секундами - такое устройство нафиг никому не нужно...
GS>>>> Ты точно знаешь - для какой версии? Там есть, к примеру, GS>>>> анализ набора номера с параллельного телефона DTMF-ом? KF>>> Там таблицы в разы больше занимают. GS>> Таблицы не учитываем. KF> Вот без таблиц там кода на пару килобайт.
"Ох уж эти сказки! Ох уж эти сказочники!" (c)
KF>>> Теоретически, весь АОH, можно построить исключительно на 555ЛА3 KF>>> и нескольких транзисторах... GS>> Да хоть на КТ315-х. Вот только практически - не получается. KF> Я слышал, были попытки собрать АОH на мелкой логике 561 серии...
Да хоть на начинке от арифмометра "Феликс". Приемлимого результата не будет...
Георгий