База ответов ИНТУИТ

Разработка компиляторов

<<- Назад к вопросам

Данная программа:
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");	}    }}
может использоваться в качестве примера:

(Отметьте один правильный вариант ответа.)

Варианты ответа
рефлексии кода для виртуальной машины
итерации кода для виртуальной машины
генерации кода для виртуальной машины(Верный ответ)
Похожие вопросы
Следующая программа:
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;      }   }}
вычисляет:
С помощью какого атрибута в данном примере:
using System.Runtime.InteropServices;public class AppMain {  [DllImport("user32.dll")]  public static extern int MessageBoxA(int handle, string message,    string caption,int flags);  public static void Main(){    MessageBoxA(0,"Hello World","Native Message Box",0);  }  [conditional("DEBUG")]   public static void SayHello() {     Console.WriteLine("Hello, World!"); return;   }}
обеспечивается взаимодействие с функцией MessageBoxA из Win32 API:
В данном примере:
public static void Main() {  Int32 v = 5;  Object o = v;  v = 123;  Console.WriteLine (v + ", " + (Int32) o);}
операция упаковки производится:
В данном примере:
using System; public delegate void EventHandler (string strText);class EventSource {  public event EventHandler TextOut;  public void TriggerEvent() {     if (TextOut != null) TextOut("Event triggered..."); }}class TestApp {  public static void Main() {    EventSource evsrc = new EventSource();    evsrc.TextOut += new EventHandler(CatchEvent);  evsrc.TriggerEvent();    evsrc.TextOut -= new EventHandler(CatchEvent);  evsrc.TriggerEvent();    TestApp theApp = new TestApp();    evsrc.TextOut += new EventHandler(theApp.InstanceCatch);     evsrc.TriggerEvent();  }public static void CatchEvent(string strText) { WriteLine(strText); }public void InstanceCatch(string strText) { WriteLine("Instance "+strText); }
происходят:
В данном примере:
void DumpHrefs(String inputString) {   Regex r;   Match m;   r = new Regex("href\\s*=\\s*(?:\"(?<1>[^\"]*)\"|(?<1>\\S+))",        RegexOptions.IgnoreCase|RegexOptions.Compiled);   for (m = r.Match(inputString); m.Success; m = m.NextMatch())   {     Console.WriteLine("Found href " + m.Groups[1] + " at "     + m.Groups[1].Index);   } } 
класс Regex:
При таком описании класса:
public class Matrix {	public const int n = 10;	public int[,] elements = new int[n,n];	public int this[int i, int j]	{		get { return elements[i,j]; }		set { elements[i,j] = value; }	}}
допустимо следующее использование:
Данная функция:
int yylex (void){int ch;while ((ch = getchar ()) == ' ');if (isdigit (ch)){ungetc (ch, stdin); scanf (%i, &yylval);return NUMBER_LC;}return ch;}
вычисляет следующую пару значений:
В данном примере:
goto (I, X) {   J={};         for (каждой ситуации [A->w.Xv] из I) {      J+=[A->wX.v];   }   return closure (J);}
происходит:
Поскольку для символа $ операция goto (I, $) не определена, можно выполнить:
Функция goto получает: