Re: Ela. Разработка интерпретируемого языка программирования
От: Аноним  
Дата: 24.12.10 07:00
Оценка:
Здравствуйте, Воронков Василий Владимирович.

Статья (впрочем как и сам Ela) очень заинтересовала. Вот только...
Вы несколько "погорячились" с предложенным вариантом развития событий при описании "dangling else".
Рассматриваемый вами код:
if (isAdmin())
if (isAdvancedMode())
openAdvancedAdminConsole();
else
openAdminConsole();

на самом деле выполняется так:

if (isAdmin())
{
if (isAdvancedMode())
{ openAdvancedAdminConsole(); }
else
{ openAdminConsole(); }
}

а не так, как Вы написали в статье.

Это справедливо для C#, C++, C и ещё ряда языков.
Есть такое общепринятое правило (закреплённое стандартами C/C++/C#), что "else" относится к ближайшему "if".
Из легкодоступных источников можно проверить здесь http://en.wikipedia.org/wiki/Dangling_else.
А ещё проще написать программу и посмотреть как она выполняется.
Очень надеюсь, что допущенная ошибка обусловлена только лишь спешкой написания статьи, а не чем-то другим.

С уважением,
Дмитрий.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.