Zusammenfassung der Ressource
Paradigmas das linguagens de programação
- Programação Imperativa
- Há uma grande
preocupação quanto ao
detalhamento do
funcionamento de
programas.
- Programação Estruturada
- 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. Algumas das linguagens de
programação consideradas estruturadas são: Pascal, C,
COBOL e Fortran.
- Programação orientada a objetos
- Vantagens
- 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.
- Desvantagens
- 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.
- 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
- 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 tomar.
- 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.
- Programação declarativa
- 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.
- Programação funcional
- Vantagens
- 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.
- Desvantagens
- 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.
- 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#.
- Programação lógica
- Desvantagens
- Pode haver explosão
combinatorial da base de
conhecimento levando a
grande desperdício de
recursos computacionais.
- Vantagens
- Muito úteis em problemas
que possam ser resolvidos
por meio de dedução ou
inferência.
- 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.
- 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.
- Linguagens de programação multiparadigma
- 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.