Buscar

aula9 e lista de exercicios

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 4 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

LISTA DE EXERCÍCIOS 
 
1. Por que é útil para um programador ter alguma experiência no projeto de 
linguagens, mesmo que ele nunca projete uma linguagem de programação? 
 
2. Qual é a desvantagem de ter muitas características em uma linguagem? 
 
3. Cite um exemplo da falta de ortogonalidade no projeto da linguagem C (ou Java, 
escolha uma das duas). 
 
4. Por que verificar os tipos dos parâmetros de um subprograma é importante? 
 
5. Dê um exemplo de dois critérios de projeto de linguagens que estão em conflito 
direto um com o outro. 
 
6. Quais são os três métodos gerais de implementar uma linguagem de programação? 
 
7. Defina tipos ordinais e de enumeração. 
 
8. Defina ordem principal de linha e ordem principal de coluna. 
 
9. Defina união, união livre e união discriminada. 
 
10. Quais são os dois problemas comuns com ponteiros? 
 
11. Defina linguagem fortemente tipada. 
 
12. O que é uma conversão implícita? 
 
13. O que é a equivalência de tipos por nome? 
 
14. O que é a equivalência de tipos por estrutura? 
 
15. Escreva uma pequena discussão sobre o que foi perdido e o que foi ganho na 
decisão de projetistas de Java de não incluírem os ponteiros de C++. 
 
16. Explique como as regras de coerção podem enfraquecer o efeito benéfico da 
tipagem forte. 
 
17. Qual é o perigo em potencial dos nomes sensíveis a capitalização? 
 
18. De que forma as palavras reservadas são melhores do que as palavras-chave? 
 
19. Defina vinculação estática e vinculação dinâmica. 
 
20. Defina tempo de vida e escopo de uma variável. 
 
21. Qual o problema geral do escopo estático? 
 
22. O que é o ambiente de referenciamento de uma sentença? 
 
23. O que é um ancestral estático de um subprograma? O que é um ancestral dinâmico 
de um subprograma? 
 
24. Quais são as vantagens de constantes nomeadas. 
 
25. Algumas linguagens de programação não têm tipos. Quais são as vantagens e 
desvantagens de não ter tipos em uma linguagem? 
 
26. Assuma que o seguinte programa Ada foi compilado e executado usando regras de 
escopo estático. Que valor de X é impresso no procedimento Sub1? Sob regras de 
escopo dinâmico, qual o valor de X é impresso no procedimento Sub1? 
procedure Main is 
X : Integer; 
procedure Sub1 is 
begin -- de Sub1 
Put(X); 
 end; -- de Sub1 
 procedure Sub2 is 
 X : Integer; 
 begin -- de Sub2 
 X := 10; 
 Sub1 
 end; -- de Sub2 
 begin -- de Main 
 X := 5; 
 Sub2 
 end -- de Main 
 
27. Defina precedência de operador e associatividade de operador. 
 
28. Defina efeito colateral funcional e transparência referencial. 
 
29. O que é um operador sobrecarregado? 
 
30. O que é a avaliação em curto-circuito? 
 
31. Considere o seguinte programa em C: 
 
int fun(int *i){ 
 *i += 5; 
 return 4; 
} 
void main(){ 
 int x = 3; 
 x = x + fun(&x); 
} 
 
Qual é o valor de x após a sentença de atribuição em main, assumindo que: 
a) Os operandos são avaliados da esquerda para a direita. 
b) Os operandos são avaliados da direita para a esquerda.

Outros materiais