Buscar

EL-cap2-ParadigmasDeLPs-notasAula-130409-00h17

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

*
2.*
2. Paradigmas de LPs
Paradigma em nosso contexto de Linguagens de Programação é um conjunto de propriedades que servem para classificar uma FORMA DE PROGRAMAÇÃO bem como as LINGUAGENS apropriadas a essa programação.
Flávio
Varejão
*
2.*
2. Paradigmas de LPs
A classificação acima é uma adaptação da encontrada em Appleby (1991), excluindo LBD e trocando distribuído por concorrente.
Flávio
Varejão
Imperativo
Orientado 
a Objeto 
Estruturado
Concorrente
Paradigmas
Declarativo
Funcional 
Lógico
*
2.*
2.1 Paradigma Imperativo
Um estado representa uma configuração qualquer da memória do computador.
Paradigma Imperativo engloba 
os paradigmas fundamentados na idéia de 
computação como um processo que realiza MUDANÇA DE ESTADOS.
Flávio
Varejão
Programas em LPs imperativas especificam como uma computação é realizada 
por uma seqüência de alterações no estado da memória do computador.
*
2.*
2.1 Paradigma Imperativo - Enfoque
Os conceitos fundamentais são de:
variável, valor e atribuição.
Especificar como um processamento deve ser efetuado no computador.
Flávio
Varejão
Variáveis são vistas como um conjunto de células de memória.
Variáveis possuem um valor associado em um determinado instante do processamento. 
O valor pode ser alterado por meio de operações de atribuição.
*
2.*
2.1 Paradigma Imperativo - Subdivisões
O PARADIGMA IMPERATIVO 
é subdividido em:
Flávio
Varejão
Orientado 
a Objeto 
Estruturado
Concorrente
*
2.*
2.1.1 Paradigma Imperativo - Estruturado
Exemplo de linguagens: Algol, PASCAL e C.
Flávio
Varejão
Surgiram como alternativa à seqüência monolítica de comandos e o uso de desvios incondicionais adotados nas LPs iniciais, que levavam à ocorrência de erros e não ajudavam na produtividade do programador. 
O fluxo de controle de execução dos programas incentiva a divisão do programa em subprogramas e blocos aninhados.
Enfoque nas abstrações das estruturas de controle.
Sua programação baseia-se na idéia de desenvolvimento de programas por refinamentos sucessivos (top-down).
*
2.*
2.1.2 Paradigma Imperativo – Orientado a Objeto
Exemplo de linguagens: Smalltalk, C++, Java.
Flávio
Varejão
Seu objetivo é tornar o desenvolvimento de um sistema mais rápido e confiável, por seus conceitos.
Abstração de dados é o elemento básico da programação.
Principal justificativa: ajuda ao programador diante da maior complexidade nos sistemas de software.
Classes são abstrações que definem uma estrutura de dados e um conjunto de operações que podem ser realizadas sobre seus dados. 
Objetos são instâncias de classes.
Outros conceitos são herança e polimorfismo.
*
2.*
2.1.3 Paradigma Imperativo – Concorrente
Linguagens Populares que dão suporte ao desenvolvimento desses sistemas concorrentes: 
ADA e Java.
Flávio
Varejão
Os sistemas concorrentes podem usar uma única unidade de processamento ou várias unidades em paralelo.
Quando há várias unidades em execução, elas podem estar em uma mesma máquina ou distribuídas.
A programação concorrente ocorre em cada recurso que esteja sendo disputado por vários clientes ao mesmo tempo.
Esses sistemas podem compartilhar dados ou dispositivos periféricos.
*
2.*
2.2 Paradigmas Contrastes
Flávio
Varejão
No paradigma declarativo,
o programador não se preocupa
No imperativo, os programas são especificações de como deve ser realizada a tarefa.
No declarativo, os programas são especificações sobre o que é essa tarefa. 
Contraste
sobre a melhor maneira de utilizar um computador. 
como o computador é implementado;
*
2.*
2.2 Paradigma Declarativo
Flávio
Varejão
Programas, na maioria, são especificações de relações ou funções.
O programador só se preocupa em descrever de forma abstrata a tarefa a ser resolvida.
Não existem atribuições a variáveis dos programas uma vez que as variáveis declarativas são de fato incógnitas e não representam células de memória.
Os interpretadores ou compiladores dessas linguagens tornam transparente a necessidade de alocação de memória.
*
2.*
2.2.1 Paradigma Declarativo - Funcional
Flávio
Varejão
Objetivo da programação funcional: 
definir uma função que retorne um valor como a resposta do problema.
Linguagens funcionais operam apenas sobre funções, as quais recebem, como argumento, valor ou listas de valores, e retornam um valor. 
*
2.*
2.2.1 Paradigma Declarativo - Funcional
Flávio
Varejão
Um programa funcional é representado por uma função. 
A execução de um programa funcional acontece por uma chamada de função.
Uma função freqüentemente chama outras funções para gerar um valor de retorno.
*
2.*
2.2.1 Paradigma Declarativo - Funcional
Flávio
Varejão
As principais operações nesse tipo de programação são a aplicação de função, a composição de funções, e a chamada recursiva de funções.
Linguagens funcionais operam apenas sobre funções, as quais recebem, como argumento, valor ou listas de valores, e retornam um valor. 
Outra característica importante é que as funções podem ser passadas como parâmetros a outras funções.
Exemplos de LPs: HASKELL, ML, LISP e derivadas
1
2
3
*
2.*
2.2.2 Paradigma Declarativo - Lógico
Flávio
Varejão
Um predicado define uma relação entre constantes ou variáveis.
Linguagens lógicas são normalmente baseadas em um subconjunto do cálculo de predicados.
Um programa lógico é composto por cláusulas que definem predicados e relações factuais.
*
2.*
2.2.2 Paradigma Declarativo - Lógico
Flávio
Varejão
Quando uma questão é formulada, um mecanismo de inferência tenta deduzir novos fatos a partir dos existentes para verificar a veracidade da questão.
O exemplo mais conhecido de linguagem no paradigma lógico é PROLOG.
A diferença nesse paradigma é que a execução dos programas corresponde a um processo de dedução automática.

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando