|
|
(2 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
| {{TOCright}}
| | #REDIRECT [[ist:Code Generation/Exercise 8]] |
| == static ==
| |
| | |
| 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.
| |
| | |
| == Memory Organization ==
| |
| | |
| Discuta as diferenças, se existirem, entre as variáveis x e y, declaradas como se segue, na linguagem C:
| |
| <c>
| |
| char *x = "cadeia";
| |
| char y[] = "cadeia";
| |
| char z[] = { 'c', 'a', 'd', 'e', 'i', 'a' };
| |
| </c>
| |
| | |
| == Polymorphism ==
| |
| | |
| Indique justificadamente se a linguagem C possui algum tipo de polimorfismo. Em caso afirmativo, apresente exemplos.
| |
| | |
| == Symbols ==
| |
| | |
| Considere a tabela de símbolos fornecida na 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?
| |
| | |
| == Code Generation ==
| |
| | |
| Considere uma função, denominada raizes, que recebe três argumentos correspondentes aos factores de uma equação de 2º grau (ax²+bx+c) e que calcula o número de raízes. Escreva a sequência de instruções Postfix correspondentes à implementação da função raizes.
| |
| | |
| [[Category:Compilers]] [[Category:Teaching]]
| |