Bom pessoal,
depois de conhecer sobre a linguagem funcional
vamos ter conhecimento de uma que a constrasta: A Linguagem Imperativa!
Mas antes de aprofundarmos nela,
vamos ter conhecimento de uma que a constrasta: A Linguagem Imperativa!
Mas antes de aprofundarmos nela,
vale ressaltar um fator que exerce um
efeito crucial nos projetos das linguagens de programação:
efeito crucial nos projetos das linguagens de programação:
a arquitetura do computador.
Boa parte das linguagens de programação nos últimos anos foram projetadas em torno da arquitetura do computador, conhecidas por arquitetura de von Neumann.
Mas o quer dizer isso??
Boa parte das linguagens de programação nos últimos anos foram projetadas em torno da arquitetura do computador, conhecidas por arquitetura de von Neumann.
Mas o quer dizer isso??
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.
As linguagens imperativas estruturadas sofrem no entanto de uma falta de flexibilidade dadas o caráter sequencial das instruções. Contrariamente a programação declarativa, a programação imperativa introduz um paradigma de programação que descreve a computação em termos de um estado de um programa e acções que modificam esse estado, tal como o modo imperativo nas linguagens naturais (faladas e escritas) expressa comandos para perfazer acções, as linguagens imperativas expressam uma sequencia de comandos para um computador efetuar.
Conhecendo as características principais da linguagem imperativa....
* 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 instruções
* Forma interativa de repetição
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.
Técnicas em programação Imperativa:
*Modularidade dos Algoritmos (Programação estruturada)
*Modularidade das Estruturas de dados (Tipos abstratos de dados)
*recorrência
Exemplos de programação imperativa...fortran, algol, pascal, c, ada , basic, cobol, python.
Analisando dois exemplos de Linguagem Imperativa:
FORTRAN e C!!!!!!!
FORTRAN.....
Valores, tipos e expressões....
- tipos: integer, real, double precision,
complex, logical; vetor: dimension
(dim1, dim2, dim3), real, integer
- constantes lógicas: true/false
- operadores: **,*,/,+,-,ge.,gt.,le.,eq., ne., and., or.
Comando e sequências....
- if () then
….
end if
if ()
….
else if ( ) then
….
else
….
end if
- comandos I/O: open, close, read, write, print, rewind, endfile
-goto, continue, pause, stop
Declaração, procedimentos e funções...
- declaração var:
- funções: function()
- proc: procedure()
Linguagem C....
Valores, tipos e expressões...
- tipos: char, int, float, double, struct, union
- operadores: -,+,*,/,%,++,>,>=,=,
!=,&&,,!,&
bit a bit: &,,^,~, <<,>>
Comandos e sequências....
if ()
else
for(inic; cond, incremento)
switch (){
case:....break;
case:....break;
default:...;
}
while () {…;}
do....
while ();
return, goto, break
Declarações, procedimentos e funções...
- declaração var: ...;
- cosntantes const= ;
- funções:()
by Sara Mizraim Oliveia e Daniel Alex Rios
FORTRAN.....
Valores, tipos e expressões....
- tipos: integer, real, double precision,
complex, logical; vetor: dimension
- constantes lógicas: true/false
- operadores: **,*,/,+,-,ge.,gt.,le.,eq., ne., and., or.
Comando e sequências....
- if (
….
end if
if (
….
else if ( ) then
….
else
….
end if
- comandos I/O: open, close, read, write, print, rewind, endfile
-goto, continue, pause, stop
Declaração, procedimentos e funções...
- declaração var:
- funções: function
- proc: procedure
Linguagem C....
Valores, tipos e expressões...
- tipos: char, int, float, double, struct, union
- operadores: -,+,*,/,%,++,>,>=,=,
!=,&&,,!,&
bit a bit: &,,^,~, <<,>>
Comandos e sequências....
if (
else
for(inic; cond, incremento)
switch (
case
case
default:...;
}
while (
do....
while (
return
Declarações, procedimentos e funções...
- declaração var: ...
- cosntantes const
- funções:
by Sara Mizraim Oliveia e Daniel Alex Rios
Referências.....
http://www.do.ufgd.edu.br
http://www.inf.unisinos.br
Gostei da postagem pela simplicidade das palavras, sinteticidade e clareza.
ResponderExcluirExemplos de mais de uma linguagem para facilitar o entendimento.
Parabéns!
Legal o post de vocês.
ResponderExcluirPelo que entendi a linguagem imperativa é baseada em variáveis jutamente com o uso de memória.....
Bacana, parabéns!!!
Gostei muito da Postagem de Vocês. Então pesquisei sobre o assunto e descobri o quanto a linguagem java esta sendo utilizado porque Java é uma linguagem Imperativa, isto é, uma linguagem baseada diretamente na arquitetura de von Neumann. E mais especificamente está construída sob o paradigma da Programação Orientada a Objetos que trás consigo uma série de conceitos tais como:
ResponderExcluirCLASSE E OBJETO
ENCAPSULAMENTO E ABSTRAÇÃO
HERANÇA DE CLASSE
MÉTODOS, MÉTODO CONSTRUTOR, SOBRECARGA E POLIMORFISMO.
ASSOCIAÇÃO E COMPOSIÇÃO
A correta aplicação de tais técnicas traz benefícios para nós programadore que passa a trabalhar com um maior nível de abstração, modularização e reutilização.
Em um projeto orientado a objetos tem-se como meta identificar o melhor conjunto de objetos para descrever um sistema de software. O funcionamento deste sistema se dá através do relacionamento e troca de mensagens entre estes objetos.
Espero ter contribuído para trabalho de vocês.
Parabéns.
A linguagem imperativa é muito interressante pelo fato de que as linguagem baseadas na arquitetura de Von Neuman são base das linguagens que hoje são as amis usadas.
ResponderExcluirWLW!!!