|
|
Line 1: |
Line 1: |
| {{TOCright}}
| | #REDIRECT [[ist:Compiladores/Aula Prática 11]] |
| == 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:
| |
| | |
| # Indique justificadamente qual a área de memória de dados a que pertence.
| |
| # 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:
| |
| | |
| <c>
| |
| char *x = "cadeia de caracteres";
| |
| char y[] = "cadeia de caracteres";
| |
| </c>
| |
| | |
| == 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.
| |
| | |
| [[category:Compiladores]] | |
| [[category:Ensino]]
| |