Apresentação final
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
5,741
On Slideshare
5,510
From Embeds
231
Number of Embeds
9

Actions

Shares
Downloads
71
Comments
0
Likes
2

Embeds 231

http://mediacenter.claretianas.com.br 73
http://www.slideshare.net 63
http://sistemastecnolife.blogspot.com 50
http://sistemastecnolife.blogspot.com.br 37
http://sistemastecnolife.blogspot.pt 3
http://jujo00obo2o234ungd3t8qjfcjrs3o6k-a-sites-opensocial.googleusercontent.com 2
http://www.sistemastecnolife.blogspot.com 1
http://www.sistemastecnolife.blogspot.com.br 1
http://sistemastecnolife.blogspot.mx 1

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. GRUPO: ELISA FERNANDES KEITH CARVALHO LUCAS VILLAR NAYANE GETIRANA VALMON GAUDENCIO SistemasTecnoLife.blogspot.com Paradigmas de linguagem de programação
  • 2. ALUNA: ELISA CRAVO FERNANDES SistemasTecnoLife.blogspot.com Introdução à LP’s
  • 3. 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?
  • 4. O que é um Paradigma?
    • Modelo, padrão
    • É um modelo imperativo de uma realidade
    • Permite organizar as idéias com vista:
      • Ao atendimento dessa realidade
      • À determinação de qual é a melhor forma de atuar sobre essa realidade
  • 5. 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.
  • 6. 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
  • 7. História
    • A primeira linguagem de programação para computadores foi provavelmente Plankalkül, criada por Konrad Zuse na Alemanha Nazista, mas que teve pouco ou nenhum impacto no futuro das linguagens de programação.
    • A primeira linguagem de programação de alto nível amplamente usada foi Fortran, criada em 1954.
  • 8. Por que estudar LP’s ?
    • Programação é central para computação
    • Linguagens de consulta a banco de dados têm muitos dos conceitos de linguagens de programação
    • Linguagens de comando de sistemas operacionais têm muitos dos conceitos de linguagens de programação
    • Linguagens de descrição de hardware têm muitos dos conceitos de linguagens de programação
    • Processamento de linguagem natural é relacionado a processamento de linguagens de programação
  • 9. Para que servem as LP’s ?
    • Permitem que programadores tenham uma maior produtividade, ajudando-os a expressar suas intenções mais facilmente do que quando comparado com a linguagem que um computador entende nativamente (código de máquina).
    • Tornam os programas menos dependentes de computadores ou ambientes computacionais específicos
  • 10. Propriedades Desejáveis em uma LP
    • Legibilidade
    • Regibilidade
    • Confiabilidade
    • Eficiência
    • Facilidade de aprendizado
    • Ortogonalidade
    • Reusabilidade
    • Modificabilidade
    • Portabilidade
  • 11. Por que tantas LP’s ?
    • Propósitos diferentes
    • Avanços tecnológicos
    • Interesses comercias
    • Cultura e background científico
  • 12. ALUNO: LUCAS VILLAR SistemasTecnoLife.blogspot.com Paradigma Imperativo e Orientado a Objeto
  • 13. O Paradigma Imperativo
    • Programas centrados no conceito de um estado (modelado por variáveis) e ações (comandos) que manipulam o estado
    • Paradigma também denominado de procedural, por incluir sub-rotinas ou procedimentos como mecanismo de estruturação
    • Primeiro paradigma a surgir
      • Ainda é muito utilizado
  • 14. Modelo Computacional do Paradigma Imperativo Entrada Programa Saída Estado
  • 15. Vantagens do modelo imperativo
    • Eficiência (embute modelo de Von Neumann)
    • Modelagem “natural” de aplicações do mundo real
    • Paradigma dominante e bem estabelecido
  • 16. Desvantagens do paradigma imperativo
    • Relacionamento indireto entre E/S resulta em:
      • difícil legibilidade
      • erros introduzidos durante manutenção
      • descrições demasiadamente operacionais focalizam o como e não o que
  • 17. Alguns exemplos de linguagens do modelo imperativo
    • Ada
    • Algol
    • Basic
    • C
    • Cobol
    • Fortran
    • Pascal
    • Python
  • 18. O Paradigma Orientado a Objetos
    • Não é um paradigma no sentido estrito: é uma subclassificacão do imperativo
    • A diferença é mais de metodologia quanto à concepção e modelagem do sistema
    • A grosso modo, uma 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 (cujos elementos são objetos)
  • 19. 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
  • 20. Vantagens do Paradigma Orientado a Objetos
    • Todas as do estilo imperativo
    • Classes estimulam projeto centrado em dados: modularidade, reusabilidade e extensibilidade
    • Aceitação comercial crescente.
  • 21. Problemas do Paradigma OO
    • Semelhantes aos do paradigma imperativo, mas amenizadas pelas facilidades de estruturação
  • 22. Alguns exemplos de linguagens do modelo OO
    • Ada
    • Algol
    • Basic
    • C
    • Cobol
    • Fortran
  • 23. ALUNO VALMON GAUDENCIO DA SILVA BARBOSA SistemasTecnoLife.blogspot.com Paradigma Paralelo e Distribuído
  • 24. Paradigma Concorrente – (Paralelo e Distribuído)
    • Paradigma Concorrente
    • Paradigma Paralelo e Distribuído
    • + Vantagens e Dificuldades
    • + Suporte Computacional
  • 25. Panorama Atual
  • 26. Paradigma Concorrente
    • Se bem utilizado, o paralelismo resulta em um melhor desempenho dos programas.
    • + Mais threads --> processador melhor utilizado
    • No entanto, podem ocorrer problemas no acesso concorrente a dados e recursos.
    • + Dados podem se tornar inconsistentes ao serem acessados concorrentemente
    • (ex.: duas pessoas editando o mesmo arquivo)
    • + Alguns recursos não podem ser compartilhados
    • (ex.: dois programas usando a impressora)
  • 27. Como prevenir que tarefas concorrentes interfiram umas nas outras.
    • 1 bool saque( int quantia )
    • 2 {
    • 3   if( balanco > quantia )
    • 4  {
    • 5     balanco = balanco - quantia;
    • 6     return true;
    • 7   }
    • 8   else
    • 9   {
    • 10     return false;
    • 11  }
    • 12 }
  • 28. Paradigma paralelo
    • O que é?
    • Consiste em executar simultaneamente várias partes de uma mesma aplicação.
    • Tornou-se possível a partir do desenvolvimento de sistemas operacionais multitarefa e paralelos.
    • 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.
  • 29. Paradigma Distribuído
    • O que é?
    • Consiste em executar aplicações cooperantes em máquinas diferentes.
    • Tornou-se possível a partir da popularização das redes de computadores.
    • Aplicações são executadas em máquinas diferentes interligadas por uma rede.
    • Intranets
    • Internet
    • Outras redes públicas ou privadas
  • 30. Diferenças
    • Acoplamento
    • Sistemas paralelos são fortemente acoplados: compartilham hardware ou se comunicam através de um barramento de alta velocidade
    • Sistemas distribuídos são fracamente acoplados
    • Previsibilidade
    • O comportamento de sistemas paralelos é mais previsível; já os sistemas distribuídos são mais imprevisíveis devido ao uso da rede e a falhas.
    • Influência do Tempo
    • Sistemas distribuídos são bastante influenciados pelo tempo de comunicação pela rede; em geral não há uma referência de tempo global.
    • Em sistemas paralelos o tempo de troca de mensagens pode ser desconsiderado.
    • Controle
    • Em geral em sistemas paralelos se tem o controle de todos os recursos computacionais; já os sistemas distribuídos tendem a empregar também recursos de terceiros.
  • 31. Vantagens
    • Usam melhor o poder de processamento.
    • Apresentam um melhor desempenho.
    • Permitem compartilhar dados e recursos.
    • Podem apresentar maior confiabilidade.
    • Permitem reutilizar serviços já disponíveis.
    • Atendem um maior número de usuários.
    • ...
  • 32. Dificuldades
    • Desenvolver, gerenciar e manter o sistema.
    • Controlar o acesso concorrente a dados e a recursos compartilhados.
    • Evitar que falhas de máquinas ou da rede comprometam o funcionamento do sistema.
    • Garantir a segurança do sistema e o sigilo dos dados trocados entre máquinas.
    • Lidar com a heterogeneidade do ambiente.
    • ...
  • 33. Plataformas de Execução
    • Um S.O. multitarefa permite simular o paralelismo em um único processador, alternando a execução de processos.
    • Um processador com núcleo múltiplo permite paralelismo real entre processos, executando múltiplas instruções por ciclo.
  • 34. Plataformas de Execução
    • Uma Placa-Mãe Multiprocessador permite que cada processador execute um processo.
    • Um Cluster é uma solução de baixo custo para processamento de alto desempenho.
  • 35. ALUNA: KEITH CARVALHO SistemasTecnoLife.blogspot.com Paradigma funcional
  • 36. Linguagem funcional
      • É um paradigma de programação baseada em funções matemáticas.
      • Um programa pode ser visto como um mapeamento de valores de entrada em valores de saída.
  • 37. Entrada Programa Saída Estado Entrada Programa Saída
  • 38.
    • O mapeamento é feito de forma direta. O programa é uma função tipicamente composta por sub-funções mais simples.
    • Programação funcional exclui atribuição e controle, portanto LISP não é uma linguagem funcional pura.
    • O relacionamento entre funções é bastante simples:
    • uma função pode chamar outra ou o resultado de uma função pode ser usado como argumento de outra.
  • 39.
    • Em programação funcional, variáveis, comandos e efeitos colaterais são excluídos.
    • Programas são escritos por meio de expressões, funções e declarações.
    • Paradigma funcional tem sido mais usado academicamente que no desenvolvimento de software.
    • O interpretador de linguagem funcional atua como uma calculadora: lê, calcula e mostra o resultado.
  • 40.
    • Em resumo:
    • • Programação Imperativa : Uso de variáveis, comandos e procedimentos.
    • • Programação Funcional : Uso de expressões e funções.
  • 41. Pascal
    •    program  fatorial2;    uses  crt;    var  n:integer;         function  fat(n:integer):integer;      var  f,i:integer;      begin       f:=1;      i:=1;        while  (i<n)  do        begin         i:=i+1;         f:=f*i        end ;       fat:=f      end ;       begin     read(n);      if  n>=0  then  writeln(fat(n))      else  writeln('valor inválido')    end .
  • 42. Common Lisp:
    • (defun fatorial (n)
    • (if (= n 0)
    • 1
    • (* n (fatorial (- n 1)))))
  • 43. Vantagens do Paradigma funcional
    • As linguagens funcionais fornecem um alto nível de abstração, o que faz com que os programas funcionais sejam mais pequenos, claros, rápidos.
  • 44. Desvantagem do Paradigma funcional
    • Os programas funcionais podem ser menos eficientes.
  • 45. Exemplos:
    • Lisp, ML, Miranda e Haskell
    • Lisp: A primeira LP funcional criada por john Macharthy no fim dos anos 50.
    • Haskell: surgiu no fim dos anos 80.
    • http://www.haskell.com.br
  • 46. ALUNA: NAYANE GETIRANA SistemasTecnoLife.blogspot.com Paradigma Lógico
  • 47. O que é Lógica de programação?
    • Lógica de programação é a técnica de encadear pensamentos para atingir determinado objetivo.
    • Programação em lógica é uma teoria que representa um modelo abstrato de computação, e faz uso da lógica matemática.
  • 48. O que é uma seqüência Lógica?
    • Nada mais é que uma série de instruções, que são um conjunto de regras ou normas definidas para a realização ou emprego de algo.
  • 49. Características
    • Uma das características principais das linguagens para programação em lógica é sua semântica declarativa.
  • 50. Principais linguagens lógicas
    • Prolog
    • Mercury
    • Sparcl
  • 51. Os ‘meios’ gerados pelos paradigmas de programação.
    • No meio gerado pela programação em lógica, um programa não contem instruções explícitas à máquina. Em vez disso, ele estabelece ‘fatos’ e ‘regras sobre a área do problema como um conjunto de axiomas lógicos, que são ‘interpretados’ como ‘programas’.
  • 52. Exemplo:
    • fatorial(0,1).
    • fatorial(N,Fat):-N>0,
    • N1 is N-1,
    • fatorial(N1,Fat1),
    • Fat is Fat1*N*
  • 53. Vantagens
    • Em princípio, todas do paradigma funcional
    • Permite concepção da aplicação em um alto nível de abstração (através de associações entre E/S)
    • Problemas
    • Em princípio, todos do paradigma funcional
    • Linguagens usualmente não possuem tipos, nem são de alta ordem
  • 54. Histórico: Origem de LPs
    • FORTRAN (1957) aplicações numéricas
    • LISP (1959)
    • programação funcional
    • ALGOL (1960)
    • programação estruturada
    • COBOL (1960)
    • aplicações comerciais
    • BASIC (1964)
    • ensino para leigos
    • C++ (1985)
    • disseminação da programação orientada a objetos
    • PASCAL (1971)
    • ensino de programação estruturada; simplicidade
    • C (1972)
    • implementação de UNIX
    • PROLOG (1972)
    • programação lógica
    • SMALLTALK (1972)
    • programação orientada a objetos
    • ADA (1983)
    • programação concorrente
    • JAVA (1995)
    • mais simples e confiável que C++; internet
  • 55.