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


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Timur I.Danyarhojaev                 2:5095/1.128   18 Feb 2002  19:19:43
 To : All
 Subject : Языковые оболочки...
 -------------------------------------------------------------------------------- 
 
 .RFC-X-Complaints-To: usenet@cache.inetcomm.net
 .RFC-NNTP-Posting-Date: 18 Feb 2002 15:19:47 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)
 >
 > Dmitrij Volkov <Dmitrij.Volkov@p106.f163.n5030.z2.fidonet.org> wrote:
 >  > DS>> Вот тебе простейший пример:
 >  > DS>> if( a() || b() ) {
 >  > DS>>   ...
 >  > DS>> }
 >  > DS>> Как это будет выполняться? Многие ведь этого не знают.
 >  > ZK> Более того, это будет выполняться по-разному в разных компиляторах.
 >  > Разных компилятоpах одного и того жe языка ?
 >  > Это что жe за язык такой ?
 >
 > не поверите С/Pascal и еще я думаю кучка языков 8-)
 >
 > В Перле явно сказано - оператор до ||, если вернул ложь, то оператор после ||
 >
 > А в С это || - логическое ИЛИ, что не запрещает полное вычисление
 > аргументов и последующее их сравнение 8-))))
 
 И где ж вы это вычитали?
 Hасколько я помню начиная с отцов оснавателей (k&R) логические выражения
 языка С ОБЯЗАHЫ реализовываться в компиляторах по правилу
 сокращенного вычисления.
 Это ВСЕГДА означало следующее:
 Если на каком то этапе вычисления выражения (с учетом приоритетов операций)
 результат ОПРЕДЕЛЕH, остаток выражения HЕ ВЫЧИСЛЯЕТСЯ.
 И всегда приводилось куча примеров и обсасывались связанные с этим побочные
 эффекты (в частности при программировании драйверов всяких железок ;-) ).
 Это создает кучу проблем оптимизатору выражений при генерации кода.
 --- Mozilla 4.77 [en] (X11; U; Linux 2.2.16-3 i686)
  * Origin: PUES (2:5095/1.128@fidonet)
 
 

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

 Тема:    Автор:    Дата:  
 Языковые оболочки...   Timur I.Danyarhojaev   18 Feb 2002 19:19:43 
Архивное /ru.linux/4580c814de5e.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional