Главная / Программирование /
Разработка компиляторов / Тест 3
Разработка компиляторов - тест 3
Упражнение 1:
Номер 1
Если оператор языка ассемблера отображается при трансляции чаще всего в одну машинную инструкцию, предложения языков более высокого уровня отображаются
Ответ:
 (1) в одну машинную инструкцию 
 (2) в несколько машинных инструкций 
 (3) в пустую машинную инструкцию 
 (4) в произвольную машинную инструкцию 
Номер 2
Трансляторы бывают следующих типов:
Ответ:
 (1) compiler 
 (2) interpreter 
 (3) analysis 
 (4) synthesis 
Номер 3
Какая часть компилятора разбивает исходную программу на составляющие ее элементы и создает промежуточное представление исходной программы:
Ответ:
 (1) analysis 
 (2) synthesis 
 (3) interpreter 
 (4) begin 
Упражнение 2:
Номер 1
Можно сказать, что результатом работы интерпретатора является:
Ответ:
 (1) "программа" 
 (2) "код" 
 (3) "число" 
 (4) "исполняемый файл" 
Номер 2
Для интерпретатора верны следующие утверждения:
Ответ:
 (1) анализирует программу на входном языке 
 (2) создает промежуточное представление 
 (3) не создает никакой новой программы 
 (4) выполняет операции, содержащиеся в тексте программы 
Номер 3
Цепочка символов, составляющая исходную программу на языке программирования является:
Ответ:
 (1) входом компилятора  
 (2) выходом компилятора 
 (3) процессом компиляции 
 (4) процессом интерпретации 
Упражнение 3:
Номер 1
Крайне важной частью процесса трансляции является:
Ответ:
 (1) исправление ошибок, допущенных во входной программе 
 (2) игнорирование ошибок, допущенных во входной программе 
 (3) точная диагностика ошибок, допущенных во входной программе 
Номер 2
Объектная программа может быть:
Ответ:
 (1) последовательностью абсолютных машинных команд 
 (2) последовательностью перемещаемых машинных команд 
 (3) программой на языке ассемблера 
 (4) программой на некотором другом языке 
Номер 3
Создание единого перемещаемого объектного сегмента из набора различных сегментов осуществляется программой, которая называется:
Ответ:
 (1) редактором сегментов 
 (2) редактором связей 
 (3) редактором объектов 
 (4) редактором наборов 
Упражнение 4:
Номер 1
Подход при котором применяется трансляция программы в ассемблер:
Ответ:
 (1) упрощает конструирование компилятора 
 (2) сокращает технологическую цепочку выполнения программы 
 (3) удлиняет технологическую цепочку выполнения программы 
 (4) усложняет конструирование компилятора 
Номер 2
Преимуществами трансляции в ассамблер являются:
Ответ:
 (1) уровень ассемблера выше, чем у машинного кода 
 (2) использование ассемблера позволяет отследить целый ряд ошибок 
 (3) порождаемый текст на ассемблере значительно читабельней, чем машинный код 
Номер 3
Для представления компилятора мы можем использовать так называемые:
Ответ:
 (1) P-диаграммы 
 (2) T-диаграммы 
 (3) R-диаграммы 
 (4) S-диаграммы 
 (5) E-диаграммы 
 (6) D-диаграммы 
Упражнение 5:
Номер 1
Написание компилятора может потребоваться в следующих условиях:
Ответ:
 (1) для различных языков 
 (2) для целевых платформ 
 (3) при создании новой компьютерной архитектуры 
Номер 2
Методиками разработки компиляторов являются следующие:
Ответ:
 (1) метод раскрутки 
 (2) метод генерации 
 (3) использование кросс-трансляторов 
 (4) использование виртуальных машин 
 (5) компиляция "на лету" 
Номер 3
В каком году Вирт написал с использованием раскрутки транслятор языка Pascal:
Ответ:
 (1) 1969 
 (2) 1970 
 (3) 1971 
 (4) 1972 
 (5) 1973 
Упражнение 6:
Номер 1
Для того, чтобы справиться с проблемой большой потери времени при написании и отладке компилятора на языке ассемблера был разработан:
Ответ:
 (1) метод раскрутки 
 (2) метод упаковки 
 (3) метод генерации 
 (4) метод распаковки 
Номер 2
Под переносимой (portable) программой понимается программа, которая:
Ответ:
 (1) может без перетрансляции выполняться на одной платформе 
 (2) не может без перетрансляции выполняться на нескольких платформах 
 (3) может без перетрансляции выполняться на нескольких платформах 
Номер 3
Компиляторы генерирующие объектную программу на языке более высокого уровня, чем язык ассемблера называют:
Ответ:
 (1) конвертерами 
 (2) генераторами 
 (3) кросс-компиляторами 
 (4) исполнителями 
Упражнение 7:
Номер 1
Одна из первых широко известных виртуальных машин была разработана в 70-х годах Н. Виртом:
Ответ:
 (1) при написании компилятора Pascal-P 
 (2) при написании компилятора Pascal 
 (3) при написании компилятора Simula-P 
 (4) при написании компилятора Simula 
Номер 2
Сегодня идея виртуальных машин приобрела широкую известность благодаря языку:
Ответ:
 (1) Java 
 (2) C++ 
 (3) C 
 (4) Fortran 
Номер 3
Компиляторы языка Java генерируют:
Ответ:
 (1) бит-код 
 (2) объектный код 
 (3) байт-код 
Упражнение 8:
Номер 1
Для того, чтобы увеличить скорость работы приложений, была разработана технология:
Ответ:
 (1) compiling 
 (2) Just-In-Time compiling 
 (3) Just compiling 
 (4) Fats compiling 
Номер 2
Использование какой связки позволяет заметно повысить скорость выполнения исходной программы:
Ответ:
 (1) "компилятор+интерпретатор+JIT-компилятор" 
 (2) "интерпретатор+JIT-компилятор" 
 (3) "компилятор+интерпретатор" 
 (4) "компилятор+интерпретатор+JIT-компилятор+интепретатор" 
Номер 3
Процесс создания компилятора можно свести к решению нескольких задач, которые принято называть:
Ответ:
 (1) compilation steps 
 (2) compilation phases 
 (3) compilation rounds 
 (4) compilation stages 
Упражнение 9:
Номер 1
Обычно компилятор состоит из следующих фаз:
Ответ:
 (1) лексический анализ 
 (2) синтаксический анализ 
 (3) видозависимый анализ 
 (4) оптимизация 
 (5) генерация кода 
Номер 2
В разборе входной цепочки и выделении некоторых более "крупных" единиц, которые удобнее для последующего разбора заключается задача:
Ответ:
 (1) фазы синтаксического анализа 
 (2) фазы видозависимого анализа 
 (3) фазы генерации кода 
 (4) фазы лексического анализа 
Номер 3
На этапе лексического анализа обычно выполняются такие действия, как:
Ответ:
 (1) удаление комментариев 
 (2) обработка директив условной компиляции 
 (3) игнорирование комментариев 
 (4) обработка операторов 
Упражнение 10:
Номер 1
После синтаксического анализа можно считать, что исходная программа преобразована:
Ответ:
 (1) в некоторое промежуточное представление 
 (2) в некоторое промежуточное состояние 
 (3) в объектное представление 
 (4) в исполняемый файл 
Номер 2
В дереве разбора программы внутренние узлы соответствуют:
Ответ:
 (1) операциям 
 (2) операндам 
 (3) классам 
 (4) подклассам 
Номер 3
Видозависимый анализ иногда называют:
Ответ:
 (1) semantic analysis 
 (2) syntax analysis 
 (3) lexical analysis 
 (4) code optimization 
Упражнение 11:
Номер 1
Обязательность описания переменных может служить примером:
Ответ:
 (1) предварительных условий 
 (2) контекстных условий 
 (3) дополнительных условий 
 (4) временных условий 
Номер 2
Наиболее распространенными оптимизациями являются:
Ответ:
 (1) константные вычисления 
 (2) уменьшение силы операций 
 (3) выделение общих подвыражений 
 (4) чистка циклов 
Номер 3
На этапе генерации кода необходимо решить множество следующих сопутствующих проблем:
Ответ:
 (1) распределение памяти 
 (2) распределение регистров 
 (3) распределение блоков 
 (4) распределение стеков 
Упражнение 12:
Номер 1
Какие фазы иногда объединяют вместе под названием front-end?
Ответ:
 (1) лексический анализ 
 (2) синтаксический анализ 
 (3) видозависимый анализ 
 (4) некоторые оптимизации 
Номер 2
Процесс обработки всего, возможно, уже преобразованного, текста исходной программы называется:
Ответ:
 (1) passes 
 (2) control 
 (3) analysis 
 (4) audit 
Номер 3
Backpatching - это:
Ответ:
 (1) внутренний интерфейс 
 (2) техника "заплат" 
 (3) внешний интерфейс 
 (4) тестирование программы