(Created page with "== Tópicos == == Problema == == Resolução == category:Compiladores category:Ensino") |
|||
(7 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). | ||
− | == | + | == 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: | ||
+ | |||
+ | <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. | ||
[[category:Compiladores]] | [[category:Compiladores]] | ||
[[category:Ensino]] | [[category:Ensino]] |
Processamento semântico e geração de código Postfix (não optimizado).
Considere em C uma variável declarada static no corpo de uma função:
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";
Indique justificadamente se a linguagem C possui algum tipo de polimorfismo. Em caso afirmativo, apresente exemplos.
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?
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.