Histórico das Linguagens de Programação - Década de 1970

Histórico das Linguagens de Programação - Década de 1970

Esta página tem o resultado da pesquisa feita pelo aluno Gabryela Barros sobre o histórico das linguagens de programação da década de 1970.


1. Programação estruturada e Portabilidade

1.1 Programação estruturada

Tendo origem na década de 50, a programação estruturada surgiu com o intuito de modificar o paradigma de programação, sem o uso de desvios incondicionais no fluxo de execução de instruções. Tais desvios incondicionais poderiam dificultar manutenções corretivas no programa, além de simplesmente inviabilizar a evolução do software. A programação linear era a técnica usada nessa época e fazia uso de desvios incondicionais para construir a lógica do programa. A instrução GOTO era usada para implementar tais desvios incondicionais e seu uso foi descontinuado com o aparecimento da programação estruturada.
A programação estruturada é uma técnica de programação, independente da linguagem de programação, que tem como objetivo construir programas claros, legíveis, eficientes e de fácil manutenção. Caracteriza-se por possuir blocos elementares de código, ou seja, estrutura de controle para a construção da lógica que se interligam através de três mecanismos básicos,são eles:(I) sequência, (II) seleção e (III)repetição. Cada uma destas construções tem um ponto de início (o topo do bloco) e um ponto de término (o fim do bloco) de execução.

1.1.1 Estrutura de Sequência

Define que as instruções do programa são executadas sequencialmente, de cima para baixo, linha a linha do programa, de forma sequencial. É fácil compreender o fluxo de execução de um programa com estrutura sequencial pois as instruções são executadas na ordem em que aparecem.

1.1.2 Estrutura de Seleção

A estrutura de seleção permite que o fluxo de execução do processamento seja executado de acordo com uma condição lógica que é avaliada e caso seja verdadeira permite que uma, ou um grupo de instruções, seja executado.
Há duas formas básicas de condição. A primeira forma é a construção IF, que permite representar fluxos da forma “se a condição lógica x for verdadeira, faça a Tarefa a; senão (isto é, se a condição x for falsa), faça a Tarefa b”. A segunda forma de seleção estende o número de condições que podem ser avaliadas para definir o fluxo de execução. Esta construção, SWITCH, permite representar fluxos da forma “se a variável y tem o valor 1, faça a Tarefa a; se y tem o valor 2, faça a Tarefa b; se tem o valor 0, faça a Tarefa c; para qualquer outro valor, faça Tarefa d”.

1.1.3 Estrutura de Repetição

Esta estrutura de controle permite que uma ou um grupo de instruções seja executado repetidamente de acordo com uma condição lógica.
Na forma básica de repetição, uma condição lógica é verificada. Caso seja verdadeira, o bloco de tarefas associado ao comando é executado. A condição é então reavaliada. Enquanto for verdadeira, a tarefa é repetidamente executada.

1.2 Portabilidade

Em engenharia de Software, portabilidade traz como conceito a capacidade de um programa ser executado em diferentes arquiteturas, tanto de hardware quanto de software. Por exemplo: um código escrito em um determinado ambiente (Intel e Microsoft, por exemplo) e ele pode ser rodado em outros ambientes de hardware, (como Linux), facilitando enormemente os esforços de desenvolvimento, principalmente quando convertido à outro ambiente.
O termo Portabilidade pode ser usado também para se referir a re-escrita de um código fonte para uma outra linguagem de computador.


2. Pascal

A linguagem Pascal foi criada entre os anos de 1968 a 1971 pelo professor da Universidade de Zurique, Niklaus Wirth. O professor tinha em mente desenvolver uma linguagem que fosse de fácil assimilação para ser usada com fins educacionais. O Pascal tem esse nome em homenagem ao matemático francês Blaise Pascal. A linguagem Pascal foi baseada em algumas linguagens estruturadas existentes, como a ALGOL e PLI.
Pascal é extremamente estruturada e muito adequada para ensino de linguagens de programação. Porém, em suas primeiras versões, não era muito amigável ao programador, pois eram necessárias várias etapas para se obter um arquivo executável.
O Pascal somente ganhou popularidade quando foi adotado pela Universidade da Califórnia, em 1973. No mesmo período, também foram feitas implementações para minis e microcomputadores.
Apesar de todos os transtornos iniciais, o Pascal começou a ser utilizado por programadores de outras linguagens, tornando-se um produto comercial, após o lançamento do Turbo Pascal (Borland Internacional), em 1983.
Ao longo dos anos, a linguagem foi se tornando cada vez mais popular no meio acadêmico, tornando-se referência para o ensino introdutório à programação. Ainda hoje, ela é adotada em várias universidades para o ensino à programação estruturada.
Comercialmente, a linguagem foi sucedida pelo Object Pascal, linguagem que é utilizada hoje nos IDEs Delphi, Kylix e Lazarus.


3. C

A linguagem de programação C foi criada em 1972 por Dennis Ritchie para ser usada no desenvolvimento do sistema operacional Unix, no Bell Labs. C foi derivada da linguagem B, desenvolvida por Ken Thompson, que por sua vez se baseou-se na linguagem BCPL.
Ritchie e Thompson também participaram da equipe de desenvolvimento do UNIX, cujas primeiras versões foram totalmente desenvolvidas em Assembly. Em um certo momento, eles sentiram a necessidade de uma linguagem mais portável para implementar o Unix no PDP-11.
Esta linguagem precisava prover acesso de baixo nível ao hardware e se entender bem com o Assembly, precisava ser portável para que o sistema operacional pudesse rodar em diferentes plataformas de hardware, além de ter um bom desempenho e otimizar o uso de memória, principalmente numa época em que estavam começando a surgir as primeiras CPUs, e o preço por byte de memória era caríssimo. Foi portanto destas necessidades que surgiu a linguagem C.
No início dos anos 80, C passou a ser reconhecida como uma linguagem de propósito geral e contava com diversos compiladores desenvolvidos por vários fabricantes. Nessa época havia uma série de compiladores C semelhantes, porém estes compiladores frequentemente apresentavam várias discrepâncias e eram incompatíveis entre si. Isto tornava a padronização da linguagem uma necessidade real. A padronização foi iniciada pela ANSI – American National Standard Institute – em 1983 e finalizada em 1989. Em 1999 foi aprovada uma revisão do padrão anterior e novas funcionalidades foram acrescentadas. Esta revisão ficou conhecida como C99.
Deste então, a maioria das arquiteturas possuem a implementação de um compilador C. De mainframes, supercomputadores e minicomputadores, a celulares, relógios e torradeiras. É difícil encontrar uma plataforma de hardware sem um compilador C compatível.


4. Prolog

Prolog (Programming Logic) é uma linguagem de programação de alto nível baseada em lógica formal. Ao contrário das linguagens de programação tradicionais, baseadas na execução de sequências de comandos, o Prolog baseia-se em definir e resolver formulações lógicas. Normalmente designa-se o Prolog como uma linguagem declarativa ou linguagem baseada em regras porque os seus programas consistem numa lista de fatos e regras. É utilizada extensivamente em aplicações de inteligência artificial, particularmente em sistemas periciais.
O Prolog foi criado entre 1971 e 1973 por Philippe Roussel e Alain Colmerauer como linguagem de desenvolvimento prático baseado na idéia de raciocínio dedutivo automatizado. A linguagem permitiu fórmulas para ser interpretada de tal forma que uma conclusão lógica poderia ser alcançado. PROLOG foi originalmente conceituada como uma maneira de automatizar o processamento de linguagem natural , mas logo foi posto em prática para o desenvolvimento de uma aplicação mais geral. Foi usado pela primeira vez para tomar decisões dedutivas com base na entrada em francês escrito . Em 1977, David Warren da
Universidade de Edimburgo, implementou uma eficiente versão do Prolog,
batizada de Prolog-10. A partir daí, tornou-se uma escolha natural para a resolução
de problemas que envolvem a representação simbólica de objetos e relações entre
objetos.
Apesar de tudo, o Prolog nasceu de um projeto que não tinha por foco a implementação de uma linguagem de programação, mas o processamento de linguagens naturais. Na Universidade de Marselha, Alain Colmerauer e Robert Pasero trabalhavam na parte de linguagem natural e Jean Trudel e Philippe Roussel trabalhavam na parte de dedução do projeto. Interessado pelo método de resolução SL.


5. SQL

O SQL (Structured Query Language ou Linguagem Estruturada de Consultas) foi desenvolvido originalmente no início dos anos 70 nos laboratórios da IBM em San Jose, dentro do projeto System R, que tinha por objetivo demonstrar a viabilidade da implementação do modelo relacional proposto por E. F. Codd.
A linguagem é um grande padrão de banco de dados. Isto decorre da sua simplicidade e facilidade de uso. Ela se diferencia de outras linguagens de consulta a banco de dados no sentido em que uma consulta SQL especifica a forma do resultado e não o caminho para chegar a ele. Ela é uma linguagem declarativa em oposição a outras linguagens procedurais. Isto reduz o ciclo de aprendizado daqueles que se iniciam na linguagem.
SQL é uma linguagem para consultar, adicionar, atualizar, ou remover informações de um banco de dados. Pode ser usada também para manipular metadados de um banco de dados. SQL é uma linguagem declarativa onde os resultados ou operações são dadas sem muita especificação detalhada sobre como completar as tarefas. Os passos requeridos para executar demonstrações SQL são manuseados de forma transparente pelo banco de dados SQL. Algumas vezes essa linguagem é caracterizada como não-procedural porque linguagens procedurais geralmente precisam que detalhes das operações sejam especificados, tal como abertura e fechamento de tabelas, carregamento e busca, ou flushing buffers. Contudo, SQL é considerada uma linguagem de alto nível, que abstrai o nível das operações realizadas e a maneira como estas são realizadas.


6. Referências

https://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_estruturada
https://pt.wikipedia.org/wiki/Portabilidade_(inform%C3%A1tica)
http://www.dca.fee.unicamp.br/cursos/EA876/apostila/HTML/node7.html
https://sites.google.com/site/unipliprogramacaoestruturada/artigos/o-que-e-programacao-estruturada
https://pt.wikipedia.org/wiki/C_(linguagem_de_programa%C3%A7%C3%A3o)b
http://www.inf.pucrs.br/~pinho/LaproI/Historico/Historico.htm
https://pt.wikipedia.org/wiki/Prolog#Hist%C3%B3ria
http://www.inf.ufg.br/~eduardo/lp/alunos/prolog/prolog.html
https://pt.wikipedia.org/wiki/SQL
http://pcleon.if.ufrgs.br/~leon/Livro_3_ed/node116.html


Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License