01 aula1 habib

291 visualizações

Publicada em

Paradigmas de linguagem de programação

Publicada em: Software
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
291
No SlideShare
0
A partir de incorporações
0
Número de incorporações
6
Ações
Compartilhamentos
0
Downloads
11
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

01 aula1 habib

  1. 1. PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO Eduardo Habib Bechelane Maia habib@div.cefetmg.br
  2. 2. Conteúdo Programático • 1. O que é Paradigma? • 2. O que é Paradigma de Programação? • 3. Características de Paradigma de Programação • 4. História • 5. Por que estudar LP’s? • 6. Para que servem as LP’s? • 7. Propriedades Desejáveis • 8. Por que tanta linguagem?
  3. 3. O que é um Paradigma? • É um modelo imperativo de uma realidade • Permite organizar as ideias com vista: • Ao atendimento dessa realidade • À determinação de qual é a melhor forma de atuar sobre essa realidade
  4. 4. O que é Paradigma de Programação? • Modelo, padrão ou estilo de programação suportado por linguagens que agrupam certas características comuns. • Uma linguagem de programação é um método padronizado para expressar instruções para um computador. É um conjunto de regras sintáticas e semânticas usadas para definir um programa de computador.
  5. 5. Características de Paradigmas de Programação • Gramática e significado bem definidos [sintaxe: gramática (forma); semântica: significado] • Implementável (executável) com eficiência ‘‘aceitável’’ • Universal: deve ser possível expressar todo problema computável 5
  6. 6. Propriedades Desejáveis • Legibilidade • Regibilidade • Confiabilidade • Eficiência • Facilidade de aprendizado • Ortogonalidade • Reusabilidade • Modificabilidade • Portabilidade 6
  7. 7. Por que tantas Linguagens? • Propósitos diferentes • Avanços tecnológicos • Interesses comercias • Cultura e background científico 7
  8. 8. PARADIGMA ESTRUTURADO
  9. 9. O Paradigma Estruturado • Primeiro paradigma a surgir. • Também conhecido como Imperativo ou Procedural. • Centrado no conceito de um estado (variáveis) e ações (comandos). • O estado é representado por um conjunto de associações de identificadores (variáveis globais e locais ativas do programa) em valores. • A diferença fundamental com relação ao paradigma funcional é que esta associação é dinâmica, sendo constantemente modificada durante a execução de um programa. • O elemento central de um programa estruturado é o comando, que pode ser primitivo ou composto
  10. 10. Modelo do Paradigma Estruturado Entrada Estado SaídaPrograma
  11. 11. Elementos • Definição de tipos de dados • Expressões e atribuições • Estruturas de controle de fluxo • Definição de sub-rotinas
  12. 12. Vantagens do modelo imperativo • Eficiência • Paradigma dominante e bem estabelecido • Modelagem natural de aplicações do mundo real • Possui tipagem fraca e também muito flexível • É fácil de se entender.
  13. 13. Desvantagens do paradigma imperativo • Relacionamento indireto entre E/S resulta em: • difícil legibilidade • facilita introdução de erros em sua manutenção • Foca em como a tarefa deve ser feita e não em o que deve ser feito. • Tende a gerar códigos confusos, onde tratamento dos dados são misturados com o comportamento do programa
  14. 14. Alguns exemplos de linguagens do modelo imperativo • Ada • Algol • Basic • C • PHP • Cobol • Fortran • Pascal • Python
  15. 15. O Paradigma Orientado a Objetos • Não é um paradigma no sentido estrito: é uma subclassificacão do imperativo • Diferença na metodologia • Concepção e modelagem. • Aplicação: • é estruturada em módulos (classes) • que agrupam um estado (atributos) • e operações (métodos) sobre este • Classes podem ser estendidas e/ou usadas como tipos
  16. 16. Modelo Computacional do Paradigma Orientado a Objetos Entrada Programa Saída Estado ... ... ... ... Estado Entrada Programa Saída Estado Entrada Programa Saída Estado Entrada Programa Saída Estado Entrada Programa Saída
  17. 17. Vantagens do Paradigma Orientado a Objetos • Todas as do paradigma estruturado • Estimula: • Modularidade • Reusabilidade • Extensibilidade • Aceitação comercial crescente.
  18. 18. Problemas do Paradigma OO • Semelhantes aos do paradigma estruturado • Amenizadas pelas facilidades de estruturação
  19. 19. Alguns exemplos de linguagens do modelo OO • Exemplos: • C++ • C# • Java • VB.NET • Object Pascal • Objective-C • Python • Smalltalk • ActionScript, ColdFusion, Javascript, PHP (a partir da versão 4.0), Perl (a partir da versão 5) e Visual Basic (a partir da versão 4) são exemplos de linguagens de programação com suporte a orientação a objetos.
  20. 20. PARADIGMA PARALELO E DISTRIBUÍDO
  21. 21. Introdução • Poder de processamento das máquinas está crescendo rapidamente. • Grande parte das máquinas são interligadas por redes • Sistemas e aplicações estão cada vez mais complexos.
  22. 22. Paradigma paralelo • Consiste em executar simultaneamente várias partes de uma mesma aplicação. • Tornou-se possível a partir do desenvolvimento de sistemas operacionais multi- tarefa, multi-thread e paralelos. • As aplicações são executadas paralelamente: • Em um mesmo processador. • Em uma máquina multiprocessada. • Em um grupo de máquinas interligadas que se comporta como uma só máquina.
  23. 23. Paradigma Distribuído • Consiste em executar aplicações cooperantes em máquinas diferentes. • Tornou-se possível a partir da popularização das redes de computadores. • Intranets • Internet • Outras redes públicas ou privadas
  24. 24. Diferenças entre sistemas paralelos e distribuídos Paralelo Distribuído Fortemente acoplados Fracamente acoplados Sistemas paralelos são mais previsíveis Mais imprevisíveis Troca de mensagens são praticamente em tempo real Troca de mensagens influenciada pela rede Maior controle sobre os recursos computacionais Menor controle sobre os recursos computacionais
  25. 25. Vantagens • Ambos • Maior poder computacional • Aumenta a vazão • Compartilhamento de recursos • Mais confiáveis • Reutilização • Para os sistemas distribuídos • Separação física possibilita independência • Escalável • Para os sistemas paralelos • Diminui a latência
  26. 26. Desvantagens • Sistemas distribuídos: • Heterogeneidade do sistema • Sincronização das cópias ou cache (se houver); • Aumento da vazão implica em aumento do uso da rede; • Transparência no acesso paralelo não é fácil de se implementar. • Gerenciamento do sistema • Controle de acesso aos recursos compartilhados • Falhas da rede podem comprometer o sistema. • Segurança e sigilo.
  27. 27. FUNCIONAL
  28. 28. Paradigma funcional • Paradigma de programação baseada em funções matemáticas. • Soluções elegantes, concisas e poderosas. • Resultados das funções dependem apenas dos valores de entrada. • Forte fundamentação teórica.
  29. 29. Paradigma funcional • Ausência de estados • Tudo é função Entrada Saída Program a
  30. 30. Paradigma funcional • Por que estudar o paradigma funcional? • Visão clara de conceitos fundamentais • Abstração • Recursão • Genericidade, sobrecarga, etc. • Ajuda na programação em outros paradigmas • Possibilita • Alta produtividade • Programas mais concisos • Menos erros
  31. 31. Paradigma funcional • Vantagens: • Alto nível de abstração • Programas pequenos, claros e rápidos. • Desvantagens • Podem vir a ser menos eficientes. • Exemplos: • Lisp, ML, Miranda e Haskell
  32. 32. Tendências • Integração de paradigmas • Aumentar o domínio da aplicação • Cautela • Não viole princípios básicos

×