Você está na página 1de 3

Sobre variáveis (cap 5, Livro Sebesta, página 235)

1. What are the design issues for names?

2. What is the potential danger of case-sensitive names?

3. In what way are reserved words better than keywords?

4. What is an alias?

5. Which category of C++ reference variables is always aliases?

6. What is the l-value of a variable? What is the r-value?

7. Define binding and binding time.

8. After language design and implementation [what are the four times bind ings can take place
in a program?]

9. Define static binding and dynamic binding.

10. What are the advantages and disadvantages of implicit declarations?

11. What are the advantages and disadvantages of dynamic type binding?

12. Define static, stack-dynamic, explicit heap-dynamic, and implicit heap dynamic variables.
What are their advantages and disadvantages?

13. Define lifetime, scope, static scope, and dynamic scope.

14. How is a reference to a nonlocal variable in a static-scoped program connected to its


definition?

1 - Sensibilidade caso e a relação de nomes com palavras especiais, que são ou palavras-chave
ou palavras-chave reservadas, são os problemas de design para nomes. As variáveis podem ser
caracterizadas pelo sextuple de atributos: nome, endereço,valor, tipo, vida e escopo.

2 - Os nomes no Esquema podem consistir em letras, dígitos e caracteres especiais, exceto


parênteses; eles são insensíveis caso e não devem começar com um dígito.

3 - Uma palavra reservada é uma palavra especial de uma linguagem de programação que não
pode ser usada como nome. Como uma escolha de design de linguagem, palavras reservadas
são melhores do que palavras-chave porque a capacidade de redefinir palavras-chave pode ser
confusa. Durante exemplo, no Fortran, pode-se ter as seguintes declarações.

4 - As codinomes são duas ou mais variáveis vinculadas ao mesmo endereço de armazenamento.


Eles são considerados prejudiciais à confiabilidade, mas são difíceis de eliminar inteiramente de
uma língua.

5 - Quando um ponteiro C++ é definido a apontar para uma variável nomeada, o ponteiro,
quando dereferenciado, e a variável nome são pseudônimos.

6. - O valor de uma variável é às vezes chamado de seu valor r porque é o que é necessário
quando o nome da variável aparece no lado direito de uma instrução de atribuição. Para acessar
o valor r, o valor l deve ser determinado primeiro. Tais determinações nem sempre são simples.
7 - Vinculação é a associação de atributos com entidades do programa. Conhecimento dos
tempos vinculantes de atributos às entidades é essencial para entender o semântica das
linguagens de programação. A ligação pode ser estática ou dinâmica. As declarações, explícitas
ou implícitas, fornecem um meio de especificar a estática vinculação de variáveis aos tipos. Em
geral, a ligação dinâmica permite maior flexibilidade, mas em detrimento da legibilidade,
eficiência e confiabilidade.

8. Embora a ampliação das conversões seja geralmente segura, elas podem resultar em redução
exatidão. Em muitas implementações linguísticas, embora inteiro-ponto flutuante conversões
estão ampliando conversões, alguma precisão pode ser perdida. Coerção em expressões,
conversão de tipo explícito, erros nas expressões.

9 - Ada 95 fornece vinculação estática e vinculação dinâmica de chamadas de procedimento


para definições de procedimento em tipos marcados. A ligação dinâmica é forçada usando um
tipo de classe, que representa todos os tipos em uma hierarquia de classe enraizada em um tipo
particular. Cada tipo marcado implicitamente tem um tipo de classe. Para uma etiqueta tipo T,
o tipo de classe é especificado com classe T. Se T for um tipo marcado, uma variável do tipo
T'class pode armazenar um objeto do tipo T ou qualquer tipo derivado f.

10 - Embora sejam uma pequena conveniência para os programadores, declarações implícitas


podem ser prejudiciais à confiabilidade porque impedem que o processo de compilação detecte
algum digitação. Outro tipo de declarações de tipo implícito usa o contexto. Isso é às vezes
chamado inferência tipo. No caso mais simples, o contexto é o tipo de valor atribuído à variável
em uma declaração de declaração.

11 - Há duas desvantagens para a ligação dinâmica do tipo. Primeiro, causa programas para ser
menos confiável, porque a capacidade de detecção de erros do compilador é diminuído em
relação a um compilador para uma linguagem com tipo estático. Finalmente, idiomas que têm
tipo dinâmico de ligação para variáveis são geralmente implementado usando intérpretes puros
em vez de compiladores. Computadores não ter instruções cujos tipos de operando não são
conhecidos na hora da compilação.

12 - As linguagens em que os tipos são dinamicamente vinculados são dramaticamente


diferentes daquelas em que os tipos estão estaticamente ligados. A principal vantagem de
ligação dinâmica de variáveis a tipos é que fornece mais programação flexibilidade. Variáveis
dinâmicas de pilha são aquelas cujas ligações de armazenamento são criadas quando suas
declarações de declaração são elaboradas, mas cujos tipos são estaticamente limite. A
elaboração de tal declaração refere-se à alocação de armazenamento e processo vinculante
indicado pela declaração, que ocorre quando a execução atinge o código ao qual a declaração é
anexada.

13 - As regras de escopo de uma linguagem determinam como uma ocorrência particular de um


nome está associado a uma variável, ou no caso de uma linguagem funcional, como um nome
está associado a uma expressão. Em particular, as regras de escopo determinam como as
referências a variáveis declaradas fora do subprograma ou bloco de execução atualmente estão
associadas. Escopo estático é tão nomeado porque o escopo de uma variável pode ser
estaticamente determinado — ou seja, antes da execução. Isso permite que um leitor de
programa humano (e um compilador) determinar o tipo de cada variável no programa
simplesmente examinando sua código fonte. Às vezes, o escopo e a vida útil de uma variável
parecem estar relacionados, considere uma variável que é declarada em um método Java que
contém nenhum método chama. A vida útil dessa variável é o período de tempo que começa
quando o método é inserido e termina quando a execução do método termina. O escopo
dinâmico é baseado na sequência de chamadas de subprogramas, não em sua relação espacial
uns com os outros. Assim, o escopo pode ser determinado apenas na hora da execução fim do
método.

14 - O escopo estático fornece um método de acesso não local que funciona bem em muitos
Situações. No entanto, não é sem seus problemas. Primeiro, na maioria dos casos, permite mais
acesso a variáveis e subprogramas do que o necessário. É simplesmente muito bruto uma
ferramenta para especificar concisamente tais restrições. S

Você também pode gostar