Baixe o app para aproveitar ainda mais
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.
Compartilhar