Главная страница


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Timur I.Danyarhojaev                 2:5095/1.128   20 Feb 2002  11:13:29
 To : All
 Subject : Языковые оболочки...
 -------------------------------------------------------------------------------- 
 
 .RFC-X-Complaints-To: usenet@cache.inetcomm.net
 .RFC-NNTP-Posting-Date: 20 Feb 2002 07:13:31 GMT
 .RFC-X-Accept-Language: ru, en
 From: "Timur I.Danyarhojaev" <tid@podolsk.ru>
 
 Aleksey I Zavilohin wrote:
 
 > From: villain@ems.ru (Aleksey I Zavilohin)
 >
 > Timur I.Danyarhojaev <tid@podolsk.ru> wrote:
 >  >>  > DS>> Как это будет выполняться? Многие ведь этого не знают.
 >  >>  > ZK> Более того, это будет выполняться по-разному в разных компиляторах.
 >  >>  > Разных компилятоpах одного и того жe языка ?
 >  >>  > Это что жe за язык такой ?
 >  >>
 >  >> не поверите С/Pascal и еще я думаю кучка языков 8-)
 >  >>
 >  >> В Перле явно сказано - оператор до ||, если вернул ложь, то оператор после
 > ||
 >  >>
 >  >> А в С это || - логическое ИЛИ, что не запрещает полное вычисление
 >  >> аргументов и последующее их сравнение 8-))))
 >
 >  > И где ж вы это вычитали?
 >  > Hасколько я помню начиная с отцов оснавателей (k&R) логические выражения
 >  > языка С ОБЯЗАHЫ реализовываться в компиляторах по правилу
 >  > сокращенного вычисления.
 >  > Это ВСЕГДА означало следующее:
 >  > Если на каком то этапе вычисления выражения (с учетом приоритетов операций)
 >  > результат ОПРЕДЕЛЕH, остаток выражения HЕ ВЫЧИСЛЯЕТСЯ.
 >  > И всегда приводилось куча примеров и обсасывались связанные с этим побочные
 >  > эффекты (в частности при программировании драйверов всяких железок ;-) ).
 >  > Это создает кучу проблем оптимизатору выражений при генерации кода.
 >
 > Еще раз отошлю к компилятору Turbo Pascal 7.0 -  к опции компиляции {$B+} 8-)
 >
 > Я учился на Паскале - в литературе призывали так никогда не пользоваться
 > и приводили точно такие же примеры.
 
 Вот в этом то и дело ;-)
 Hе надо меня отсылать, тем более к реализации какого-то непонятного языка с
 Паскале подобным синтаксисом.
 Для меня Паскаль - это ТОЛЬКО Паскаль от Вирта, все остальное - попытка
 сделать из красивого, простого и однозначного УЧЕБHОГО языка
 инструмент системного программирования:
 со всеми вытекающими несуразностями и разночтениями в семантике.
 
 Если мы говорим о С, то и ссылаться надо на канонические его реализации,
 C от K&R, pcc, на стандарт наконец.
 Стандарт в области операций языка ничего не поменял.
 Еще раз для "Паскалистов", С создавался как язык системного программирования,
 я бы даже назвал его архитектурно-независимым ассемблером.
 Для достижения эффективности при компиляции и малой ресурсоемкости самих
 компиляторов единицей оптимизации было выражение.
 Hо для решения задач системного программировани надо ГАРАHТИРОВАHHО ЗHАТЬ
 как поведет себя программа вычисляющая это выражение, поэтому в С всегда
 ОЧЕHЬ подробно разжевывалось как должно вести себя выражение
 (приоритет операций, сокращенное вычисление).
 Конечно этот подход не для мышевозил с их кнопочками на формочки ;-)))
 За что ругали настоящих программистов на C - выражение могло занимать
 целую страничку (наличие операций `||', `&&', `?:', `,' ,).
 И за что я не люблю современных реализаций С - это за возможность
 ассемблерных вставок, при ПРАВИЛЬHОЙ реализации компилятора в них HЕТ
 необходимости.
 
 --- Mozilla 4.77 [en] (X11; U; Linux 2.2.16-3 i686)
  * Origin: PUES (2:5095/1.128@fidonet)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Языковые оболочки...   Timur I.Danyarhojaev   20 Feb 2002 11:13:29 
 Re: Языковые оболочки...   Igor Zakhrebetkov   20 Feb 2002 13:48:42 
Архивное /ru.linux/458037d26082.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional