TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Paradigmas de programação

Por:   •  14/10/2015  •  Trabalho acadêmico  •  786 Palavras (4 Páginas)  •  839 Visualizações

Página 1 de 4

Lista de Exercícios de Linguagens de Programação I Universidade Federal do Amazonas

Instituto de Computação/Sistemas de Informação Marco Cristo

Introdução e contexto histórico

  1. O que significa compatibilidade reversa? Dê um exemplo desse conceito empregado em linguagens de programação.

Compilador de uma versão de uma linguagem compila sem modificação o código escrito pra versão anterior. Ex: Fortran III em relação ao Fortran II; Java 7 em relação ao Java 6.

  1. Quais são os prós e os contras de distinguir caracteres maiúsculos de minúsculos em nomes de identificadores em algumas linguagens de programação?

Pró: facilita a legibilidade de nomes constituídos por múltiplas palavras (intNumElementos); Contra: erros de digitação que podem ser difíceis de perceber (embora, compiladores devam indicá-­‐lo sem problemas); ter que recordar que convenção que foi usada especialmente quando umas das palavras é um acrônimo (TCPsocket ou TcpSocket).

  1. Linguagens OO não levam aos programas mais eficientes em tempo de execução. Por que então elas são tão usadas?

Eficiência em tempo de execução não é o único aspecto de interesse no projeto de uma linguagem. Linguagens OO são excelentes em vários aspectos importantes como facilidade de reuso de código, manutenção e expressividade.

  1. Porque a linguagem Smalltalk é normalmente descrita como a primeira orientada a objetos, se os conceitos de classe, objetos e herança foram introduzidos antes, no Simula-­‐ 67?

Porque é Smalltalk que introduz OO como um paradigma de programação por si mesmo e não uma forma conveniente de codificar simulações (como no caso do  Simula-­‐67).  Qualquer programa deveria ser concebido como parte da hierarquia de objetos da linguagem, de forma a estender tal taxonomia e possibilitar a programação com reuso (principalmente por meio de herança) por times de programadores.

  1. Em que medida, requisitos como portabilidade e segurança necessários em sistemas que deveriam ser embarcados em eletrodomésticos, tornaram JAVA adequada para a Web?

Aplicações para web deveriam executar em plataformas muito heterogêneas e deveriam dificultar a invasão dessas plataformas.

  1. Compare as linguagens C e Java, considerando os seguintes critérios:

  1. Simplicidade, Ortogonalidade, Tipos de Dados, Projeto de Sintaxe, Suporte à Abstração, Expressividade, Checagem de Tipos, Manipulação de Exceções e Restrição de Aliases

  • Simplicidade -­‐ Java simplifica vetores, matrizes e ponteiros. Contudo, de várias formas, Java é mais complexa no tratamento distinto entre objetos x tipos primitivos. OO também torna o uso de funções e métodos mais complexos por suportar controle de acesso. A passagem de parâmetros em C é mais complexa por requerer ponteiros para simular passagem por referência. Em geral, C é mais simples, exceto pelo uso de ponteiros.
  • Ortogonalidade – I/O de Java é ortogonal (por meio de classes). Como dito antes, tratamento de objetos e tipos primitivos não é ortogonal. Em geral, C é uma linguagem mais ortogonal, especialmente devido a necessidade do Java suportar tipos primitivos e objetos.
  • Tipos de Dados – Java é OO, logo muito mais sofisticada que C em termos de tipos dados. De fato, ela é até muito complexa se tudo que você precisa são registros. Java também suportar tipos primitivos como o booleano, ausente no C.
  • Projeto de sintaxe – com exceção de ponteiros (C) e passagem de mensagens (Java), as suas linguagens são quase idênticas.
  • Suporte à abstração – embora ambas as linguagens tenham excelente suporte, Java é OO.
  • Expressividade – Novamente, JAVA é OO e, portanto, lida trivialmente com conceitos difíceis de expressar em C.
  • Checagem de Tipos – C é uma linguagem conhecida por preterir checagem de tipos por desempenho. Não é o caso de Java.
  • Manipulação de exceções – Java tem mecanismo específico enquanto C confia em retornos de funções, flags e codificação manual.
  • Restrição de aliases – Como C confia muito em ponteiros e Java em referências, nenhuma das duas é superior nesse aspecto.
  1. Legibilidade, escrita e confiabilidade
  • Legibilidade – nenhuma das duas é particularmente legível. Contudo, códigos C sem abuso de ponteiros tendem ser mais fáceis de ler que códigos Java devido ao uso de objetos (sem muita ortogonalidade ou simplicidade).
  • Facilidade de Escrita -­‐ Java é melhor pois suporta objetos e, portanto, muito reuso.
  • Confiabilidade -­‐ Java é melhor por suportar mecanismos de exceção e evitar ponteiros.

Obs:

  • Resposta pode ser entregue em dupla;
  • Respondam com as próprias palavras. Plágio resultará em cancelamento das listas em que a cópia for observada;
  • Data de entrega a ser definida no site da disciplina;

...

Baixar como (para membros premium)  txt (4.9 Kb)   pdf (78.2 Kb)   docx (13.7 Kb)  
Continuar por mais 3 páginas »
Disponível apenas no TrabalhosGratuitos.com