[PosComp] [2016] Questão 27
QUESTÃO 27 – Assinale a alternativa correta sobre o Paradigma de Programação Imperativo.
A) É baseado na arquitetura de Von Neumann.
B) Nos métodos e nos atributos, também são definidas as formas de relacionamento com objetos.
C) É baseada na arquitetura MVC (Model-View-Controller).
D) Não existem procedimentos ou funções.
E) Fácil legibilidade e manutenibilidade.
Resposta:
Criação do modelo
O fundamento da programação imperativa é o conceito de Máquina de Turing, que nada mais é que uma abstração matemática que corresponde ao conjunto de funções computáveis.
A Máquina de Turing foi aprimorada por John Von Neumann a uma arquitetura de computadores que fundamenta os computadores construídos até hoje. Isso explica, em parte, o sucesso das linguagens que seguem esse paradigma em relação às demais. Nesta arquitetura( usada hoje nos microcomputadores comercializados), tanto os dados como os programas são armazenados na mesma memória, e a CPU que processa as instruções, é separada da memória. Dessa forma, os dados e instruções devem ser transportados da memória para a CPU e os resultados das operações realizadas na CPU devem ser devolvidos para a memória.
Características Principais da Linguagem Imperativa
As linguagens imperativas também são chamadas de procedurais e se trata do modelo mais antigo de todos, a execução é baseada em comandos e armazenamento de dados. O paradigma imperativo foi predominante nas LP, pois são mais fáceis de traduzir para uma forma adequada para execução da máquina. Um programa imperativo é mantido em variáveis que são associadas com localizações de memória que correspondem a um endereço e um valor de armazenamento. O valor da variável pode ser acessado direta ou indiretamente, e pode ser alterado através de um comando de atribuição. O comando de atribuição introduz uma dependência de ordem no programa, ou seja, o valor da variável pode se modificar antes e depois do comando e isso garante a sequencia de instruções.
As funções de linguagem de programação imperativa são descritas como algoritmos que especificam como processar um intervalo de valores, a partir de um valor de domínio, com uma série de passos descritos. A repetição é usada para processar os valores e laços para varrer uma sequencia de localizações de memória (vetores, por exemplo), ou para acumular valor nas variáveis.
- Variáveis: modelam as células de memória
- Comandos de atribuição: são baseados nas operações de transferências de dados e instruções.
- Execução sequencial de procedimentos
- Forma interativa de repetição
Como Funciona a Programação Imperativa
- A essência da programação imperativa e também da Máquina de Turing se resume a três conceitos:
- A descrição de estados de uma máquina abstrata por valores de um conjunto de variáveis
- Reconhecedores desses estados - expressões compostas por relações entre esses valores ou os resultados de operações utilizando valores
- Comandos de atribuição e controle
O código fonte dos programas e computador, seguindo o paradigma imperativo possui marcações especiais (implíticas ou explícitas) que direcionam a sua execução pelo sistema operacional e, em última análise, pelo hardware. Embora as linguagens de programação modernas pertencentes a outros paradigmas tendam a facilitar cada vez mais a escrita do código, camuflando operações mais próximas às linguagens de baixo nível, podemos encontrar ainda a presença de estruturas de controle da mesma forma que ocorria em linguagens de programação de vinte ou trinta anos atrás.
As marcações utilizadas para controlar a execução dos programas são chamadas de estruturas de controle. As estruturas de controle são divididas em três grupos: sequência, seleção e repetição. A estrutura de sequência é implícita nos programas e indica que as instruções são executadas uma após a outra, seguindo uma sequência.
Modelo Computacional do Paradigma Imperativo
Programas centrados no conceito de um estado (modelado por variáveis) e ações (comandos) que manipulam o estado, são programas projetados em um paradigma imperativo, paradigma esse que também é denominado de procedural, por incluir subrotinas ou procedimentos como mecanismo de estruturação. Foi o primeiro paradigma a surgir e ainda é o dominante.
O paradigma imperativo está baseado na ideia de um estado que sofre modificações durante a computação. O estado é representado por um conjunto de associações de identificadores (variáveis globais e locais ativas do programa) em valores. A diferença fundamental com relação ao paradigma funcional é que esta associação é dinâmica, sendo constantemente modificada durante a execução de um programa. As linguagens imperativas oferecem uma variedade de comandos cuja execução envolve aspectos de controle, mas essencialmente modificação do estado do programa.
O elemento central de um programa imperativo é o comando, que pode ser primitivo (como atribuição, leitura e escrita) ou composto, como seqüência, condicional e iteração. Um importante mecanismo de estruturação das linguagens imperativas é o procedimento, que, como uma função, pode ser parametrizado, mas tem como corpo um comando, ao invés de uma expressão. Em geral, um programa em uma linguagem imperativa deixa de ser uma expressão e passa a ser um comando.
Elementos da Programação Imperativa
Os principais elementos da programação imperativa são:
- Definição de tipos de dados
- Expressões e atribuições
- Estruturas de controle de fluxo (programação estruturada)
- Definição de sub-rotinas (programação procedimental)
Técnicas em Programação Imperativa
- Modularidade dos Algoritmos (Programação estruturada)
- Modularidade das Estruturas de dados (Tipos abstratos de dados)
- Recorrência
Vantagens
- Eficiência (embute o modelo Von Neumann)
- Paradigma dominante e bem estabelecido
- Modelagem natural de aplicações do mundo real
- Possui tipagem fraca e também muito flexível (alguns especialistas consideram isso uma desvantagem)
- É fácil de se entender, sendo amplamente usada em cursos introdutórios de programação.
Desvantagens
- Possui difícil legibilidade
- Descrições demasiadamente profissional focaliza o "como" e não o "quê"
- Relacionamento indireto com a E/S (indução a erros/estados)
- Ainda se foca em como a tarefa deve ser feita e não em o que deve ser feito.
- Tende a gerar códigos confusos, onde tratamento dos dados são misturados com o comportamento do programa
Sendo assim a resposta correta é a letra A)
A) É baseado na arquitetura de Von Neumann.
Post a Comment