Рубрики

Теория Компиляторов | Набор 2

Следующие вопросы были заданы на экзамене GATE CS.

1. Дано следующее выражение грамматики:
E -> E * F | F + E | F
F -> FF | Я бы
что из перечисленного правда? (GATE CS 2000)
(а) * имеет более высокий приоритет, чем +
(б) — имеет более высокий приоритет, чем *
(в) + и — имеют одинаковый приоритет
(d) + имеет более высокий приоритет, чем *

Ответ (б)

Приоритет в грамматике обеспечивается тем, что производственное правило с оператором с более высоким приоритетом никогда не создаст выражение с оператором с более низким приоритетом.
В данной грамматике '-' имеет более высокий приоритет, чем '*'


2. Рассмотрим программу P, которая состоит из двух исходных модулей M1 и M2, содержащихся в двух разных файлах. Если M1 содержит ссылку на функцию, определенную в M2, ссылка будет разрешена в (GATE CS 2004)

а) редактировать время
б) время компиляции
в) время соединения
г) время загрузки

Ответ (с)
Компилятор преобразует исходный код в целевой язык. Целевой язык обычно находится в двоичной форме, известной как объектный код. Как правило, объектный файл может содержать три вида символов:

* определенные символы, которые позволяют вызывать его другими модулями,
* неопределенные символы, которые вызывают другие модули, где эти символы определены, и
* локальные символы, используемые внутри объектного файла для облегчения перемещения.

Когда программа содержит несколько объектных файлов, компоновщик объединяет эти файлы в единую исполняемую программу, разрешая символы по мере их продвижения.
http://en.wikipedia.org/wiki/Compiler
http://en.wikipedia.org/wiki/Linker_%28computing%29


3. Что из следующего достаточно для преобразования произвольного CFG в грамматику LL (1)? (GATE CS 2003)

(а) Удаление левой рекурсии в одиночку
(б) Факторинг только грамматики
(c) Удаление левой рекурсии и разложение грамматики
(d) Ничего из вышеперечисленного

Ответ (г)
Удаление левой рекурсии и разложение грамматики недостаточно для преобразования произвольного CFG в LL (1) грамматику.
http://pages.cpsc.ucalgary.ca/~robin/class/411/LL1.3.html

4. Предположим, что парсер SLR для грамматики G имеет n1 состояние, а парсер LALR для G имеет n2 состояния. Связь между nl и n2 есть (GATE CS 2003)
(а) n1 обязательно меньше, чем n2
(б) n1 обязательно равно n2
(c) n1 обязательно больше, чем n2
(d) ничего из вышеперечисленного

Ответ (б)

http://parasol.tamu.edu/people/rwerger/Courses/434/lec10.pdf
http://dragonbook.stanford.edu/lecture-notes/Stanford-CS143/11-LALR-Parsing.pdf

Пожалуйста, смотрите GATE Corner для всех документов / решений / объяснений предыдущего года, учебных планов, важных дат, заметок и т. Д.

Пожалуйста, пишите комментарии, если вы найдете какие-либо неправильные ответы / объяснения, или вы хотите поделиться дополнительной информацией по темам, обсужденным выше.

    Рекомендуемые посты:

    Теория Компиляторов | Набор 2

    0.00 (0%) 0 votes