Mindmap
paradigmas das linguagens de programação
Inhalt der Mindmap
paradigmas das linguagens de programação
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.
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.
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).
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;
- 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.
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.
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
Programação declarativa
- Na programação declarativa, não há a ideia de estado do programa, como ocorre na programação imperativa.
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#.
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.
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.
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.
Informationen
- Beschreibung
- Mindmap am paradigmas das linguagens de programação, erstellt von Rute Cristina Bach am 14/04/2015.
- Erstellt von
- Rute Cristina Bach
- Aufrufe
- 9
- Bewertung