Buscar

Exercícios 2 parte teórica

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 3 páginas

Prévia do material em texto

UNIVERSIDADE FEDERAL DE SERGIPE 
Campus Prof, Alberto Carvalho 
DEPARTAMENTO DE SISTEMAS DE INFORMAÇÃO 
 
 
Exercícios 2 parte teórica 
 
 
 
1) O que é sistema de tipos de uma linguagem? 
 
Sistema de tipos é parte da semântica da linguagem podendo variar quanto a forma e ao 
momento da declaração. 
 
2) Explique porque antes de ser usada uma variável deve ser associada a um 
determinado tipo da linguagem? 
 
É através do tipo que o compilador sabe quanta memória deve ser reservada para uma 
determinada variável (quantas células de memória são necessárias para armazenar o 
conteúdo da variável). 
 
3) Explique a diferença entre uma linguagem estaticamente tipada e uma 
linguagem dinamicamente tipada. 
 
Tipagem estática significa que os tipos das variáveis de um programa são 
explicitamente definidos no código e, portanto, conhecidos/checados em tempo de 
compilação. Exemplos de linguagens com essa característica: Java, C#, F#, Kotlin, Go, 
etc. 
Na tipagem dinâmica é justamente o contrário: os tipos não são declarados no código e, 
portanto, conhecidos/checados em tempo de execução. Exemplos de linguagens: Ruby, 
Python, Clojure, Elixir, etc. 
 
4) Cite uma vantagem de se ter uma linguagem estaticamente tipada e de se ter 
uma linguagem dinamicamente tipada. 
 
VANTAGENS DAS LINGUAGENS ESTATICAMENTE TIPADAS: 
Clareza de código. Entender o código é fácil, já que não precisamos fazer suposições 
sobre o que é cada atributo de um objeto e quais são as entradas e saídas esperadas de um 
método/função. O código se torna a documentação. 
VANTAGENS DAS LINGUAGENS DINAMICAMENTE TIPADAS: 
Menos verbosidade. Código mais enxuto, para escrever e para ler. 
5) O que é equivalência nominal de tipos? 
Disciplina Linguagens de Programação 
Carga Horária 90 
Professora Mai-Ly Vanessa Almeida Saucedo Semestre 2020.1 
 Faro 
 
Significa que duas variáveis tem tipos equivalentes se elas foram declaradas na mesma 
declaração ou em declarações que usem o mesmo nome de tipo. 
 
6) O que é equivalência estrutural de tipos? 
 
Significa que duas variáveis tem tipos compatíveis se possuem a mesma estrutura. 
 
7) Qual a diferença entre palavra chave e palavra reservada de uma linguagem? 
 
Uma Palavra chave é especial somente em certos contextos. 
Ex: Fortran → a palavra “real” é uma palavra chave quando encontrada no início de 
uma declaração e no início de um nome. Quando seguida de atribuição é considerada 
nome de variável. 
 
Uma Palavra Reservada é sempre uma palavra especial e não pode ser usada como 
nome de 
variável. Problema: Muitas palavras reservadas → difícil nomear entidades. Ex 
COBOL → mais de 300 palavras reservadas. 
 
 
8) Explique o que é uma variável ​stack dinamic​? Cite um exemplo. 
 
Variáveis dinâmicas de pilha passam a existir quando você chama uma função. Eles 
existem na pilha de tempo de execução e são temporários. Eles estão na lista de 
parâmetros ou declarados dentro da função (exceto para estáticos, que não são 
instanciados na pilha). Essas variáveis ​​desaparecem quando saem do escopo e a 
memória de seu conteúdo é recuperada pelo tempo de execução. 
 
9) Explique como funcionam as variáveis de uma função recursiva, a nível de memória. 
 
Em uma função recursiva , a cada chamada é criada na memória uma nova ocorrência 
da função com os comandos e variáveis "isolados"das ocorrências anteriores. 
 
10) Em uma linguagem que você conhece, dê exemplo de uma variável explicit-heap 
dinamic e explique o que é esse tipo de variável. 
 
Variáveis ​​dinâmicas no monte explícitas são células de memória sem nome que são 
alocadas e desalocadas por instruções explícitas de tempo de execução escritas pelo 
programador. Essas variáveis, que são alocadas e desalocadas no heap, só podem ser 
referenciadas por meio de ponteiros ou variáveis ​​de referência. 
 
11) Explique o que é escopo de uma variável. 
 
É a faixa de código onde uma variável permanece visível, ou seja, onde ela pode ser 
referenciada. 
 
 
12) Explique qual é a diferença entre escopo de uma variável e tempo de vida de 
uma variável? 
 
Escopo : Ele se refere em que partes do código a variável é visível/acessível. 
 
O tempo de vida se refere ao tempo que ela está disponível para acesso, ou pelo menos 
quando ela tem um valor com significado para o código.

Continue navegando