2.1 Paradigma Imperativo
O fundamento para o paradigma imperativo é o conceito da 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 aproximada por John von Neumann a uma arquitetura de computadores que fundamenta os computadores construídos até hoje .
A essência da programação imperativa se resume a três conceitos :
- estados de uma máquina abstrata descritos por valores de um conjunto de variáveis;
- reconhecedores de estados - expressões compostas por relações entre esses valores ou os resultados de operações utilizando valores;
- comandos de atribuição e controle que manipulam o estado.
Em outras palavras, o programa é representado por um conjunto de dados que representam o estado do mesmo, e através da manipulação desses dados (leitura, criação de expressões e geração de novos valores) o estado do programa é alterado até que a solução do problema seja obtida. Ou seja, programas imperativos são sequências de comandos para o computador executar. Por esse motivo, é dito que o paradigma imperativo foca em “como” resolver um problema.
Por exemplo, o programa a seguir, em linguagem C , que é uma linguagem imperativa, resolve o problema de obter todos os números binários de três dígitos. Note que esse programa especifica “como” computar esse resultado, passo a passo. Para cada estado (representado pelos valores das variáveis A, B e C), o comando printf()mostra um número binário distinto.
Exemplo 1:
include
int main()
{
for(int A=0; A<2; A++)
for(int B=0; B<2; B++)
for(int C=0; C<2; C++)
printf("%d%d%d\n",A,B,C);
return 0;
}