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

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

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

Данная функция:
int yylex (void){int ch;while ((ch = getchar ()) == ' ');if (isdigit (ch)){ungetc (ch, stdin); scanf (%i, &yylval);return NUMBER_LC;}return ch;}
вычисляет следующую пару значений:

(Ответ считается верным, если отмечены все правильные варианты ответов.)

Варианты ответа
лексический класс(Верный ответ)
атрибут, связанный с семантическим классом
семантический класс
атрибут, связанный с лексическим классом(Верный ответ)
Похожие вопросы
Следующая процедура:
int Factor (){   char ch = getChar();   if (isDigit (ch)) return getValue(ch);   if (ch == '(')    {      int result = Formula ();      if (getChar() == ')') return result;      error ("Неожиданный символ");      return 0;   }   return error ("Неожиданный символ"); }
вычисляет значение:
Следующий набросок программы:
q = q0;c = GetChar();while (c != eof) {  q = move (q, c);  c = GetChar();}if (q is in F) return "yes";else return "no"; 
демонстрирует (предполагается, что входная лента заканчивается символом end_of_file):
Данная программа:
var in : integer;function Digits (integer n) : integer;var m : integer;begin  if n < 10 then return n  else begin    m := n div 10;    return n - m*10 + Digits (m);  end;end; begin  read (in);  writeln(Digits(in));end.
используется:
С помощью какого атрибута в данном примере:
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:
Следующая программа:
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;      }   }}
вычисляет:
В данном примере:
goto (I, X) {   J={};         for (каждой ситуации [A->w.Xv] из I) {      J+=[A->wX.v];   }   return closure (J);}
происходит:
В качестве алфавита операторов данной программы:
int F (int a, int b){  int g = a, m = b;  if (a < b) {g = b; m = a;}  while (m)   {    int s = g;    g = m;    m = s % m;  }  return g;}
выступает следующее множество:
Данная программа:
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");	}    }}
может использоваться в качестве примера:
В данном примере:
struct S {int a; int b};int F (int n, struct S * v){int i, s = 0;for (i=0; i<n; i++){	int q = (v+i)->a - (v+i)->b; --- 1	if (q < 0) s += (v+i)->a + (v+i)->>b;  --- 2else (v+i)->b = q;(v+i)->a = (v+i)->b;   --- 3}return s;}
эквивалентны следующие вхождения выражения (v+i)->b:
При таком описании класса:
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; }	}}
допустимо следующее использование: