Buscar

Exercícios 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

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

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ê 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

Prévia do material em texto

Paradigmas de Linguagens de Programação
Aula 02 – Conceitos Preliminares
 
Exercícios de Fixação: 
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? 
Aumento da capacidade de expressar ideias, maior conhecimento para a escolha de linguagem apropriadas, capacidade aumentada para aprender novas linguagens, entender melhor a importância da implementação, aumento da capacidade de projetar novas linguagens e avanço global da computação.
2. Como o conhecimento de linguagens de programação pode beneficiar toda a comunidade da computação? 
O conhecimento aprofundado das linguagens de programação pode beneficiar nas novas linguagens que estão surgindo, para que essas sejam melhores e mais eficazes que as antigas.
3. Que linguagem de programação tem dominado a computação científica nos últimos 60 anos? 
Na área da computação científica tem sido usado a Fortran.
4. Que linguagem de programação tem dominado as aplicações de negócios nos últimos 60 anos? 
Na área de aplicações de negócios tem sido usado a COBOL.
5. Que linguagem de programação tem dominado a inteligência artificial nos últimos 60 anos? 
Na área de inteligência artificial tem sido usado a Lisp.
6. Em que linguagem a maior parte do UNIX é escrito? 
Inicialmente foi escrita em Assembly, posteriormente foi reescrita usando a linguagem C.
7. Qual é a desvantagem de ter recursos demais em uma linguagem?
Overhead (processamento ou armazenamento em excesso) e a falta de flexibilidade da linguagem.
8. Como a sobrecarga de operador definida pelo usuário pode prejudicar a legibilidade de um programa? 
Quando o usuário cria suas próprias sobrecargas.
9. Cite um exemplo da falta de ortogonalidade no projeto da linguagem C. 
A falta de ortogonalidade acarreta exceções às regras da linguagem. Quanto mais ortogonal é o projeto de uma linguagem, menos exceções as regras da linguagem exigirão. Um exemplo é quando, em C, se possui dois tipos de dados estruturados, arrays e registros. Registros podem ser retornados de funções, arrays não. 
10. Qual linguagem usou a ortogonalidade como principal critério de projeto? 
A linguagem de programação que mais se utilizou da ortogonalidade foi o ALGOL 68.
11. Que sentença de controle primitiva é usada para construir sentenças de controle mais complicadas em linguagens que não as têm?
Em grande parte dos casos são usados vetores e ponteiros para se construir sentenças mais complexas.
12. O que significa para um programa ser confiável?
Programas confiáveis tem como base Verificação de Tipos e Tratamento de Exceções. Quando o mesmo está de acordo com todas as suas especificações ele é considerado confiável.
13. Por que verificar os tipos dos parâmetros de um subprograma é importante?
Quando o ambiente não oferece um tipo de verificação de dados você poderá ter uma inconsistência de dados no final do programa.
14. O que são apelidos?
São identificadores utilizados quando se é possível ter um ou mais nomes definidos para acessar a mesma célula de memória.
15. O que é o tratamento de exceções?
É a habilidade de um programa de detectar um erro em tempo de execução e resolvê-los.
16. Por que a legibilidade é importante para a facilidade de escrita?
Pois é o quão fácil uma linguagem é de se programar. Quanto maior a sua legibilidade, maior será seu nível de abstração e ela será considerada uma linguagem de alto nível.
17. Como o custo de compiladores para uma linguagem está relacionado ao projeto dela?
Dependendo do projeto da linguagem, o compilador pode ou não ter uma grande quantidade de checagens. Essa quantidade de checagens que definirá se será terá eficiência ou não.
18. Qual foi a influência mais forte no projeto de linguagens de programação nos últimos 60 anos?
A influência mais forte nos últimos 60 anos vem da Arquitetura de Von Neumann. A mesma consiste em uma arquitetura de computador que possibilita uma máquina armazene seus programas no mesmo espaço de memória que os dados, desse jeito podendo manipular tais programas.
19. Qual é o nome da categoria de linguagens de programação cuja estrutura é ditada pela arquitetura de computadores von Neumann?
São linguagens nomeadas como imperativas. Essas linguagens descrevem a computação como ações ou comandos que mudam o estado de um programa.
 20. Quais são os três recursos fundamentais de uma linguagem orientada a objetos?
Encapsulamento, herança e polimorfismo.
21. Qual foi a primeira linguagem a oferecer suporte aos três recursos fundamentais da programação orientada a objetos?
Smalltalk. Nesta linguagem tudo é objeto, uma vez que não existem tipos primitivos e por isso ela é considerada puramente orientada a objetos.
22. Dê um exemplo de dois critérios de projeto de linguagens que estão em conflito direto um com o outro.
Legibilidade e facilidade de escrita. 
23. Quais são os três métodos gerais de implementar uma linguagem de programação?
Compilação, interpretação pura e Métodos Híbridos.
24. Qual produz uma execução de programas mais rápida: um compilador ou um interpretador puro?
Os Compiladores terão uma resposta mais rápido. Isso se dá pela sua rotina que usa a técnica de Just in Time, essa que carrega somente módulos que são necessários no instante.
25. Que papel a tabela de símbolos tem em um compilador?
Serve como uma base de dados para o processo de compilação.
26. O que faz um ligador?
O linker é um programa que conecta o programa de sistema aos programas de usuário. Também conhecido por imagem executável.
27. Por que o gargalo de von Neumann é importante?
A disputa entre dados e instruções pelo tempo da unidade central de processamento. O gargalo aparece quando o processador tem que decidir entre executar um grande número de instruções por segundo e ler um grande volume de dados ao mesmo tempo. Isso desencadeou pesquisas no campo da computação paralela, que consiste em pegar essa grande massa de instruções e dividi-las em problemas menores para serem realizados ao mesmo tempo, em paralelo.
28. Quais são as vantagens de implementar uma linguagem com um interpretador puro?
Correções são feitas de forma rápida e não se perde tempo de compilação já que a linguagem implementada seria lida e executada simultaneamente.

Outros materiais