Prévia do material em texto
Impresso por Ano, CPF 165.185.597-80 para uso pessoal e privado. Este material pode ser protegido por direitos autorais e não pode ser reproduzido ou repassado para terceiros. 05/09/2020 15:36:52 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 bene�ciar 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 cien�fica nos úl�mos 60 anos? ● Na área da computação cien�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 ar�ficial nos últimos 60 anos? ● Na área de inteligência ar�ficial 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. Impresso por Ano, CPF 165.185.597-80 para uso pessoal e privado. Este material pode ser protegido por direitos autorais e não pode ser reproduzido ou repassado para terceiros. 05/09/2020 15:36:52 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 de�nida 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 u�lizou 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 signi�ca para um programa ser con�ável? ● Programas con�á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 veri�car os tipos dos parâmetros de um subprograma é importante? ● Quando o ambiente não oferece um tipo de veri�cação de dados você poderá ter uma inconsistência de dados no final do programa. 14. O que são apelidos? ● São identi�cadores utilizados quando se é possível ter um ou mais nomes defi nidos para acessar a mesma célula de memória. Impresso por Ano, CPF 165.185.597-80 para uso pessoal e privado. Este material pode ser protegido por direitos autorais e não pode ser reproduzido ou repassado para terceiros. 05/09/2020 15:36:52 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 quan�dade 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 úl�mos 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 primi�vos 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 con�ito direto um com o outro. ● Legibilidade e facilidade de escrita. Impresso por Ano, CPF 165.185.597-80 para uso pessoal e privado. Este material pode ser protegido por direitos autorais e não pode ser reproduzido ou repassado para terceiros. 05/09/2020 15:36:52 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.