Buscar

Exercícios Capítulo 5 Paradigmas

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

Nome: Amanda Kelly Rodrigues Cândido
	Giovanna de Sousa Sampaio
	Giulianni dos Santos Oliveira
Professor: José Olímpio
PARADIGMAS DE LINGUAGENS DE PROGRAMAÇÃO
CAPÍTULO 5
1. Quais são as questões de projeto para nomes? 
2. Qual é o perigo em potencial dos nomes sensíveis a capitalização? 
	Em muitas linguagens, mais notavelmente nas baseadas em C, as letras maiúsculas e minúsculas nos nomes são distintas; ou seja, são sensíveis à capitalização. A sensibilidade à capitalização viola o princípio de projeto que diz que as construções de linguagem parecidas devem ter significados parecidos. Mas em linguagens cujos nomes de variáveis são sensíveis à capitalização, apesar de Rosa e rosa parecerem similares, não existe uma conexão entre elas
3. De que forma as palavras reservadas são melhores do que as palavras-chave? 
4. O que é um apelido? 
	Presença de dois ou mais métodos, ou nomes, distintos que referenciam a mesma célula de memória. É possível haver múltiplas variáveis com o mesmo endereço. Quando mais de uma variável pode ser usada para acessar a mesma posição de memória, elas são chamadas de apelidos (aliases). O uso de apelidos é um problema para a legibilidade porque permite que uma variável tenha seu valor modificado por uma atribuição à uma variável diferente.
5. Que categoria de variáveis de referência em C++ é sempre composta de apelidos? 
6. O que é o lado esquerdo de uma variável? O que é o lado direito? 
Em uma instrução de atribuição, o valor do lado direito é atribuído ao lado esquerdo. O lado esquerdo deve ser uma variável, uma propriedade ou um indexador.
	O endereço de uma variável é algumas vezes chamado de seu valor esquerdo (l-value), porque o endereço é o que é necessário quando uma variável aparece no lado esquerdo de uma atribuição
7. Defina vinculação e tempo de vinculação. 
8. Após o projeto e implementação de uma linguagem, quais são os quatro tipos de vinculações que podem ocorrer em um programa? 
· Vinculação de tipos estática: Uma declaração explícita é uma sentença em um programa que lista nomes de variáveis e especifica que elas são de um certo tipo. Uma declaração implícita é uma forma de associar variáveis a tipos por meio de convenções.
· Vinculação de tipos dinâmica: Com a vinculação de tipos dinâmica, o tipo de uma variável não é especificado por uma sentença de declaração, nem pode ser determinado pelo nome da variável. Em vez disso, a variável é vinculada a um tipo quando é atribuído um valor a ela em uma sentença de atribuição.
· Vinculação de atributos a variáveis: Uma vinculação é estática se ela ocorre pela primeira vez antes do tempo de execução e permanece intocada ao longo da execução do programa.
· Vinculações de tipos: Antes de uma variável poder ser referenciada em um programa, ela deve ser vinculada a um tipo de dados.
9. Defina vinculação estática e vinculação dinâmica. 
10. Quais são as vantagens e desvantagens de declarações implícitas? 
	A maioria das linguagens de programação projetadas desde meados dos anos 1960 requer a declaração explícita de todas as variáveis. Diversas linguagens cujos projetos iniciais foram feitos antes do final dos anos 1960 – notavelmente, o Fortran e o BASIC – têm declarações implícitas. Em Fortran, um identificador que aparece em um programa e não é explicitamente declarado é implicitamente declarado de acordo com a seguinte convenção: se o identificador começar com uma das letras I, J, K, L, M ou N, ou em suas versões minúsculas, ele é implicitamente declarado do tipo Integer; caso contrário, é implicitamente declarado do tipo Real.
11. Quais são as vantagens e desvantagens da vinculação de tipos dinâmica? 
12. Defina variáveis estáticas, dinâmicas da pilha, dinâmicas do monte explícitas e dinâmicas do monte implícitas. 
· Muitas linguagens permitem que novos escopos estáticos sejam definidos no meio do código executável. Esse poderoso conceito, introduzido no ALGOL 60, permite uma seção de código ter suas próprias variáveis locais, cujo escopo é minimizado. Tais variáveis são dinâmicas da pilha, de forma que seu armazenamento é alocado quando a seção é alcançada e liberado quando a seção é abandonada. Tais seções de código são chamadas de blocos; daí a origem da frase linguagem estruturada em blocos.
· Variáveis dinâmicas do monte explícitas são células de memória não nomeadas (abstratas) alocadas e liberadas por instruções explícitas em tempo de execução pelo programador.
· Variáveis dinâmicas da pilha são aquelas cujas vinculações de armazenamento são criadas quando suas sentenças de declaração são elaboradas, mas cujos tipos são estaticamente vinculados.
· Variáveis estáticas são vinculadas a células de memória antes do início da execução de um programa e permanecem vinculadas a essas mesmas células até que a execução do programa termine.
13. Defina tempo de vida, escopo, escopo estático e escopo dinâmico. 
14. Como a referência a uma variável não local em um programa com escopo estático está conectada a sua definição? 
	O ambiente de referenciamento de uma sentença inclui as variáveis locais e todas as variáveis declaradas em procedimentos nos quais a sentença está aninhada (excluindo variáveis em escopos não locais que estejam ocultos por declarações em procedimentos mais próximos). Cada definição de procedimento, cria um novo escopo e, dessa forma, um novo ambiente.
15. Qual é o problema geral do escopo estático? 
16. O que é o ambiente de referenciamento de uma sentença? 
	O ambiente de referenciamento de uma sentença é a coleção de todas as variáveis visíveis na sentença. O ambiente de referenciamento de uma sentença em uma linguagem de escopo estático é composto pelas variáveis declaradas em seu escopo local mais a coleção de todas as variáveis de seus escopos ancestrais visíveis.
17. O que é um ancestral estático de um subprograma? O que é um ancestral dinâmico de um subprograma? 
18. O que é um bloco? 
	Muitas linguagens permitem que novos escopos estáticos sejam definidos no meio do código executável. Esse poderoso conceito, introduzido no ALGOL 60, permite uma seção de código ter suas próprias variáveis locais, cujo escopo é minimizado. Tais variáveis são dinâmicas da pilha, de forma que seu armazenamento é alocado quando a seção é alcançada e liberado quando a seção é abandonada. Tais seções de código são chamadas de blocos; daí a origem da frase linguagem estruturada em blocos.
19. Quais são as vantagens e as desvantagens do escopo dinâmico? 
20. Quais são as vantagens das constantes nomeadas?
	Uma constante nomeada é uma variável vinculada a um valor apenas uma vez. Constantes nomeadas são úteis para auxiliar a legibilidade e a confiabilidade dos programas. A legibilidade pode ser melhorada, por exemplo, ao ser usado o nome pi em vez de constante. Outro uso importante de constantes nomeadas é na parametrização de um programa.
Y, Z Sub1 
(c) A, Y, Z Sub1 
 X, W Sub3 
 B Sub2 
(d) A, Y, Z Sub1 
 
33 
 X, W Sub3 
(e) A, B, Z Sub2 
 X, W Sub3 
 Y Sub1 
(f) A, Y, Z Sub1 
 B Sub2 
 X, W Sub3
Y, Z Sub1 
(c) A, Y, Z Sub1 
 X, W Sub3 
 B Sub2 
(d) A, Y, Z Sub1 
 
33 
 X, W Sub3 
(e) A, B, Z Sub2 
 X, W Sub3 
 Y Sub1 
(f) A, Y, Z Sub1 
 B Sub2 
 X, W Sub3

Continue navegando