Рубрики

ВОРОТА | GATE CS 2012 | Вопрос 34

Рассмотрим программу, приведенную ниже, на блочно-структурированном псевдо-языке с разрешенной лексической областью действия и вложением процедур.

Program main;
  Var ...
  
    Procedure A1;
     Var ...
     Call A2;
    End A1
    
    Procedure A2;
      Var ...
  
      Procedure A21;
        Var ...
        Call A1;
        End A21
        
    Call A21;
  End A21
  
    Call A1;
  End main.

Рассмотрим цепочку вызовов: Main-> A1-> A2-> A21-> A1
Правильный набор записей активации вместе с их ссылками доступа определяется следующим образом:

(А) А
(Б) Б
(С) С
(D) D

Ответ: (D)
Объяснение: Ссылка доступа определяется как ссылка на запись активации ближайшего лексически заключающего блока в тексте программы, поэтому ближайшие блоки включения соответственно для A1, A2 и A21 являются основными, основными и A2, так как записи активации создаются во время входа в процедуру и уничтожаются. во время выхода из процедуры.

Решение:
Ссылка на запись активации ближайшего лексически вмещающего блока в тексте программы. Это зависит от статического текста программы.

Здесь последовательность вызова задается как,

Main-> A1-> A2-> A21-> A1
Теперь A1, A2 определены в разделе Main… Таким образом, линия доступа A1, A2 указывает на основной канал A21, который определяется в A2, следовательно, его линия доступа будет указывать на A2.

Ссылка:
http://www.cs.nyu.edu/courses/spring08/G22.2130-001/lectures/lecture-13.html

Это решение предоставлено Nitika Bansal

Тест на этот вопрос

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

ВОРОТА | GATE CS 2012 | Вопрос 34

0.00 (0%) 0 votes