Leia com atenção as instruções abaixo.
Valor: 2,0 pontos na 2ª Nota.
Data da Entrega Limite: 01/10/2020
Escreva uma sentença de atribuição simples com um operador aritmético em alguma linguagem que você conheça. Para cada componente da sentença, liste as vinculações necessárias para determinar a semântica quando a sentença é executada. Para cada vinculação, indique o tempo de vinculação usado para a linguagem.
A questão utiliza a linguagem Ada, mas entender essa linguagem não é crucial para resolver a questão. Tudo que você precisa saber é que Ada permite a definição de procedimentos aninhados. Considere o seguinte esqueleto de programa em Ada:
procedure Main is
X : Integer;
procedure Sub3; -- Essa é uma declaração de Sub3
-- Ela permite que Sub3 a chame
procedure Sub1 is
X : Integer;
procedure Sub2 is
begin -- de Sub2
...
end; -- de Sub2
begin -- de Sub1
...
end; -- de Sub1
procedure Sub3 is
begin -- de Sub3
...
end; -- de Sub3
begin -- de Main
...
end; -- de Main
Assuma que a execução desse programa é na seguinte ordem de unidades:
Main chama Sub1 Sub1 chama Sub2 Sub2 chama Sub3
Considere o programa em C:
void fun(void) {
int a, b, c; /* definição 1 */
...
while (...) {
int b, c, d; /*definition 2 */
... <-------------- 1
while (...) {
int c, d, e; /* definition 3 */
... <------------- 2
}
... <-------------- 3
}
... <---------------- 4
}
Para cada um dos quatro pontos marcados nessa função, liste cada variável visível, com o número da sentença de definição que a define.
Considere o seguinte esqueleto de programa em C:
void fun1(void); /* protótipo */
void fun2(void); /* protótipo */
void fun3(void); /* protótipo */
void main() {
int a, b, c;
...
}
void fun1(void) {
int b, c, d;
...
}
void fun2(void) {
int c, d, e;
...
}
void fun3(void) {
int d, e, f;
...
}
Dada as seguintes sequências de chamadas e assumindo que o escopo dinâmico é usado, que variáveis são visíveis durante a execução da última função chamada? Inclua com cada variável visível o nome da função na qual ela foi definida.