Artigos

A História da Lógica de Programação

A maioria de vocês já deve saber que estamos realizando um curso de lógica de programação. Ainda não estava sabendo? Então aqui estão os links para a primeira e segunda aula:

A lógica da programação é, sem dúvida, a primeira coisa que deve ser estudada se você quiser se tornar um bom programador, seja qual for a linguagem. Porque ela é tão importante? Imagine que agora você é um soldado que recebe ordens e as coloca em prática. O seu capitão lhe diz: “Soldado, sua missão é encontrar a arma principal do inimigo e sabotá-la, como também fazer o reconhecimento do local. Assim que você se infiltrar, vai procurar colher o máximo possível de informações. No entanto, antes das 14:00 deve sair do local. Se observar alguma movimentação suspeita, saia imediatamente. E lembre-se, sua missão principal é encontrar a arma principal do inimigo e sabotá-la.” Nessa missão, o soldado precisa sempre se lembrar das ordens do capitão, e para que ela seja bem sucedida é necessário ele aplicar todas elas. Vamos analisar essa missão:

Objetivos principal: Encontrar e sabotar a arma principal do inimigo.
Objetivo secundário: Colher o máximo de informações possíveis.
Condições: O soldado só vai terminar a missão com êxito se: Não houver nenhuma movimentação suspeita, que faça com que ele saia do local antes do horário, e, caso isso não ocorra, ele deve sair de lá sem falta as 14:00.

Quando vamos programar, devemos ser como o comandante. Primeiro, devemos saber qual o objetivo principal e daí programar as suas condições para que esse objetivo seja atingido. Veja o caso dessa tirinha:

tirinha25

*Claro que o marido levou o que a mulher falou ao pé da letra. Sabemos que no dia-a-dia ninguém leva tudo ao pé da letra. No entanto, essa tirinha não representa o cotidiano. Ela representa o modo de se pensar ao programar.

Notou? A condição, por assim dizer, não foi bem “programada” pela esposa, levando o marido a trazer nove ovos, aos invés de seis ovos e nove batatas, que era o que a esposa gostaria que ele trouxesse. Ela deveria ter dito assim: Me traga seis ovos. Se tiver batatas, me traga nove batatas.

A lógica da programação é essencial para um bom código. Mas como tudo isso começou? Vamos a partir de agora viajar pelo tempo e entender um pouco sobre a história da lógica da programação.

Como tudo começou

A lógica da programação é um assunto muito grande e complexo. Assim sendo, vamos dar apenas uma introdução a história da lógica da programação.

A lógica de programação é quando se pretende realizar alguma função ou um esquema lógico por meio de parâmetros e metas.

Existe uma associação direta da Lógica de Programação com o Raciocínio Matemático, onde o importante é a interpretação de um problema e a utilização correta de uma fórmula. De fato, não existe “fórmulas” em informática, o que existe é nosso modo de pensar em como resolver e extrair o máximo de informações de um problema, de maneira eficaz e eficiente sobre um ângulo de visão. Essa solução precisa ser exteriorizada e expressa numa linguagem conhecida. A lógica da programação entra nesse ponto, para desenvolvermos soluções e algorítimos para apresentar essa solução ao mundo. A primeira pessoa a pensar em usar lógica matemática para a programação foi John McCarthy, ele propôs usar programas para manipular com sentenças instrumentais comuns apropriadas à linguagem formal, ou seja, o programa básico formará conclusões imediatas a partir de uma lista de premissas. Essas conclusões serão tanto sentenças declarativas quanto imperativas. Quando uma sentença imperativa é deduzida, o programa toma uma ação correspondente.

A primeira linguagem de alto nível do mundo foi a Plankalkül, criada pelo cientista alemão Konrad Zuse, entre os anos 1942-1946 no desenvolvimento dos primeiros computadores. Ela é considerada de alto nível porque em termos simples, ela é mais “humana” e está longe do código de máquina, se aproximando mais da linguagem humana. Vamos entender melhor o que é uma linguagem de alto nível e a diferença dela e a de máquina.

Quando nos falamos de linguagem mais humana é justamente pelo fato de a entendermos melhor, de ser humanamente mais fácil de se compreender. Você facilmente entenderia, com um pouco de estudo, esse código, por exemplo:
program HelloWorld;

begin
writeln(‘Hello World’);
end.

Uma pessoa que não entende nada de programação, mas sabe inglês, entenderia algumas palavras da linguagem e poderia facilmente interpretar alguma coisa desse código em PASCAL. “Program” é programa em inglês, “begin” é começar, “write” é escrever e end é fim. Mesmo sem saber programar, a pessoas que sabe um pouco de inglês chegaria a mais ou menos a essa conclusão: “É um programa e vai começar a escrever alguma coisa e depois terminar”. E é justamente isso!

Agora vamos ver um código de máquina. Primeiramente um código de máquina não pode ser aberto em um editor de texto normal. Caso você abra aparecem apenas um texto sem significado, devido aos caracteres de controle, como esse por exemplo:

MZÀ�$Pÿv�èŠÿ]Ë3ÀP¸�F�
ë�ƒF��¸�< uè2Àëä�Àt�Bª

Para se ver um código de máquina é necessário um editor de hexadecimal. Assim vemos:

0E3D:0000 CD 20 FF 9F 00 9A F0 FE-1D F0 4F 03 F0 07 8A 03 . ……..O…..
0E3D:0010 F0 07 17 03 F0 07 DF 07-01 01 01 00 02 FF FF FF …………….
0E3D:0020 FF FF FF FF FF FF FF FF-FF FF FF FF BD 0D 4C 01 …………..L.
0E3D:0030 D0 0C 14 00 18 00 3D 0E-FF FF FF FF 00 00 00 00 ……=………
0E3D:0040 05 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 …………….

Consegue compreender esse código? E agora, compreende a diferença entre linguagem de alto nível e a linguagem de máquina?

Voltando ao assunto, a linguagem Plankalkül foi só publicada em 1972 e seu compilador em 1998. Depois surgiu inúmeras outras, como o Prolog.

A linguagem Prolog foi desenvolvida em 1972 por Alain Colmerauer e foi apresentada como baseada em lógica matemática. Ela é uma simplificação do Planner, a qual permitia a invocação orientada a padrões de planos procedimentais de asserções e de objetivos. A primeira implementação do Prolog foi a Marseille Prolog, desenvolvida em 1972. O uso do Prolog como uma linguagem de programação prática teve seu ápice com o desenvolvimento de um compilador por David Warren em Edinburgo, em 1977.

A partir do Planner, foram desenvolvidas as linguagens de programação QA-4, Popler, Conniver, e QLISP. As linguagens de programação Mercury, Visual Prolog, Oz e Frill, foram desenvolvidas a partir do Prolog. Outra linguagem bastante usada é o Pascal.

O professor Niklaus Wirth, vendo a necessidade de implementar as ideias de maneira mais fácil, junto com seus colegas da Universidade Técnica de Zurique (Suíça) desenvolveram, no início dos anos 70, a linguagem PASCAL – uma derivação da linguagem ALGOL 60, porém de implementação mais simples e com uma estrutura de dados mais poderosa. O nome Pascal foi uma homenagem a Blaise Pascal, famoso matemático, que criou a calculadora baseada em discos de madeira, que foi a predecessora da calculadora de mesa e serviu de inspiração para diversos computadores. Essa linguagem é bastante utilizada para ensinar programação aos novatos, pelo fato de ser bem fácil de ser entendida.

Hoje existem muitas linguagens fáceis de serem entendidas e estudadas, pois a melhor maneira de aprender a lógica da programação é por meio da prática! Assim nos incentivamos a todos os interessados a continuar acompanhando as aulas que estamos colocando aqui no Guia do PC.

Abaixo você pode ver uma lista com as principais linguagens de programação:

  • PLANKALKÜL – 1945 – Criada por Konrad Zuse; Foi a primeira linguagem de programação de alto nível do mundo

  • FORTRAN – 1954 – Criada pela IBM 704; usada para computadores com pouca capacidade de processamento; não tinha metodologia e ferramentas para programação
  • FORTRAN I – 1957 – Primeira versão implementada do FORTRAN; Nomes podiam ter até 6 caracteres; Programas maiores que 400 linhas raramente compilavam corretamente, principalmente
  • devido à baixa confiabilidade do 704
  • FORTRAN II – 1958 – 50% do código escrito para o IBM 704 era FORTRAN
  • FORTRAN IV – 1960- 62 – Declaração de tipos explícita; Comando de seleção lógica; Nomes de subprogramas podiam ser parâmetros; Padrão ANSI em 1966.
  • FORTRAN 77 – 1978 – Manuseio de character string; Comando de cont role de loop lógico; Comando IF- THEN- ELSE.
  • FORTRAN 90 – 1990 – Funções built – in para operações com
  • arrays; Arrays dinâmicos; Ponteiros; Tipo registro; Recursão, dentre outros.

  • LISP – 1959 – Somente dois tipos de dados: átomos e listas; Pioneira da programação funcional

  • ALGOL 58 – 1958 – Nomes podiam ter qualquer tamanho; Comandos de composição de blocos (begin …end); F com cláusula ELSE- IF
  • ALGOL 60 – 1960 – Modificou o ALGOL 58 durante um
  • encontro de 6 dias em Paris
  • ALGOL 68 – 1968

  • SIMULA 67 – 1967 – Baseada no SIMULA I, criada por Kristen Nygaard e OleJohan Dahal, entre 1962 e 1964 na Noruega. Projetada inicialmente para simulação de sistemas. Baseada no ALGOL 60 e SIMULA I.

  • COBOL – 1960 – Deve parecer com inglês simples; Deve ser fácil de usar, mesmo que signifique menos recursos

  • PL/ I – 1965 – Projetado pela IBM e SHARE; Incluia o que era considerado o melhor do: ALGOL 60

  • Pascal – 1971 – Simplicidade e tamanho reduzido eram objetivos de projeto. Projetada para o ensino de programação estruturada. Ainda é a uma das LPs mais usadas para o ensino de programação estruturada nas universidades

  • BASIC – 1964 – Criada por Kemeny & Kurtz em Dartmouth

  • Modula 2 – 1975
  • Modula 3 – Final dos anos 80.

  • Delphi – 1995 – Pascal mais características de suporte a POO; Mais elegante e seguro que C+ +; Baseada em Object Pascal, projetada anos antes.

  • C – 1972 – Projetada para a programação de sistemas nos Lab.

  • Prolog – 1972

  • Ada – 1983
  • Ada 95 – 1988 – Facilidades para interface gráfica

  • Smalltalk – 1972- 1980 – Primeira implementação completa de uma linguagem orientada por objetos (abstração de dados, herança e vinculação de tipos dinâmica). Pioneira na interface gráfica baseada em janelas.

  • C+ + – 1985 – Desenvolvida nos Lab. Bell por Stroustrup. Baseada no C e SIMULA 67

  • Java – 1995 – Desenvolvida pela Sun no começo dos anos 90. Para POO, baseada em C+ + , mas significativamente simplificada.

Outras linguagens:

  • ML (1973)
  • Clipper (1984)
  • SQL
  • Perl (1987)
  • PYTHON (1991)
  • PHP (1995)
  • ASP
  • JavaScript (1995)
  • HTML
  • XML
  • TeX/ LaTeX (1985)
  • TeX/ LaTeX (1985)
Tags: Artigo

Você também vai gostar

Leia também!