Paradigmas De programação. Por que Estudar ?
Quando o assunto é programação podemos afirmar que todo nosso esforço em desenvolver programas, de uma forma geral, é com o objetivo de resolver problemas e/ou otimizar processos. A ferramenta que usamos na construção de softwares são as linguagens de programação e, cada linguagem, por sua vez, tem suas vantagens e desvantagens. Podemos utilizar varias linguagens diferentes para resolver o mesmo problema e, é a partir desse ponto que surge a importância de se estudar os paradigmas nos quais essas linguagens são baseadas. Estudando os paradigmas de programação podemos entender melhor os processos por trás das LP's e descobrir quais linguagens podem ser mais adequadas para resolver determinados problemas.
Paradigma Imperativo
A programação imperativa é baseada em comandos que gerenciam, basicamente, a maneira com que os dados serão armazenados e usados no decorrer do programa. O nome vem do latim "imperare" que significa "Comandar". As linguagens imperativas estão intimamente relacionadas ao design ou a arquitetura dos computadores(A maquina de Von Neuman). A CPU ( Unidade central de processamento) é responsável por todo processamento de dados em um computador e, é baseado na forma como as CPU'S funcionam que foram desenvolvidas linguagens tais Como C e ADA.
http://www.instrutorkleber.blogger.com.br/TEORIA_DE_VON_NEWMAN.jpg
Então como podemos ver muitas coisas são possíveis na programação imperativa devido a sua relação com a arquitetura de Von Neumann(mais informações). As linguagens imperativas tem algumas importantes características : Variáveis, comandos de atribuição e sequência (ordem).
Neste exemplo temos uma variável "a" do tipo inteiro e atribuímos a ela o valor que ela tinha anteriormente mais cinco. Existem ainda o que chamamos de "laços" e que também é muito útil quando se quer acumular determinados valores em uma variável ou quando queremos que o programa execute um determinado número de vezes e etc. Exemplo:
http://www.instrutorkleber.blogger.com.br/TEORIA_DE_VON_NEWMAN.jpg
Então como podemos ver muitas coisas são possíveis na programação imperativa devido a sua relação com a arquitetura de Von Neumann(mais informações). As linguagens imperativas tem algumas importantes características : Variáveis, comandos de atribuição e sequência (ordem).
- Variáveis : As variáveis estão ligadas a um endereço de memória,ou seja, todo valor atribuído a uma variável é armazenada nesses endereços de memória e quando precisa-se usar o valor armazenado na variável a CPU vai naquele determinado endereço e pega o valor para, a partir daí, processá-lo.
- Comandos de atribuição: Tais comandos permitem que possamos alterar o estado de variáveis e, consequentemente, do programa. Com isso as variáveis mudam com o tempo.Veja o exemplo abaixo:
Neste exemplo temos uma variável "a" do tipo inteiro e atribuímos a ela o valor que ela tinha anteriormente mais cinco. Existem ainda o que chamamos de "laços" e que também é muito útil quando se quer acumular determinados valores em uma variável ou quando queremos que o programa execute um determinado número de vezes e etc. Exemplo:
- Sequência : Por ultimo e não menos importante é a ordem do programa. O computador Executa as instruções que fornecemos como uma sequência de comandos, portanto, devemos especificar o que queremos que ele faça primeiro no programa. É como se no programa existisse uma hierarquia. Por exemplo se vamos fazer uma vitamina e ligamos o liquidificador primeiro para só depois colocar os ingredientes isso vai dar M...(hahahaha).
Então é isso Ai Pessoal espero que tenham entendido algum conceitos que são utilizados na programação imperativa.
Referências : Watt, David A., Findlay,William. (2004) Programing Language Design Concepts, John Wiley&Sons. Ltd,the Atrium,Southern Gate, Chichester, England.
http://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_imperativa
http://informacaocomdiversao.blogspot.com.br/2006/01/programao-imperativa-versus-programao.html
http://www.codingunit.com/c-tutorial-for-loop-while-loop-break-and-continue



Ótimo post, Tiago! Fala-se muito em mudança de linguagens, envelhecimento de linguagens, linguagens obsoletas, mas em mudança de paradigmas comenta-se muito pouco; A mudanção do paradigma imperativo para outro implicaria diretamente na mudança da arquitetura básica da maioria dos computadores, penso que seria como uma reinvenção, aguardemos as necessidades que o futuro trará!
ResponderExcluirBoa observação mas só que a mudança de um paradigma para outro não necessariamente implica a mudança na arquitetura do computador.
ExcluirEntendo!
ExcluirTambém é importante estudar os paradigmas, porque se uma linguagem deixa de ser usada, e você tem que aprender uma nova do mesmo paradigma você vai aprender ela com mais facilidade.
ResponderExcluirA idéia é bem essa mesmo! E, além disso, você não só pode aprender outra linguagem como pode projetar uma nova linguagem e lidar melhor com certos tipos de problemas que, em algum momento, você tenha que resolver.
Excluir