Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
типис тест.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
513.02 Кб
Скачать
  1. Терминология ll(1) означает:

  • строки разбираются слева направо;

  • строки разбираются справа налево;

  • используются самые левые выводы;

  • цифра 1 — варианты порождающих правил выбирается с помощью одного предварительно просмотренного символа.

  1. Выберите всех непосредственных предшественников в примере на основании правил P->QR; Q->qR:

  • Q - непосредственный предшественник Р;

  • q — непосредственный предшественник Q;

  • Р - непосредственный предшественник Q;

  • Р - непосредственный предшественник R.

  1. Существует ли алгоритм для определения свойства LL(1) языка (т.е. можно ли его генерировать с помощью LL(1)- грамматики) или нет?

  • да;

  • алгоритма не существует (по крайней мере, алгоритма, который с гарантией сработал бы в любом случае);

  • алгоритма не существует и все попытки получить подобный алгоритм могут привести к бесконечному зацикливанию в определенных ситуациях.

  1. При создании надежных компиляторов необходимо учитывать, что:

  • по мере возможности желательно избегать преобразование вручную;

  • желательно превалирование преобразований вручную;

  • человек, выполняющий преобразование, может случайно изменить язык, генерируемый данной грамматикой;

  • нет верных ответов.

  1. Что требуется для преобразования грамматики в LL(1) – форму?

  • устранение левой рекурсии;

  • левая часть каждого правила должна начинается с терминала;

  • разбор строк слева направо.

  1. К каким ситуациям, с точки зрения пользователя, может привести применение типичного преобразователя грамматики в зависимости от того, является ли язык LL(1)-языком или нет?

  • успешно преобразованная грамматика;

  • преобразователь зациклился или остановился, указав, почему нельзя (LL(1)-язык);

  • преобразователь зациклился (Язык, не являющийся LL(1)).

  1. LL(1)-метод разбора имеет ряд преимуществ:

  • не требуется возврат, поскольку метод - детерминированный;

  • время разбора, (приблизительно) пропорционально длине программы, однако, некоторые действия, выполняемые во время компиляции могут потребовать дополнительного времени;

  • имеются хорошие диагностические характеристики и существует возможность исправления ошибок;

  • соответствие между грамматикой и языком, что повышает вероятность того, что анализатор окажется правильным.

  1. Синтаксический анализатор, работающий по принципу "снизу вверх", выполняет действия:

  • сдвиг;

  • приведение;

  • суммирование;

  • сброс магазинной памяти.

  1. Буквы в LR показывают:

  • строки читаются слева направо;

  • получается правосторонний разбор;

  • строки читаются справа налево.

  1. Определите, какие из следующих грамматик являются LL(1)-грамматиками:

  • Е->Е+Е; Е-> i;

  • Z->0S0; Z-> 1S1; S-> 0; S->1;

  • S->0S0; S->0S1; S->c.

  1. В иерархии SLR(1)-грамматики включают грамматики:

  • со слабым предшествованием;

  • s-грамматики;

  • LL(1)-грамматики;

  • LR(0)-грамматики.

  1. Свойства LALR(1)- алгоритма:

  • расширение алгоритма SLR(1);

  • работает тогда, когда построение SLR(1)таблицы разбора для данной грамматики невозможно из-за конфликта сдвиг-свертка;

  • работает тогда, когда построение SLR(1)таблицы разбора для данной грамматики невозможно из-за конфликта свертка-свертка;

  • класс грамматик, разбираемых LALR(1) шире, чем класс SLR(1).

  1. Какие существуют правила для получения более простых высказываний?

  • Закон коммутативности

  • Ассоциативности

  • Дистрибутивности

  • Импликации

  • Инверсии

  1. Какие кванторы используются в исчислении предикатов?

  • Квантор существования

  • Квантор всеобщности

  • Квантор количества

  • Квантор качества

  • Квантор исключений

  1. Какие существуют методы для оптимизации нескольких операторов?

  • Оптимизация циклов

  • Уменьшение силы операции

  • Линеаризация массивов

  • Удаления бесполезных операторов

  • Ассоциативности

  • Дистрибутивности

  1. Методы оптимизации циклов включают в себя

  • Вынесение кода или чистку циклов

  • Слияние циклов

  • Разъединение циклов

  • Развертывание циклов

  • Обобщение циклов

  1. Выберите верные утверждения

  • Линеаризация массивов подразумевает , то, что массивы хранятся в памяти как одномерные, поэтому выходной код генерируется как если бы массив был одномерным

  • Развертывание циклов означает уменьшение числа повторений за счет выполнения нескольких операций нового цикла вместо одной в старом цикле

  • Уменьшение силы операции подразумевает замену одной операции другой, выполняемой быстрее

  • Уменьшение силы операции подразумевает , то, что массивы хранятся в памяти как одномерные, поэтому выходной код генерируется как если бы массив был одномерным

  • Линеаризация массивов означает уменьшение числа повторений за счет выполнения нескольких операций нового цикла вместо одной в старом цикле

  • Развертывание циклов подразумевает замену одной операции другой, выполняемой быстрее