Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Однако, в ряде ситуаций описанный способ разрешения




Конфликтов приводит к нужному результату. Например, рассмот-

Рим фрагмент грамматики языка программирования, описывающий

условный оператор:

оператор: if '(' условие ')' оператор /*1*/

|

if '(' условие ')' оператор else

оператор; /*2*/

Входная строка вида:

If(C1) if(C2) S1 else S2

вызвала бы при разборе конфликт сдвиг/свертка в момент

- 22 -

Просмотра символа else. Введенная часть строки к этому вре-

мени имеет вид:

If (условие) if (условие) оператор

Если выполнить свертку второй части конструкции по правилу

(1), то строка сведется к:

If (условие) оператор

(Заметим, что применить еще раз правило(1) мешает просмот-

Ренный заранее символ else). После ввода конструкции S2 и

замены ее нетерминалом оператор к строке:

If (условие) оператор else оператор

Будет применено правило (2). Полученный разбор соответствует

следующей интерпретации входной строки:

if (C1) {if(C2) S1} else S2

При альтернативном подходе в случае применения сдвига в

Момент появления else входная строка была бы введена пол-

ностью:

If (условие) if (условие) оператор

Else оператор

Ко второй части строки можно применить правило (2), а затем

свернуть полученную конструкцию:

If (условие) оператор

По правилу (1). Такой разбор соответствует второй возможной

интерпретации входной строки:

if (C1) {if(C2) S1 else S2}

Как известно, в большинстве языков программирования принята






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных