(4 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | + | {{TOCright}} | |
+ | Small exercises and questions. | ||
+ | |||
+ | == static == | ||
Considere em C uma variável declarada static no corpo de uma função: | Considere em C uma variável declarada static no corpo de uma função: | ||
Line 7: | Line 10: | ||
# Indique justificamente se uma função pode devolver o endereço de uma variável declarada static sem criar dangling references. | # 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: | Discuta as diferenças, se existirem, entre as variáveis x e y, declaradas como se segue, na linguagem C: | ||
− | <c> | + | <source lang="c"> |
char *x = "cadeia"; | char *x = "cadeia"; | ||
char y[] = "cadeia"; | char y[] = "cadeia"; | ||
char z[] = { 'c', 'a', 'd', 'e', 'i', 'a' }; | char z[] = { 'c', 'a', 'd', 'e', 'i', 'a' }; | ||
− | </ | + | </source> |
− | + | == Polymorphism == | |
Indique justificadamente se a linguagem C possui algum tipo de polimorfismo. Em caso afirmativo, apresente exemplos. | 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? | 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. | 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:Compiladores]] |
+ | [[category:Ensino]] |
Small exercises and questions.
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";
char y[] = "cadeia";
char z[] = { 'c', 'a', 'd', 'e', 'i', 'a' };
Indique justificadamente se a linguagem C possui algum tipo de polimorfismo. Em caso afirmativo, apresente exemplos.
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?
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.