Тольяттинский государственный университет (Росдистант), ТГУ. Технологии компиляции (8785). Промежуточные и итоговый тесты. Ответы на вопросы.
Для Росдистант имеются и другие готовые работы. Пишем уникальные работы под заказ. Помогаем с прохождением онлайн-тестов. Пишите, пожалуйста, в личку (Евгений).
ИТОГОВЫЙ ТЕСТ (в базе более 40 вопросов)
Чему из перечисленного эквивалентно регулярное выражение «а?» ?
Выберите один ответ:
а
а|Y
а|ε
неправильное выражение
Какое из следующих утверждений о библиотеках неверно?
Выберите один ответ:
Сгенерированный код, включающий библиотеки, не может быть преобразован в самостоятельный код
Программисты могут писать свои собственные библиотеки
Преимущество библиотек в том, что они состоят из уже проверенного и скомпилированного кода.
Библиотеки могут включать функции для генерации случайных чисел или выполнения математических вычислений.
Пусть класс языков, принимаемых конечным автоматом, равен L1, а класс языков, представляемых регулярными выражениями, равен L2, тогда какое из выражений описывает их соотношение?
Выберите один ответ:
L1<L2
L1>=L2
L1 U L2 = .*
L1=L2
Что из перечисленного неверно?
Выберите один ответ:
программа выполняемая интерпретатором работает медленнее, чем скомпилированная
скомпилированный вариант программы легче отлаживать
код ассемблера легче воспринимать чем машинный код
программа машинного кода имеют привязку к аппаратному обеспечению и непереносимы на другую платформу
Согласно иерархии Хомского регулярные выражения относятся к к языку типа
Выберите один ответ:
0
1
2
3
Какое число токенов в следующей команде языка Си:
printf ( «i = %d, &i = %x», i, &i );
Выберите один ответ:
10
3
26
21
Что из следующего не может быть принято регулярной грамматикой?
Выберите один ответ:
L — множество чисел, делящихся на 2
L — множество двоичных дополнений
L — набор строк с нечетным числом 0
L — множество 0n1n
Какое из приведенных утверждений не верное:
Выберите один ответ:
Проверка типов выполняется перед синтаксическим разбором
Контекстно свободная грамматика может использоваться для спецификации лексических и синтаксических правил
Язык высокого уровня может при трансляции иметь несколько разных промежуточных представлений
Аргументы функции могут быть переданы в стеке
Рассмотрим следующую грамматику:
S -> axCd
X -> a | €
C -> a | d
Что из следующего верно?
Выберите один ответ:
FIRST(S)=(a,d}
FOLLOW(S)={ €, $ }
Эта грамматика не является грамматикой LL(1)
Это грамматика LL(1)
Когда выражение
sum=3+7
токенизировано, то какова категория токена = ?
Выберите один ответ:
Целочисленный литерал
Оператор сложения
Оператор присваивания
Идентификатор
В некоторых языках программирования L обозначает набор букв, а D обозначает набор цифр. Идентификатор может быть буквой, за которой следует любое количество букв или цифр. Укажите выражение, определяющее идентификатор:
Выберите один ответ:
(LD)*
(L|D)*
L(L|D)
L(L|D)*
Какое из следующих утверждений верно для языка C?
Выберите один ответ:
Это регулярный язык
Это контекстно-зависимый язык
Это контекстно-свободный язык
Не верного ответа
Задано регулярное выражение 0*(10*), Выберите выражение которое генерирует такой же язык из 0 и 1
Выберите один ответ:
0+(0|10) *
(0|1)*10(0|1) *
(1*0)*1*
Не верного ответа
Рассмотрим следующую ситуацию. Многие определения языков программирования требуют, чтобы компилятор сообщал об ошибке каждый раз, когда вещественное число используется для индексации массива.
Данная ситуация рассматривается в _______
Выберите один ответ:
Синтаксический анализ
Семантический анализ
Лексический анализ
Этап генерации кода
Механизм выделение и освобождение динамической памяти из кучи использует
Выберите один ответ:
механизм стека «последний ушел первым» (LIFO)
механизм очереди «первый пришел, первый ушел» (FIFO)
механизм «первым пришел – последним вышел» (FILO)
случайный способ
Левая факторизация — это грамматическое преобразование, полезное для создания грамматики, пригодной для
Выберите один ответ:
LL(1) синтаксического анализатора.
LR(1) синтаксического анализатора.
SLR синтаксического анализатора.
LALR синтаксического анализатора
Регулярная грамматика является подмножеством
Выберите один ответ:
контекстно-свободной грамматики
контекстно-зависимой грамматики
английской грамматики
неограниченной грамматики
Какое множество символов соответствует регулярному выражению
«(a|b)»?
Выберите один ответ:
{a}
{a, b}
{a, b, ε}
{b}
Когда выражение
sum=3+7
токенизировано, то какова категория токена sum ?
Выберите один ответ:
Целочисленный литерал
Оператор сложения
Оператор присваивания
Идентификатор
Выберите предложения которые порождает грамматика
S->aSa | bSb | a | b
над алфавитом {a, b}
Выберите один или несколько ответов:
abbba
abababbbaab
babaaabab
aba
aaa
Язык регулярен тогда и только тогда, когда его предложения принимаются:
Выберите один ответ:
DFA — детерминированным конечным автоматом
PDA — карманным ПК
принимается машиной Тьюринга
могут использоваться при анализе текстов на естественных языках
Выход лексического анализатора это:
Выберите один ответ:
Дерево разбора исходной программы
Промежуточный код
Машинный код
Поток токенов
Когда выражение
sum=3+7
токенизировано, то какова категория токена 3?
Выберите один ответ:
Целочисленный литерал
Оператор сложения
Оператор присваивания
Идентификатор
Каким атрибутом можно аннотировать дерево синтаксического анализа, при обходе дерева в обратном порядке и оценке атрибутов в узле N, при выходе из узла N в последний раз
Выберите один ответ:
S-атрибут
Унаследованный атрибут
Какое из следующих утверждений верно?
Выберите один ответ:
Парсер LR(1) или канонический LR более мощный, чем парсер LALR
Парсер SLR более мощный, чем LALR
Парсер LALR более мощный, чем канонический LR или LR(1)
Парсер SLR, канонический LR и парсер LALR имеют одинаковую мощность.
Что из перечисленных терминов является типом лексемы?
Выберите один ответ:
Идентификаторы
Константы
Ключевые слова
Все ответы верны
Генерация промежуточного кода на основе абстрактной модели машины полезна в компиляторах, потому что:
Выберите один ответ:
Проще реализовать синтаксически управляемый перевод для генерации промежуточного кода
Трудно преобразовать код из программы на языке высокого уровня в целевой код.
Повышает переносимость системной программы компилятора.
Упрощает выполнение лексического и синтаксического анализа.
Какова функция фазы синтаксического анализа?
Выберите один ответ:
распознавать язык и вызывать соответствующие процедуры действий, которые будут генерировать дерево разбора входной строки
Создать таблицу литералов и таблицу идентификаторов
Построить единую таблицу символов
Разобрать исходную программу на основные элементы или токены языка
Какая часть компилятора активно использовала концепцию грамматики?
Выберите один ответ:
Оптимизация кода
Генерация кода
Лексический анализ
Синтаксический анализ
Какое из следующих утверждений верно?
Выберите один ответ:
Все регулярные грамматики не зависят от контекста, но не наоборот
Всякая контекстно-свободная грамматика является регулярной грамматикой, но не наоборот
Регулярная грамматика и контекстно-свободная грамматика представляют собой одно и то же.
Нет верного ответа
Процесс поиска совпадающих токенов обычно описывается с помощью?
Выберите один или несколько ответов:
Контекстно-зависимой грамматики
Конечные автоматы
Регулярные выражения
Лексический анализ
Общий синтаксический анализ
Интерпретационный анализ
Синтаксический анализ
Какой из следующих компонентов важен для семантического анализа?
Выберите один ответ:
Lex ( flex )
YACC
Таблица символов
Проверка типов
Как называется дерево синтаксического анализа, показывающее значение атрибутов в каждом узле.
Выберите один ответ:
аннотированное дерево синтаксического анализа
семантическое дерево
синтаксическое дерево
Когда выражение
sum=3+7
токенизировано, то какова категория токена + ?
Выберите один ответ:
Целочисленный литерал
Оператор сложения
Оператор присваивания
Идентификатор
Лексический анализатор выполняет:
Выберите один ответ:
Удаление комментариев
Удаление пробелов
Разбиение входного потока символов на токены
Все ответы верны
Язык, описываемый регулярным выражением
(0|1)*0(0|1)*0(0|1)* над алфавитом {0, 1} — это набор всех строк,
Выберите один ответ:
содержащие не менее двух единиц
содержащие не менее двух нулей
которые начинаются и заканчиваются либо 0, либо 1
содержащие подстроку 00
Область действия, переменной в исходной программе называется?
Выберите один ответ:
scope, область видимости
life time, продолжительность жизни
Домен
Все ответы верны
Правило грамматики: aAb->agb принадлежит к категории
Выберите один ответ:
Регулярный язык
Контекстно-свободный язык
Контекстно-зависимый язык
Рекурсивно перечислимый язык
Функция хеширования используется при работе с таблицей символов для операций
Выберите один ответ:
поиска
вставки
обновления
удаления
Суть лексического анализа заключается в разбиении последовательности символов на
Выберите один ответ:
Группы
Токены
Пункты
Кластеры
Каковы представления трех-адресного кода?
Выберите один или несколько ответов:
Четверки
Тройки
Косвенные тройки.
Контекстно-свободная грамматика неоднозначна, если...
Выберите один ответ:
Грамматика содержит нетерминалы
Производит более одного дерева синтаксического анализа
Одно из правил имеет два нетерминала рядом
Ничего из перечисленного
В процессе__________ выполняются определенные проверки, чтобы убедиться, что компоненты программы согласуются друг с другом.
Выберите один ответ:
Лексический анализ
Синтаксический анализ
Семантический анализ
Сентенциальный анализ предложений
Какая фаза компилятора также известна как сканер?
Выберите один ответ:
Генерация кода
Синтаксический анализ
Семантический анализ
Лексический анализ
Язык, порожденный грамматикой
S->aSa | bSb | a | b
над алфавитом {a, b} есть множество из
Выберите один ответ:
Строки, которые начинаются и заканчиваются одним и тем же символом
Все палиндромы нечетной и четной длины
Все палиндромы нечетной длины
Все палиндромы четной длины
В компиляторе _______________ проверяет каждый символ исходного текста.
Выберите один ответ:
Лексический анализатор
Синтаксический анализатор
Генератор кода
Оптимизатор кода
Конфигурация синтаксического анализатора LR — это пара,
(s0 X1 s1 X2 s2 … Xm sm , ai ai+1 … an $)
первый компонент которой — содержимое стека, а второй компонент ...
Выберите один ответ:
Исходный код
Объектный код
Машинный код
Не разобранные токены
Какие из атрибутов синтаксически управляемой трансляции предназначены для генерации 3х-адресного кода?
Выберите один или несколько ответов:
E.place, имя, которое будет содержать значение E
E.code, последовательность 3-адресных операторов, определяющих значение E.
E.type, определяет тип выражения
E.val, задает значение выражения
Какие инструкции используются для вызова подпрограммы?
Выберите один ответ:
MOV
GOTO
MOV and GOTO
HALT
Чему из перечисленного эквивалентно регулярное выражение Y*
Выберите один или несколько ответов:
ε
Y
0
1
Какой из перечисленных парсеров самый мощный?
Выберите один ответ:
SLR
LALR
LL(1)
LR(1) или канонический LR
---
ПРОМЕЖУТОЧНЫЙ ТЕСТ 1
Какова роль лексического анализатора?
Выберите один или несколько ответов:
Считывать входные символы и формировать на выходе последовательность токенов
Удаление пробелов, символов новой строки и табуляции
Удаление комментариев
Формирует дерево разбора
Выберите из приведенных ниже строк соответствующих регулярному выражению b(a|b)*:
Выберите один или несколько ответов:
b
ababab
baaaab
ab
Рассмотрим следующее утверждение перевода
Р=k+r*60;
Тогда какое из следующих утверждений о фазе лексического анализа НЕ верно?
Выберите один ответ:
Когда идентификатор r найден, лексический анализатор генерирует токен например id
Когда идентификатор r найден, лексический анализатор заносит лексему r в таблицу символов, если ее там еще нет.
Лексическое значение, связанное с появлением id (токен, созданного благодаря r), указывает на запись в таблице символов для r.
В таблице символов для r создается атрибут тип и задается его значение
Построить регулярное выражение для языка
L= {w ε{a,b} | w заканчивается на abb}
Выберите один или несколько ответов:
a+b*ab*b
a+b*abb
(a|b)*abb
ab*ab+
Укажите регулярное выражение для описания языков, состоящих из строк четной длины, состоящих из символов a и b.
Выберите один или несколько ответов:
((a|b)(a|b))*
(a)*(b)*
(aa|bb|ba|ab)*
a+b+
Выберите из приведенных ниже строк соответствующих регулярному выражению a*b:
Выберите один или несколько ответов:
b
ababab
aaaab
ab
Выберите из приведенных ниже строк соответствующих регулярному выражению ba+b*:
Выберите один или несколько ответов:
ba
baaaabb
babbb
abb
Какой из перечисленных инструментов используется для группировки символов в токены в компиляторе:
Выберите один ответ:
Парсер
Оптимизатор кода
Генератор кода
Сканер
Регулярное выражение 0*(10*)* обозначает тот же набор, что и
Выберите один ответ:
(1*0)*1*
0|(0|10)*
(0|1)*10(0|1)*
Ни один из них
____________ может обнаруживать ошибки, когда символы, оставшиеся во входных данных, не образуют ни одной лексемы языка.
Выберите один ответ:
Этап синтаксического анализа
Этап семантического анализа
Фаза лексического анализа
Нет верного ответа
Какое из приведенных ниже регулярных выражений определяет язык, содержащий все возможные строки четной длины в алфавите (0, 1).
Выберите один ответ:
1|0(1|0)*
(0|1)(1|0)*
(1|0)
(00|0111|10)*
С какой из следующих ситуаций легко справляется обработчик ошибок?
Выберите один или несколько ответов:
Возможно, лексический анализатор не сможет продолжить работу, поскольку следующая лексема в исходной программе написана с ошибкой.
При вводе информации в таблицу символов процедура управления таблицей может обнаружить идентификатор, который был объявлен более одного раза с противоречивыми атрибутами.
Генератор промежуточного кода может обнаружить оператор, чьи операнды имеют несовместимые типы.
Какое из приведенных ниже регулярных выражений задает строки из 0 и 1, в которых содержится последовательность из двух нулей?
Выберите один ответ:
1|(0|1)*
(0|1)*01011
(0|1)*00(0|1)*
0*1*2*
Какое из приведенных ниже регулярных выражений задает строки из 0 и 1, в которых не содержится двух последовательных нулей?
Выберите один ответ:
(0|1)
(0|1)*
(0?) (1|10)*
(0|1)*
ПРОМЕЖУТОЧНЫЙ ТЕСТ 2
Сколько существует типов синтаксического анализа?
Выберите один ответ:
Пять
Четыре
Три
Два
Рассмотрим правила грамматики
S->AA
A->aa
A->bb
Выбирете язык, заданный этими правилами грамматики.
Выберите один ответ:
L = {abab, abaa, aaab, baaa}
L = {aaaa, aabb, bbaa, bbbb}
L = {aaab, baba, bbaa, bbb}
L = {aaaa, abab, bbaa, aaab}
Проверка типа обычно выполняется во время:
Выберите один ответ:
Оптимизация кода
Лексический анализ
Синтаксический анализ
Синтаксически направленный перевод
Какой из перечисленных синтаксических анализаторов наиболее мощный?
Выберите один ответ:
LR(0)
LL(1)
LALR
LR(1)
LR анализ означает:
Выберите один ответ:
Слева направо
Свертка слева направо
Справа налево
Слева направо, правый вывод и применение правил грамматики в обратном порядке
Как называется процесс, который определяет, могут ли токены быть сгенерированы грамматикой?
Выберите один ответ:
анализ
распознавание (recognizing)
перевод
разбор (parsing)
В каком из перечисленных деревьев лист указывает на операнд, а внутренний узел представляет оператор:
Выберите один ответ:
Семантическое дерево
Структурированное дерево
Дерево разбора
Синтаксическое дерево
Какой из перечисленных операторов является абстрактной формой промежуточного кода:
Выберите один ответ:
промежуточный код
адрес
двухадресный код
трех-адресный код
Какая из следующих функций называется канонической коллекцией элементов LR(0):
Выберите один ответ:
FIRST
FOLLOW
COMPUTE
GOTO
Какой из перечисленных синтаксических анализаторов строит дерево синтаксического анализа из начального символа и преобразует его во входную строку?
Выберите один ответ:
Восходящий анализатор
Восходящий и нисходящий синтаксический анализатор
Ни один из перечисленных
Нисходящий
Рассмотрим правила грамматики
S→ aS | bA
A→ d | ccA
Какая из строк, получена этой грамматикой?
Выберите один ответ:
adabcca
aabccd
abcca
abababd
Какая из следующих опций не является функцией синтаксического анализатора сдвига-свертки:
Выберите один ответ:
свертка (reduce)
сдвиг (shift)
принимать (accept)
переход (transition)
Нисходящий синтаксический анализатор использует:
Выберите один ответ:
Крайний левый вывод в обратном порядке
Крайний левый вывод
Крайний правый вывод
Крайний правый вывод в обратном порядке
В синтаксическом дереве разбора символ оператора расположен в(о):
Выберите один ответ:
Корне
Узле
Листе
Внутреннем узле
Парсер рекурсивного спуска относится к классу:
Выберите один ответ:
Ни один из перечисленных
Анализ снизу вверх (Bottom-up parsing)
Предиктивный анализ
Анализ сверху вниз (Top-down parsing)