[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.
[PosComp] [2016] Questão 27 [PosComp] [2016] Questão 27 Reviewed by Vinicius dos Santos on 02:32:00 Rating: 5

Nenhum comentário

Escreve ai sua opinião!