Compiladores/Aula Prática 11: Difference between revisions

From Wiki**3

Root (talk | contribs)
Root (talk | contribs)
No edit summary
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{TOCright}}
== Tópicos ==
== Tópicos ==
Processamento semântico e geração de código Postfix (não optimizado).


== Problema ==
== Exercício 1 ==
Considere em C uma variável declarada '''static''' no corpo de uma função:


== Resolução ==
# Indique justificadamente qual a área de memória de dados a que pertence.
As ligações acima contêm as soluções para os exercícios propostos.
# Comente justificadamente se o valor desta variável pode ser modificado a partir de outra função.
# Caso a função que contém a variável '''static''' seja invocada recursivamente, quantas instâncias da variável existem e, caso existam múltiplas, os valores são iguais ou distintos? Justifique.
# Indique justificamente se uma função pode devolver o endereço de uma variável declarada static sem criar ''dangling references''.
 
== Exercício 2 ==
Discuta as diferenças, se existirem, entre as variáveis '''x''' e '''y''', declaradas como se segue, na linguagem C:
 
<source lang="c">
char *x = "cadeia de caracteres";
char y[] = "cadeia de caracteres";
</source>
 
== Exercício 3 ==
Indique justificadamente se a linguagem C possui algum tipo de polimorfismo. Em caso afirmativo, apresente exemplos.
 
== Exercício 4 ==
Considere a tabela de símbolos fornecida com a CDK. Que modificações seriam necessárias se fosse necessário permitir a definição de espaços de nomes distintos para variáveis, funções e constantes?
 
== Exercício 5 ==
Escreva a sequência de instruções Postfix que calcula o número de raízes de uma equação de 2º grau ''(ax²+bx+c)'' com base nos factores dessa equação.
 
Utilize apenas variáveis globais.
 
== Resoluções ==
* Ver: [[Code Generation]]. Procurar resolver sem consultar.  


Procurar resolver sem consultar.
[[category:Compiladores]]
[[category:Compiladores]]
[[category:Ensino]]
[[category:Ensino]]

Latest revision as of 10:20, 3 May 2019

Tópicos

Processamento semântico e geração de código Postfix (não optimizado).

Exercício 1

Considere em C uma variável declarada static no corpo de uma função:

  1. Indique justificadamente qual a área de memória de dados a que pertence.
  2. Comente justificadamente se o valor desta variável pode ser modificado a partir de outra função.
  3. Caso a função que contém a variável static seja invocada recursivamente, quantas instâncias da variável existem e, caso existam múltiplas, os valores são iguais ou distintos? Justifique.
  4. Indique justificamente se uma função pode devolver o endereço de uma variável declarada static sem criar dangling references.

Exercício 2

Discuta as diferenças, se existirem, entre as variáveis x e y, declaradas como se segue, na linguagem C:

char *x = "cadeia de caracteres";
char y[] = "cadeia de caracteres";

Exercício 3

Indique justificadamente se a linguagem C possui algum tipo de polimorfismo. Em caso afirmativo, apresente exemplos.

Exercício 4

Considere a tabela de símbolos fornecida com a CDK. Que modificações seriam necessárias se fosse necessário permitir a definição de espaços de nomes distintos para variáveis, funções e constantes?

Exercício 5

Escreva a sequência de instruções Postfix que calcula o número de raízes de uma equação de 2º grau (ax²+bx+c) com base nos factores dessa equação.

Utilize apenas variáveis globais.

Resoluções