Your SlideShare is downloading. ×

Paradigmas de Linguagens de Programação - Introdução

5,337

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
5,337
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
164
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Prof. Adriano Teixeira de Souza
  • 2.  Nome Cidade Em que área trabalha Que tecnologias utiliza no dia-a-dia Expectativas para a disciplina Prof. Adriano Teixeira de Souza
  • 3.  Conteúdo programático ◦ Motivação para o estudo de Linguagens de Programação ◦ Critérios para Avaliação de Linguagens ◦ Métodos de Implementação de Linguagens ◦ Paradigmas de Linguagens de Programação ◦ Evolução Histórica das Linguagens de Programação ◦ Ambientes de Programação ◦ Estilos de Codificação e Padronização ◦ Expressões e Atribuição ◦ Estruturas de Controle ◦ Gerenciamento de Memória ◦ Tratamento de Exceções ◦ Modularização, componentização e reutilização de código ◦ Escalabilidade Prof. Adriano Teixeira de Souza
  • 4.  Aulas teórico - praticas Discussões sobe o assunto Listas de exercícios Trabalhos Avaliação bimestral Nota 1º bimestre ◦ Avaliação bimestral (peso de 50%) ◦ Trabalhos e listas de exercícios (peso de 35% ) ◦ Participação e envolvimento em sala (peso 15%) Nota 2º bimestre ◦ Avaliação bimestral (peso de 50%) ◦ Artigo científico (20% peso) ◦ Trabalhos e listas de exercícios (peso de 15% ) ◦ Participação e envolvimento em sala (peso 15%) Prof. Adriano Teixeira de Souza
  • 5.  Linguagem de Programação: ◦ Linguagem usada por uma pessoa para expressar um processo através do qual um computador pode resolver um problema. Porque tantas? ◦ Propósitos diferentes ◦ Avanços tecnológicos ◦ Interesses comerciais Prof. Adriano Teixeira de Souza
  • 6.  Maior habilidade em resolver problemas: ◦ Melhor domínio; Melhor uso de uma LP ◦ Extrair o máximo de sua funcionalidade e eficiência; Maior embasamento para escolha de linguagens ◦ Não escolher apenas a linguagem que estiver mais familiarizado Melhor escolha de uma LP ◦ Adequação ao problema Maior facilidade em aprender novas LPs; Prof. Adriano Teixeira de Souza
  • 7.  Legibilidade ◦ Quão facilmente um programa pode ser lido e entendido Capacidade de Escrita ◦ Quão facilmente uma linguagem pode ser usada para criar programas Confiabilidade ◦ Conformidade com as especificações sob todas as condições Custo ◦ O custo final de uma linguagem é uma função de suas características Portabilidade ◦ Possibilidade de ser executada sob diversos sistemas operacionais e plataformas de harware Prof. Adriano Teixeira de Souza
  • 8.  Simplicidade global: uma linguagem com um grande número de componentes básicos é mais difícil de aprender do que com poucos desses componentes → programadores tendem a aprender subconjunto dela. Multiplicidade de recursos complica a legibilidade: cont = cont + 1 cont += 1 cont++ ++cont Prof. Adriano Teixeira de Souza
  • 9.  Facilidade de ler e escrever programas ◦ Legibilidade influi:  desenvolvimento e depuração de programas  manutenção de programas  desempenho de equipes de programação Fatores que melhoram a legibilidade: ◦ Abstração de dados ◦ Comandos de controle ◦ Modularização de programas ◦ Documentação ◦ Convenções léxicas, sintaxe e semântica  Exemplo em Java: nomes de classes iniciam por letra maiúscula, nomes de campos usam letras minúsculas Prof. Adriano Teixeira de Souza
  • 10.  Medida de quão facilmente uma linguagem pode ser usada para criar programas para um domínio de problema escolhido. Suporte para abstração: capacidade de definir e, depois, usar estruturas ou operações complicadas de uma maneira que permita ignorar muitos dos detalhes. Um conjunto relativamente conveniente de maneiras de especificar operadores Exemplos: ◦ count++ é mais conveniente do que count = count + 1 ◦ a inclusão do for em muitas linguagens modernas Prof. Adriano Teixeira de Souza
  • 11.  Um programa é confiável se ele se comportar seguindo suas especificações sob todas as condições. Verificação de tipos ◦ Testar se existem erros de tipos, pelo compilador ou durante a execução. Manipulação de Exceções ◦ Capacidade de interceptar erros em tempo de execução e por em prática medidas corretivas ◦ Ex: C++ e Java incluem essas facilidades. C e Fortran não Prof. Adriano Teixeira de Souza
  • 12.  Treinamento dos programadores para usar a linguagem Escrita de programas na linguagem Compilação programas na linguagem Execução dos programas ◦ Muitas verificações na execução deixando a execução lenta (Ex: Linguagem interpretada) Sistema de implementação da linguagem: ◦ Existência de compiladores free Confiabilidade ◦ Confiabilidade baixa leva a altos custos Manutenção dos programas Prof. Adriano Teixeira de Souza
  • 13.  Portabilidade ◦ Quão facilmente um programa pode ser movido de uma implementação para outra  Ex: executar em vários sistemas operacionais, e plataformas de hardware Generalidade ◦ Seu uso em uma gama de aplicações Boa definição ◦ A precisão e a completeza da definição oficial da linguagem Existência de boas ferramentas ◦ Compiladores ◦ Debuggers Prof. Adriano Teixeira de Souza
  • 14.  Compilação ◦ Programas são traduzidos para a linguagem de máquina Interpretação pura ◦ Programas são interpretados por outro programa conhecido como interpretador Sistemas de implementação híbridos ◦ Um meio-termo entre compiladores e interpretadores puros Prof. Adriano Teixeira de Souza
  • 15.  Traduz programas em alto-nível (linguagem fonte) em código de máquina (linguagem de máquina) Tradução lenta, execução rápida O processo de compilação possui várias fases: ◦ Análise léxica  Converte caracteres de um programa fonte em unidades léxicas ◦ Análise sintática  Transforma unidades léxicas em parse trees, as quais representam a estrutura sintática do programa ◦ Análise semântica  Gera código intermediário ◦ Geração de código  Código de máquina é gerado Prof. Adriano Teixeira de Souza
  • 16. Prof. Adriano Teixeira de Souza
  • 17.  Sem tradução Fácil implementação de programas (erros de execução podem ser facilmente e rapidamente mostrados) Execução lenta (de 10 a 100 vezes mais lenta do que programas compilados) Geralmente requer mais espaço Cada vez mais raro em linguagens de alto- nível Embora não seja uma linguagem simples, JavaScript é puramente interpretado Prof. Adriano Teixeira de Souza
  • 18. Prof. Adriano Teixeira de Souza
  • 19.  Um meio-termo entre compilador e interpretador puro Um programa em uma linguagem de alto-nível é traduzido para uma linguagem intermediária que permite fácil interpretação Mais rápido do que interpretação pura Exemplos ◦ Programas em Perl são parcialmente compilados para detectar erros antes da interpretação ◦ Implementações iniciais de Java eram híbridas  A forma intermediária, byte code, provinha portabilidade para qualquer máquina que tivesse o interpretador de byte code e um sistema de run-time (juntos, esses são chamados de Java Virtual Machine) Prof. Adriano Teixeira de Souza
  • 20. Prof. Adriano Teixeira de Souza

×