GoConqr has a new look! Let us know what you think.

Mind map

paradigmas das linguagens de programação

Rute Cristina Bach Portuguese

Map content

paradigmas das linguagens de programação

  1. O termo paradigma significa modelo, isto é, a definição de um padrão a ser seguido. Esse conceito, que nasceu em 1900 e relacionava-se inicialmente somente à linguagem e comunicação humana, passou mais tarde a ser adotado também na Computação.

  2. Dois são os principais paradigmas da programação atualmente, a programação imperativa e a programação declarativa, cada qual sendo subdividida em novos paradigmas, como veremos a seguir.

  3. Programação imperativa

    • há uma grande preocupação quanto ao detalhamento do funcionamento do programa. O programa é visto como um conjunto de rotinas e subrotinas (daí ser também conhecida como procedural ou procedimental) e enfatizam-se as mudanças de estado do programa (registrada por meio de suas variáveis globais e locais).
  4. Programação estruturada

    • Na programação estruturada, o programador deve descrever todo o seu programa por meio de instruções, estruturas de dados e subrotinas e qualquer programa pode ser reduzido a três tipos de estruturas: sequência, decisão e interação.
      • Algumas das linguagens de programação consideradas estruturadas são: Pascal, C, COBOL e Fortran.
    • Vantagens: geralmente são linguagens mais fáceis de aprender, uma vez que envolve um menor número de conceitos distintos do que aqueles apresentados por outros paradigmas
    • Desvantagens: apresentam maiores dificuldades na representação de soluções para certos “problemas do mundo real”, que geralmente são mais complexos;
  5. Programação orientada a objetos

    • Na programação orientada a objetos, compreende-se a necessidade de compreender o problema por meio da relação existente entre as diversas entidades que participam do mesmo, sendo assim, a solução para o problema deve ser implementada levando-se em consideração os objetos e suas interações que sejam pertinentes ao universo do problema. Alguns exemplos de linguagens orientadas a objetos são C++, Object Pascal e Java.
  6. Programação concorrente

    • A programação concorrente visa estudar e propor como melhor desenvolver programas visando esse cenário, onde processos executam simultaneamente e concorrem por recursos, como a memória e o próprio processamento. Várias linguagens oferecem suporte à programação concorrente, como Java, C#, C++, C e Object Pascal. Como se pode perceber, uma mesma linguagem pode oferecer suporte a mais de um subparadigma.
    • Vantagens: aumento do desempenho, na medida em que melhor se utiliza de todos os recursos computacionais disponíveis; possibilidade de melhor modelagem dos programas, pois determinados problemas computacionais são concorrentes por natureza.
    • Desvantagens: programação mais complexa, com possíveis erros decorrentes da própria concorrência; difícil depuração devido ao aspecto não-determinístico que a solução pode toma
  7. Programação declarativa

    • Na programação declarativa, não há a ideia de estado do programa, como ocorre na programação imperativa.
  8. Programação funcional

    • programação funcional busca descrever o programa em torno de funções.
    • Vantagem: há uma maior transparência referencial, uma vez que todo o programa é composto por funções, tornando-se mais fácil efetuar uma inspeção do código. Desvantagem: não oferece alocação explícita de memória ou declaração explícita de variáveis, necessários para a resolução de muitos problemas reais.
    • Algumas linguagens que se utilizam dessa abordagem são APL, Lisp, ML, Haskell, OCaml e F#.
  9. Programação lógica

    • Duas linguagens de programação foram fundamentais para este paradigma, criando-se a partir delas duas famílias de linguagens lógicas: Planner e Prolog. Dentre as linguagens de programação derivadas de Planner, podemos destacar QA-4, Popler, Conniver e QLisp. Já dentre as linguagens de programação derivadas de Prolog, podemos apontar Mercury, Visual Prolog, Oz e Frill.
    • Vantagem: muito úteis em problemas que possam ser resolvidos por meio de dedução ou inferência. Desvantagem: pode haver explosão combinatorial da base de conhecimento levando a grande desperdício de recursos computacionais.
  10. Programação restritiva

    • A programação restritiva nasceu da programação lógica (motivo pelo qual muitos autores apontam-na como parte da programação lógica). Ela se utiliza de restrições na definição de relações entre as variáveis. Em inglês, denomina-se Constraint Programming.
    • • Um conjunto finito de variáveis; • Uma função que mapeia cada variável a um domínio finito; • Um conjunto finito de restrições.
  11. Linguagens de programação multiparadigma

    • A principal vantagem de tais linguagens é que o programador pode utilizar o paradigma que preferir em sua implementação. Entretanto, tem como desvantagem o fato de que algoritmos que utilizem mais de um paradigma em sua implementação podem ter sua compreensibilidade afetada.

Information

Description
Mind Map on paradigmas das linguagens de programação, created by Rute Cristina Bach on 14/04/2015.
Views
9
Rating

Feedback

What is it about?

What do you think of the new look?

How do you like it?