DRAKON.SU

Текущее время: Четверг, 28 Март, 2024 11:11

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Проблема "Dangling else" и язык ДРАКОН
СообщениеДобавлено: Воскресенье, 23 Февраль, 2014 17:19 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Каверзная задача для профессиональных программистов

1. В английской Википедии есть статья Dangling else. В русской Википедии про это никто не додумался (а жаль).
Более того, никто в мире (кроме англичан, немцев, поляков, французов, чехов) до этого не добрались (в том смысле, что не написали в Википедию). Нехорошо, конечно, но факт есть факт.

2. Что такое Dangling else? Как это перевести на русский, я не знаю. То ли висячий else, то ли висящий else.

3. А теперь главное:
Цитата:
The dangling else problem dates to ALGOL 60,[2] and has been resolved in various ways in subsequent languages. In LR parsers, the dangling else is the archetypal example of a shift-reduce conflict.
Дальше читайте английский оригинал Dangling else.

4. Мне кажется, что ДРАКОН эту проблему уничтожает полностью. В том смысле, что если бы программисты всего мира использовали только дракон (предположим такое чудо), то эта проблема исчезла бы с лица земли.
Или я ошибаюсь? Как Вы думаете?

5. Желательно дать ответ не на словах, а проиллюстрировать его с помощью кода и дракон-схем.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема "Dangling else" и язык ДРАКОН
СообщениеДобавлено: Понедельник, 24 Февраль, 2014 08:38 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 631
Откуда: Россия, Орёл
В современном синтаксисе Модулы-Оберона-Ады и некоторых других языков этой проблемы нет,
т.к. вместо if begin end else begin end используется вариант с обязательным END без BEGIN:

IF THEN ... ELSE ... END

В таком варианте синтаксиса путаница "к чему относится ELSE, просто невозможна.

В Драконе она, естественно, так же невозможна.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема "Dangling else" и язык ДРАКОН
СообщениеДобавлено: Понедельник, 24 Февраль, 2014 15:59 
Аватара пользователя

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 46
Откуда: Tel-Aviv
Владимир Паронджанов писал(а):
2. Что такое Dangling else? Как это перевести на русский, я не знаю. То ли висячий else, то ли висящий else.
Наверно, по сходству с "висячими указателями", "Висячее ИНАЧЕ" или "Висячая ветвь ИНАЧЕ"?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2008-2024, участники конференции «DRAKON.SU», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB