Você está na página 1de 5

01)

-Capacidade aumentada para expressar ideias;


-Embasamento melhorado para escolher linguagens apropriadas;
-Habilidade aumentada para aprender novas linguagens;
-Melhor entendimento da importância da implementação
-Melhor uso de linguagens mais conhecidas
-Avanço geral da computação

02)
Com o conhecimento de diversas linguagens, temos a maior capacidade de
escolher a linguagem correta para cada problema que temos que resolver.

03)
Fortran.

04)
COBOL.

05)
LISP.

06)
O UNIX foi escrito na linguagem de montagem em 1969, porém em 1973 foi
reescrito usando a linguagem C.

07)
Overhead (processamento ou armazenamento em excesso) e a falta de
flexibilidade para compensar esse problema, linguagens complexas que tendem
a ter um alto custo.

08)
Quando o usuário cria sua própria sobrecarga, ele pode usar qualquer símbolo
para uma função. Isso pode gerar confusão no código, por exemplo, se um
usuário usar o símbolo “+” para significar a diferença entre dois elementos, isso
é possível e irá tornar o código confuso.

09)
Exemplo array em C. O nome de um array isolado(sem colchete), em C, é
interpretado como o endereço do primeiro elemento do array.
10)
Assembly utilizado pelas mainframes da IBM, principalmente se comparado
com os minicomputadores VAX.

11)
Pode-se usar vetores e ponteiros para construir sentenças muito mais
complexas, como por exemplo listas encadeadas, árvores e outros. No caso você
poderá utilizar a ideia de vetores e ponteiros associados a algum tipo de dado
primitivo, como o int, criando assim uma estrutura de dados como uma lista que
armazena valores inteiros.

12)
A abstração é algo tido como importante pois permite a facilidade de escrita de
uma linguagem. Um exemplo de abstração pode ser encontrado na construção
de uma função (subprograma), a fim de resolver algum problema específico
nele. Se não fosse possível ter essa abstração, o código dessa função teria que
ser replicado nos diversos pontos do programa onde ele fosse utilizado.

13)
Um programa é tido como confiável quando está de acordo com suas
especificações em todas as condições. Além disso existem basicamente dois
pontos que levam um programa ser tido como confiável:
• Verificação de tipos: Um programa executa testes para detectar erros de tipo,
tanto em tempo de compilação, quanto em tempo de execução.
• Tratamento de exceções: Um programa tem a habilidade de identificar e tratar
erros, tomando medidas corretivas quando uma falha é encontrada ou uma
exceção ocorre.

14)
Quando a linguagem ou o ambiente em si é incapaz de realizar uma verificação
de tipos de parâmetros passados a uma função, simplesmente deixando passar
qualquer tipo, você poderá ter resultados inconsistentes. Por exemplo, se uma
função tem em seu cabeçalho (definição da função) um parâmetro do tipo int e é
passado a ela um tipo float, poderão haver problemas com relação aos cálculos
feitos para se manter a representação de tal valor. Por exemplo, um int não
possui representação da parte fracionária, o range de um int tende a ser muito
menor que o de um float, o que gera um calculo de parte decimal muito
defasado e sem nexo. Por fim, se o ambiente ou o compilador não é capaz de
emitir nem um warning informando tal problema, a depuração torna - se
praticamente impossível.

15)
Apelidos são espécies de identificadores, geralmente utilizados quando se é
possível ter um ou mais nomes definidos para acessar a mesma célula de
memória. Um apelido por exemplo, pode ser definido quando dois ponteiros
estão apontando para a mesma variassem.

16)
O tratamento de exceções é a habilidade de um programa de interceptar erros
em tempo de execução e contorna .

17)
A legibilidade é um dos conceitos mais importantes na hora de se avaliar uma
linguagem de programação, pois ela compreende justamente a facilidade com
que um programa pode ser entendido. Durante muito tempo, principalmente
antes da década de 70, as linguagens de programação estavam mais próximas de
“instruções de máquina” que do usuário em si, o que tornava a tarefa de
construção de softwares algo muito mais complexo de ser feito e principalmente
aprendido. Após os anos 70 e principalmente após do surgimento da idéias de
ciclo de vida do software, as linguagens começaram a ter um nível de abstração
maior, tornando - se mais fáceis de serem escritas, lidas e entendidas. Se uma
linguagem é fácil de ser lida e entendida, supostamente isso implica que ela é
tem um alto nível de abstração, além de ser fácil de ser escrita.

18)
Dependendo de como é o projeto da linguagem, o compilador poderá ter que um
grande número de checagens ou não antes de terminar o processo de
compilação. Se a quantidade de checagens for muita, então ele poderá acabar
tornando-se ineficiente.

19)
Arquitetura de computadores, principalmente no que diz respeito a arquitetura
de Von Neumann.

20)
São as linguagens classificadas como Imperativas. Linguagens desse tipo
descrevem o programa em termos de seus estados, definindo ações que
modifiquem tal estado.

21)
Primeiramente, antes dos anos 1970, as estruturas condicionais usavam muito
“goto”, o que em muitos casos gerava problemas de legibilidade no código. Um
outro problema foi a verificação de tipos primitivos.

22)
Encapsulamento, herança e polimorfismo.

23)
Smaltalk.

24)
Legibilidade e facilidade de escrita.

25)
Compilação, interpretação pura e sistemas híbridos.

26)
Geralmente os programas compilados tendem a consumir menos tempo de
execução. O interpretador puro terá que, em tempo de execução, ler as
instruções, verifica - las e convertê-las a algo que maquina entenda. Já os
sistemas híbridos possuem a facilidade de carregar somente módulos que são
necessários naquele instante (just in time), o que pode reduzir
consideravelmente o seu custo em relação ao tempo de execução.

27)
A tabela de símbolos serve como uma base de dados para o processo de
compilação. O conteúdo primário na tabela de símbolos são informações de tipo
e atributos de cada um dos nomes definidos pelo usuário no programa. Essa
informação é colocada na tabela pelos analisadores léxico e sintático e é usada
pelo analisador semântico e pelo gerador de código.

28)
O ligador (ou linker) é um programa de sistema que tem por objetivo coletar
programas de sistemas e ligá - los aos programas de usuário, criando assim o
módulo de carga (também conhecido como imagem executável).
29)
A “máxima” por trás da arquitetura de Von Neumann é que “a velocidade de
conexão entre a memória e o processador é o que define a velocidade do
computador, isso porque as instruções podem ser executadas com mais
freqüência do que movidas da memória para o processador.” Essa característica
é conhecida como “Gargalo de Von Neumann” e é o fator responsável pelas
pesquisas em computação paralela. A computação paralela por sua vez é uma
forma de computação onde os vários cálculos que o processador realiza são
quebrados em problemas menores (cálculos menores) e divididos para serem
realizados ao mesmo tempo (ou seja, de forma paralela).

30)
No modo de interpretação puro, o interpretador executa o código escrito de
forma direta, sem a necessidade de um processo de compilação ou criação de
um sistema intermediário (como o bytecode do Java). A medida que o programa
vai sendo lido, elevai sendo executado. Quando uma execução termina e o
programa é chamado novamente, um novo processo de interpretação é
realizado. As vantagens desse modelo consistem em:
• Correções e alterações podem ser realizadas de forma muito mais rápida • Não
há dispêndio do tempo de compilação.
• Tende a consumir menos memória