Paradigmas das linguagens de programação

Description

Mind Map on Paradigmas das linguagens de programação, created by Kaue Storch on 07/04/2015.
Kaue Storch
Mind Map by Kaue Storch, updated more than 1 year ago
Kaue Storch
Created by Kaue Storch over 9 years ago
81
0

Resource summary

Paradigmas das linguagens de programação
  1. Programação Imperativa
    1. Há uma grande preocupação quanto ao detalhamento do funcionamento de programas.
    2. Programação Estruturada
      1. Vantagens
        1. 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.
        2. Desvantagens
          1. Apresentam maiores dificuldades na representação de soluções para certos “problemas do mundo real”, que geralmente são mais complexos.
          2. 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.
          3. Programação orientada a objetos
            1. Vantagens
              1. Graças aos novos conceitos introduzidos por meio da orientação a objetos, conseguiu-se uma melhor organização do código, geralmente separado em classes e bibliotecas.
              2. Desvantagens
                1. A programação orientada a objetos apresenta um maior número de conceitos e abstrações necessárias, quando comparada à programação estruturada, o que pode tornar seu aprendizado um pouco mais complexo.
                2. 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.
                3. Programação concorrente
                  1. Vantagens
                    1. 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.
                    2. Desvantagens
                      1. 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 tomar.
                      2. 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.
                      3. Programação declarativa
                        1. Trata-se de uma abordagem focada em descrever o que o programa deve fazer e menos em como seus procedimentos devem funcionar.Na programação declarativa, não há a ideia de estado do programa, como ocorre na programação imperativa. Dentro do paradigma declarativo, podemos identificar a programação funcional, a programação lógica e a programação restritiva.
                        2. Programação funcional
                          1. Vantagens
                            1. 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.
                            2. Desvantagens
                              1. 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.
                              2. O código-fonte de um programa escrito em linguagem funcional pode ser interpretado como um conjunto de funções que recebem zero ou mais argumentos como entrada e retornam sempre um valor em sua saída. Cada função, então, deve realizar um conjunto de operações sobre os parâmetros de entrada a fim de obter a saída. Algumas linguagens que se utilizam dessa abordagem são APL, Lisp, ML, Haskell, OCaml e F#.
                              3. Programação lógica
                                1. Desvantagens
                                  1. Pode haver explosão combinatorial da base de conhecimento levando a grande desperdício de recursos computacionais.
                                  2. Vantagens
                                    1. Muito úteis em problemas que possam ser resolvidos por meio de dedução ou inferência.
                                    2. Esta é a abordagem da programação que faz forte uso da lógica matemática para a resolução de problemas, geralmente por meio de valores ou objetos e relações entre os mesmos, formulando-se assim proposições e regras.
                                    3. Programação restritiva
                                      1. 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.
                                      2. Linguagens de programação multiparadigma
                                        1. Na verdade, muitas linguagens permitem mais de um subparadigma dentro de um mesmo paradigma, por exemplo, a linguagem C++ permite tanto a programação estruturada, quanto à orientada a objetos e a programação concorrente. Entretanto, há um número bem mais reduzido de linguagens que permitem paradigmas realmente distintos, como a linguagem Oz. 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.
                                        Show full summary Hide full summary

                                        Similar

                                        Programação
                                        Prepara Palhoça
                                        Mapa Mental - Algoritmos e Programação
                                        Marcos Santos2025
                                        Mapa Mental de Revisão de Algoritmos e Programação I
                                        José Toniazzo
                                        Linguagens de Programação
                                        Lucas Miranda
                                        PROGRAMAÇÃO
                                        Guilherme Toniello
                                        LINGUAGEM DE PROGRAMAÇÃO I
                                        ailtonmidias
                                        Lógica de Programação- Dados
                                        Gabriela Alves
                                        INTRODUÇÃO AOS PARADIGMAS DAS LINGUAGENS DE PROGRAMAÇÃO
                                        cleversonsh
                                        006A - Linguagem de Programação - C# - Fundamentos
                                        Ethelberto Mello
                                        Prova Linguagem de Programação 1 bimestre
                                        Alexandre Nascimento
                                        Algoritmos e Lógica de Programação
                                        andriellicm