Essays.club - TCC, Modelos de monografias, Trabalhos de universidades, Ensaios, Bibliografias
Pesquisar

O Paradigmas das linguagens de programação

Por:   •  27/11/2018  •  1.122 Palavras (5 Páginas)  •  307 Visualizações

Página 1 de 5

...

Com o desenvolvimento da tecnologia, surgiu um novo conceito: o paralelismo,

isto é, a possibilidade de executar-se mais de uma tarefa paralelamente, seja por meio de

vários núcleos processadores, seja por meio de um só, executando-se assim um

paralelismo emulado.

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 tomar.

4.2 Programação declarativa

A 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.

Sendo assim, apresenta-se como um paradigma oposto ao paradigma imperativo, uma

vez que se preocupa com “o que deve fazer”, em vez de preocupar-se com “como deve

ser feito”.

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.

4.2.1 Programação funcional

A programação funcional busca descrever o programa em torno de funções.

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#.

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.

4.2.2 Programação lógica

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.

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.

4.2.3 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.

Seu uso pode ser interessante em problemas cuja solução possa, de certa forma,

ser restrita a um número de valores. Tal tipo de problema é conhecido como CSP

(Constraint Satisfaction Problem), no qual são dados:

∙ 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.

4.3 Linguagens

...

Baixar como  txt (8.8 Kb)   pdf (50.9 Kb)   docx (17.6 Kb)  
Continuar por mais 4 páginas »
Disponível apenas no Essays.club