A evolução das linguagens de programação

Conceitos e evolução das linguagens de programação e seus elementos

Leia também:

Um programa de computador é um conjunto de instruções que ordenam tarefas a serem realizadas por um computador. Historicamente o primeiro programa de computador é atribuído a Ada Lovelace que em 1843 que desenvolveu um método para calcular os “Números de Bernoulli” utilizando a “Máquina Analítica” de Charles Babbage. 
A primeira aplicação prática da programação é atribuída a Hermann Hollerith que utilizou o conceito de programação para o processamento dos dados do censo Norte Americano em 1890.

O percursor da computação eletrônica, computador que recebeu o nome de “ENIAC”, em 1946, era programado por técnicos que conectavam manualmente os circuitos eletrônicos para realizar as tarefas desejadas.

Linguagens

Sendo o computador uma máquina eletrônica, ela só entende sinais elétricos, entretanto, o homem trabalha com uma grande quantidade de símbolos. Em uma análise rápida e simplista, podemos lembrar que, o homem entende e manipula:
  • 26 letras minúsculas do alfabeto;
  • 26 letras maiúsculas do alfabeto;
  • 10 símbolos numéricos;
  • 4 símbolos de operações;
  • Diversos símbolos de pontuação;
  • Etc.

Como criar sinais elétricos para todos estes símbolos, seria uma tarefa muito difícil, o homem procurou alternativas para informar com precisão o que desejava aos computadores. 

Então, para programar um computador o homem precisaria ligar e desligar cada um dos contatos dos milhares de circuitos elétricos existentes em um computador moderno, além do que, pequenas variações nos valores elétricos poderiam alterar dados

Este foi talvez o principal problema que praticamente inviabilizou a utilização de sistemas com muitos caracteres. Após diversos experimentos, nos primórdios da computação, optou-se por utilizar o que se convencionou chamar de “linguagem binária”, composta somente por dois símbolos, traduzidos eletricamente por dois sinais, energizado (ligado) e sem energia (desligado).

Linguagem de máquina

Em princípio, as operações realizadas por computadores podem também ser realizadas por seres humanos, a grande vantagem dos computadores com relação aos seres humanos está na velocidade que eles conseguem realizar as operações. Logicamente se o ser humano precisasse ficar ligando e desligando os circuitos esta vantagem deixaria de existir e o computador não teria função prática. Para contornar este problema, o homem encontrou um jeito de ordenar as operações de ligar e desligar do computador por meio de instruções.

Estas instruções são simplesmente dois números:
  • 1 => equivale à ligado.
  • 0 => equivale à desligado.
Esta linguagem composta unicamente por 0 e 1 é chamada de linguagem de máquina, que na verdade é a única linguagem que o computador entende diretamente.

Embora eletricamente tudo se resuma em conjuntos de “ligado” e “desligado”, na verdade os diferentes computadores precisam ser comandados de diferentes maneiras para que possam entender as ações de “ligar” e “desligar”, já traduzidos pelos os seres humanos como 1 e 0. Portanto, na verdade, as linguagens de máquina diferem de acordo com o tipo de máquina e também de acordo com outros elementos que surgiram posteriormente, chamados de Sistemas Operacionais, que, na verdade também são programas.

O que acontece sucintamente, é que diferentes tipos de máquinas têm funcionamentos internos diferentes, então, é necessário que as instruções “ligar” e “desligar” sejam fornecidas de maneira condizente com os circuitos internos não só dos computadores como era no passado, mas também dos novos dispositivos como tabletes, celulares e outros que são de fundamental importância no mundo atual.

Linguagem Assembly

Como escrever em linguagem de máquina se demonstrou muito trabalhoso para os seres humanos, estes começaram a utilizar abreviações, parecidas com palavras em inglês, para representar as operações elementares de computadores, na verdade conjuntos de zeros e uns. Estas linguagens foram chamadas de Linguagens Assembly. 

Programas tradutores destas Linguagens Assembly são chamados de Assemblers, tem a função de converter os comandos em “Linguagem Assembly” para a “Linguagem de Máquina”.
Na verdade, esta foi a primeira ideia dos programadores para simplificar suas tarefas, evitando, portanto, que eles precisassem escrever imensos conjuntos de 0 e 1.

Linguagem de Alto Nível

Embora as Linguagens Assembly tenham sido uma importante evolução ainda eram de difícil escrita, ficando, portanto, limitadas a poucos programadores. Com objetivo de facilitar a elaboração de programas, novas linguagens foram desenvolvidas utilizando cada vez mais palavras do cotidiano. 

Estas palavras, normalmente em inglês, facilitaram muito a criação de linguagens e deram origem ao que se convencionou chamar de “Linguagens de Alto Nível”. Estas linguagens foram assim chamadas por estarem mais distantes da linguagem de máquina, sendo, portanto, a linguagem de máquina a de mais baixo nível, por estar mais próxima da máquina.

Linguagens


Primeiras linguagens de alto nível

Com o decorrer do tempo, diversas Linguagens de Alto Nível, foram desenvolvidas, 
dentre elas:
  • FORTRAN (FORmula TRANslator = Tradutor de Fórmulas): Linguagem científica, desenvolvida pela IBM entre os anos 1954 à 1957.
    • Linguagem Científica

  • COBOL (Common Business Oriented Language = Linguagem de Orientação Comercial Comum): Desenvolvida por um grupo de fabricantes de computadores em 1959 para ser utilizada em programas comerciais.
    • Linguagem Comercial

  • PASCAL: Desenvolvida a partir de 1960 pelo Professor Nicklau Wirth destinada a ensinar programação em escolas e universidades.
    • Destinada para ensino

  • BASIC (Beginner’s All- Purpose Symbolic Instruction Code = Código de instruções simbólicas de programação geral para iniciantes:) Desenvolvida a partir dos anos de 1960 pelos professores Kemeny e Thomas Kurtz do Dartmounth College, também com objetivos educacionais.
    • Destinada para ensino

  • BCPL e B: Foram desenvolvidas por Martin Richards em 1967 como linguagens para escrever sistemas operacionais. Em 1970 Thompson utilizou o B para criar as primeiras versões do Sistema Operacional UNIX.
    • Linguagens boas para desenvolver sistemas operacionais
    • Linguagem de desenvolvimento com boa portabilidade 

  • C: Linguagem desenvolvida a partir da Linguagem B por Dennis Richic na Bell Laboratories, implementada em 1973. A grande vantagem da linguagem C é sua portabilidade, ou seja, pode ser utilizada para desenvolver linguagens para a maioria dos computadores.
    • Linguagens boas para desenvolver sistemas operacionais
    • Linguagem de desenvolvimento com boa portabilidade 

Evolução das linguagens de alto Nível

Ao longo dos anos, muitas linguagens surgiram, algumas acabaram esquecidas enquanto outras, ganharam novas versões.
As primeiras versões da maioria das linguagens de programação de alto nível, não foram desenvolvidas para interfaces gráficas, portanto o usuário não tinha a sua disposição uma grande quantidade de botões e menus que lhe permitiam escolher diferentes trechos do programa a serem executados. 

Programação Linear – Top Down

Fundamentalmente, estas linguagens, funcionavam sempre obedecendo uma sequência planejada, ou seja:

Programação Linear – Top Down
O programa era iniciado, realizava diversas instruções e ao encerrá-las apresentava os resultados e aguardava ações do usuário para dar continuidade a outras instruções. 

Após realizar estas novas instruções o programa novamente interrompia suas atividades e aguardava, normalmente fornecendo opções na tela, para que o usuário escolhesse entre algumas opções de continuidade. Esta sequência se repetia diversas vesses deste o início até o final do programa. 
Este tipo de programação era chamado de programação Linear ou Top Down (de cima para 
baixo).

São bons exemplos destas linguagens o Basic e o Pascal.

Programação estruturada

Com o decorrer do tempo e o consequente aumento dos programas, os desenvolvedores começaram a perceber que algumas partes do programa eram repetidas diversas vezes, por exemplo:
Abrir um banco de dados (Utilizado no exemplo para as operações de Cadastrar, Alterar e Excluir);
Procurar um item em um banco de dados (utilizado para alterar ou para excluir determinado item).

Com o objetivo de reutilizar várias vezes as mesmas rotinas, os programadores começaram a criar módulos ou sub-rotinas que poderiam ser chamados a qualquer momento tornando a escrituração dos programas mais rápidas e também mais aprimoradas, pois códigos que eram executados diversas vezes tinham sua elaboração mais cuidadosa e generalizada, podendo inclusive, ser utilizados em outros programas.
Programação estruturada
Este tipo de programação, recebeu o nome de Programação Estruturada ou Programação Modularizada.

A rotina “Cadastrar” precisa primeiramente abrir o banco de dados para em seguida efetuar o cadastro do novo usuário.
Programação estruturada

A rotina “Alterar” necessita utilizar primeiramente o módulo para “Abrir Bando de Dados” e posteriormente o módulo “Procurar Registro” que localizará o registro que deve ser alterado. Portanto estes dois módulos serão chamados durante a execução da rotina alterar.
Programação estruturada

A rotina “Excluir” irá inicialmente proceder da mesma maneira que a rotina “Alterar”, ou seja, primeiramente utilizará o módulo para “Abrir Bando de Dados” e posteriormente o módulo para “Procurar Registro” de maneira a encontrar o registro que deverá ser excluído.
Programação estruturada

Programação Voltada a Eventos

No início de 1990 com a popularização das Interfaces gráficas, que propiciava ao usuário diversas alternativas não só para dar diversos caminhos, como para até interromper a programação (fechando janelas) a qualquer momento, surgiram as linguagens chamadas de Visuais, que na verdade possuíam uma programação voltada a eventos, ou seja, o programa estava sempre pronto para diversos eventos que podiam ser disparados pelo usuário desde que ele escolhesse dentre as diversas opções disponíveis na tela, tais como “Botões”, “Barras de Menus”, “Menus Suspensos”, etc.
Popularização das Interfaces gráficas -- Linguagens Visuais

Estas linguagens embora escritas sequencialmente não possuíam mais as características de linguagens “Top Down”, mas continuaram utilizando os conceitos de módulos e sub-rotinas oriundas da programação Estruturada. Destas vale a pena citar o Delphi que foi desenvolvido pela Borland a partir do Pascal e Visual Basic que foi uma implementação Microsoft do Basic para ser utilizado em ambiente Windows. Estas linguagens essencialmente voltadas a eventos já usavam alguns conceitos de orientação a objetos.

Programação Orientada a Objetos

Na programação estruturada os módulos e sub-rotinas normalmente executam operações, tais como: abertura de banco de dados, execução de cálculos, pesquisa de uma ocorrência em dados, etc. Por este motivo, costuma-se dizer que a programação estruturada na verdade é um conceito de programação voltada a operações que recebe e passa dados para o programa.

Em paralelo ao conceito de programação estruturada, desenvolveu-se o conceito de Programação Orientada a Objetos, onde os “Módulos” são criados para fornecer características a objetos, ou seja, são criadas Classes de objetos com suas características.

Na programação orientada a objetos, cada objeto possui seus próprios Módulos e Dados. 

A linguagem C++, desenvolvida nos anos 80 na Bell Laboratories , como implementação do C, começou a difundir os conceitos de “Programação Orientada a Objetos POO”.

  • C++    <----   Introduziu conceito de POO
    • Programação Estruturada
      • Módulos normalmente
         executam operações
    • Programação Orientada a Objetos
      • São criadas classes de objetos com
         características e propriedades 

Programação Multiplataforma

Em 1991 a Sun Microsystems vislumbrou um futuro onde não só computadores, mas diversos tipos de equipamentos, como telefones e outros eletrodomésticos que surgiriam ao longo do tempo precisariam de programação. Baseado neste conceito deu início ao desenvolvimento de uma linguagem que tinha como propósito ser independente de plataforma. Este projeto deu origem a linguagem JAVA.

A linguagem JAVA, tomou grande impulso a partir de 1993 com o advento da World Wide Web onde toda a potencialidade o JAVA encontrou o momento para aparecer para o mundo da programação.

Com o avanço do JAVA e do C++, linguagens multiplataformas e portáveis, tanto para computação local como para distribuições em redes e Internet e também possíveis de serem utilizadas em diversos tipos equipamentos a Microsoft incrementou o desenvolvimento da plataforma a qual deu o nome de .NET (dot NET ou ponto NET)

  • JAVA / C++
    • Dispositivos portáteis
    • Desenvolvida pela Sun Microsystems
    • Multiplataforma 
    • Local – Internet
  • .NET
    • Plataforma da Microsoft que tem por objetivo ser única para todas as linguagens

Nenhum comentário:

Postar um comentário