игра брюс 2048
Главная / Программирование / Разработка компиляторов / Тест 14

Разработка компиляторов - тест 14

Упражнение 1:
Номер 1
Трансляторы, ориентированные на платформу .NET, должны генерировать код:

Ответ:

 (1) SIL 

 (2) MSIL 

 (3) Java 

 (4) ILM 


Номер 2
MSIL, является:

Ответ:

 (1) виртуальной машиной 

 (2) языком высокого уровня некоторой виртуальной машины 

 (3) языком высокого уровня 

 (4) языком ассемблера некоторой виртуальной машины 


Номер 3
Программы на MSIL переводятся в исполняемый код реального процессора:

Ответ:

 (1) лишь непосредственно перед исполнением 

 (2) задолго до исполнения 

 (3) после исполнения 

 (4) лишь непосредственно после исполнения 


Упражнение 2:
Номер 1
Программы на MSIL переводятся в исполняемый код реального процессора c помощью:

Ответ:

 (1) Just-In-Time compilation 

 (2) динамической компиляции 

 (3) компиляции времени исполнения 

 (4) статической компиляции 


Номер 2
Основными чертами архитекутры виртуальной машины MSIL являются:

Ответ:

 (1) машина является стековой, причем стек является статически типизированным 

 (2) ячейки стека представлены как 4-байтовые или 8-байтовые знаковые целовые  

 (3) стек используется как правило только для хранения промежуточных результатов вычисления  

 (4) большинство команд MSIL получают свои аргументы на стеке, удаляют их со стека и помещают вместо них результат(ы) вычисления 

 (5) машина является объектно-ориентированной 


Номер 3
В MSIL существуют следующие варианты хранения переменных:

Ответ:

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

 (2) в локальной области, которая выделяется при входе в метод 

 (3) в глобальной области, которая выделяется при входе в метод 

 (4) внутри объекта, размещенного в куче 

 (5) внутри объекта, размещенного в блоке 


Упражнение 3:
Номер 1
Статическая область памяти предназначена:

Ответ:

 (1) для статических полей класса 

 (2) глобальных переменных 

 (3) констант 

 (4) для автоматических переменных 

 (5) для параметров 


Номер 2
Локальная память выделяется:

Ответ:

 (1) для временных переменных 

 (2) для автоматических переменных 

 (3) для констант 

 (4) для параметров 


Номер 3
Куча предназначена для хранения:

Ответ:

 (1) динамических объектов 

 (2) статических объектов 

 (3) глобальных объектов 

 (4) локальных объектов 


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

Ответ:

 (1) из вложенной процедуры к переменным из объемлющей среды 

 (2) из вложенной процедуры к константам из объемлющей среды 

 (3) из вложенной процедуры к переменным из внешней среды 

 (4) из вложенной процедуры к переменным из глобальной среды 


Номер 2
Если язык допускает использование вложенных процедур в качестве переменных процедурного типа, то единственным способом для реализации такого механизма в безопасном режиме является:

Ответ:

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

 (2) построение в объемлющей среде замыкания процедуры 

 (3) построение в куче замыкания процедуры 


Номер 3
Машина MSIL ориентирована на безопасность работы:

Ответ:

 (1) с указателями 

 (2) с полями 

 (3) с переменными 

 (4) с константами 


Упражнение 5:
Номер 1
В безопасном режиме указатели на локальные переменные могут быть только:

Ответ:

 (1) переданы параметрами в другие функции 

 (2) переданы параметрами в другие указатели 

 (3) переданы параметрами в другие объекты 

 (4) переданы параметрами в другие операторы 


Номер 2
Присваивание указателей на локальные переменные в другие переменные:

Ответ:

 (1) запрещено 

 (2) разрешено 

 (3) разрешено в безопасном режиме 

 (4) разрешено в специальном режиме 


Номер 3
В .NET SDK входит программа PEVerify, которая осуществляет:

Ответ:

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

 (2) проверку типовой корректности входящего модуля 

 (3) проверку типовой корректности исполняемого модуля 

 (4) проверку корректности главного модуля 


Упражнение 6:
Номер 1
Какая команда MSIL осуществляет загрузку константы:

Ответ:

 (1) ldind 

 (2) ldflda 

 (3) ldstr 

 (4) ldimm 


Номер 2
Какая команда MSIL осуществляет загрузку адреса статического поля:

Ответ:

 (1) ldsflda 

 (2) ldloca 

 (3) ldflda 

 (4) ldstr 


Номер 3
Какая команда MSIL осуществляет загрузку адреса поля объекта:

Ответ:

 (1) ldind 

 (2) ldloca 

 (3) ldsflda 

 (4) ldstr 

 (5) ldflda 

 (6) ldimm 


Упражнение 7:
Номер 1
Для загрузки значений на стек предназначены следующие команды MSIL:

Ответ:

 (1) ldsfld 

 (2) ldloc 

 (3) ldloca 

 (4) ldfld 


Номер 2
Команда stind берет со стека адрес значения вместе с самим значением:

Ответ:

 (1) и удаляет значение по выбранному адресу 

 (2) и записывает значение по произвольному адресу 

 (3) и удаляет значение по произвольному адресу 

 (4) и записывает значение по выбранному адресу 


Номер 3
Команды stloc, stfld, stsfld эквивалентны следующим парам команд:

Ответ:

 (1) ldxxxxa; stind 

 (2) ldxxxa; ldind 

 (3) ldxxxxa; stin 

 (4) ldxxxa; ldin 


Упражнение 8:
Номер 1
Команды целочисленной арифметики существуют в:

Ответ:

 (1) знаковом варианте 

 (2) локальном варианте 

 (3) глобальном варианте 

 (4) беззнаковом варианте 


Номер 2
К командам целочисленной арифметики относятся:

Ответ:

 (1) ADD 

 (2) SUB 

 (3) SUP 

 (4) DIV 

 (5) MUL 

 (6) MOD 


Номер 3
В MSIL существуют следующие команды вызова:

Ответ:

 (1) CALLGLOB 

 (2) CALL 

 (3) CALLVIRT 

 (4) CALLLOC 


Упражнение 9:
Номер 1
Если команда вызова снабжена префиксом tail, то это означает, что значение,  возвращаемое вызываемой процедурой, является также:

Ответ:

 (1) возвращаемым значением и для следующей процедуры 

 (2) возвращаемым значением и для предыдущей процедуры 

 (3) возвращаемым значением и для всех процедур 

 (4) возвращаемым значением и для вызывающей процедуры 


Номер 2
Какие команды MSIL реализуют функциональность упаковки и распаковки значений:

Ответ:

 (1) BOX 

 (2) OUTBOX 

 (3) INBOX 

 (4) UNBOX 


Номер 3
MSIL содержит следующие команды для обработки исключений:

Ответ:

 (1) THROW 

 (2) RETHROW 

 (3) ENDFINALLY 

 (4) ENDFILTER 

 (5) LEAVE 


Упражнение 10:
Номер 1
Следующая программа:using System;

class Fib
{
   public static void Main (String[] args)
   {
      int a = 1, b = 1;
      for (int i = 1; i != 10; ++i)
      {
         Console.WriteLine (a);
         int c = a + b;
         a = b; b = c;
      }
   }
}вычисляет:

Ответ:

 (1) ряды Фурье 

 (2) число Пи 

 (3) числа Фибоначчи 

 (4) тригонометрические функции 


Номер 2
В .NET предусмотрен специальный механизм доступа к метаданным приложения, который называется:

Ответ:

 (1) рефлексия 

 (2) распаковка 

 (3) генерация 

 (4) итерация 


Номер 3
Классы с каким суффиксом предназначены для генерации описываемых сущностей?

Ответ:

 (1) Builder 

 (2) Type 

 (3) Define 

 (4) Field 

 (5) Info 

 (6) Assembly 


Упражнение 11:
Номер 1
Структура MSIL задает определенную последовательность генерации кода, в которой код генерируется в во время следующих проходов:

Ответ:

 (1) все начинается с создания AssemblyBuilder 

 (2) на втором шаге создаются ModuleBuilders 

 (3) на третье шаге создается TypeBuilders для классов всех уровней 

 (4) на четвертом шаге создаются MethodBuilders и FieldBuilders 

 (5) на последнем шаге генерируется собственно код 


Номер 2
Данная программа:class LowLevelSample {
    public static void Run() {
	int i;
	i = 0;
	try {
	   Start:
             if (i == 10) throw new Exception();
             Console.WriteLine (i);
             i = i + 1;
             goto Start;
	}
	catch (Exception) { 
          Console.WriteLine ("Finished");
	}
    }
}может использоваться в качестве примера:

Ответ:

 (1) генерации кода для виртуальной машины 

 (2) рефлексии кода для виртуальной машины 

 (3) итерации кода для виртуальной машины 


Номер 3
Атрибут RunAndSave означает, что:

Ответ:

 (1) данная сборка может быть удалена с диска 

 (2) данная сборка может быть исполнена 

 (3) данная сборка может быть сохранена на диске 


Упражнение 12:
Номер 1
В случае наличия вложенных блоков их рекомендуется ограничивать вызовами:

Ответ:

 (1) BeginScope() и EndScope() 

 (2) DeclareLocal и DeclareGlobal 

 (3) StartTry и EndTry 

 (4) MarkLabel и DefineLabel 


Номер 2
Какой метод по массиву, содержащему типы параметров конструктора, находит в типе соответствующий конструктор:

Ответ:

 (1) GetConstructor 

 (2) OpCodes.Newobj 

 (3) GetMethod 

 (4) System.Exception 


Номер 3
Какой метод завершает генерацию try-catch блока:

Ответ:

 (1) EmitWriteLine 

 (2) BeginCatchBlock 

 (3) SetEntryPoint 

 (4) LowLevelSample 

 (5) EndExceptionBlock 

 (6) EndTry 




Главная / Программирование / Разработка компиляторов / Тест 14