sexta-feira, 18 de fevereiro de 2011

FORTRAN: MAIS DE 60 ANOS DE BONS SERVIÇOS

Dia desses me dei conta de que realmente sou um “dinossauro” da TI: comecei em 1970, programando em Assembler para um Univac 1005 (uma “poderosíssima” máquina com 4K, isso mesmo, 4K, de memória principal) – esse “mainframe”, cuja configuração básica aparece a lado, era apoiado por um sistema ”convencional” (tabuladoras, perfuradoras e classificadoras de cartões - Remington-Sperry-Powers, que foi o antecessor dos 1005. 

Note-se que esses cartões, com furos redondos, cuja imagem está logo abaixo, tinham 90 colunas, ao contrário dos IBM que tinham 80 - isso era muito vantajoso em termos de entrada de dados e lógica de programação. 

E o nome da coisa não era TI ou Informática, mas sim Processamento de Dados e alguns ainda chamavam o computador de “cérebro eletrônico”… 

Nessa onda de nostalgia, lembrei-me de um artigo que “New York Times” publicou há algum tempo  acerca do desenvolvimento da linguagem Fortran, que quase todos os meus contemporâneos usaram - James Gray, um pesquisador na área de software que trabalhou para a Microsoft, chegou a dizer, parafraseando a Bíblia: “No princípio, era o Fortran”… Vale lembrar que Gray desapareceu no mar com seu veleiro em 2007.

Lembramos essas histórias porque julgamos oportuno dar aos nossos jovens profissionais e estudantes uma visão do passado, para que possam se preparar melhor para o futuro. Lembra o artigo que John Backus (que também morreu em 2007) trabalhava para a IBM, e em 1953, ao 28 anos de idade, solicitou aos seus superiores autorização para iniciar pesquisas acerca do que chamou de “uma melhor maneira de programar” – era uma época em que se usava linguagens de muito baixo nível, praticamente linguagem de máquina, o que tornava a programação extremamente complexa, trabalhosa, e consequentemente, lenta e cara.

Foi formada uma equipe, que chegou a ter dez profissionais; era um time com forte treinamento em matemática, mas no mais bastante eclética: reunia desde um especialista em criptografia a uma estudante recém formada, passando por um pesquisador do MIT e por um especialista em xadrez. Foi utilizado para o projeto um computador IBM 704 (foto ao lado), uma máquina bastante poderosa para a época – mas disponível para a equipe apenas no período noturno…

Segundo Backus, várias foram as causas do sucesso do Fortran: primeiramente, o grupo definiu que desenvolveria uma linguagem que pareceria um misto de inglês com álgebra, buscando uma sintaxe similar à das fórmulas utilizadas por cientistas e engenheiros, os grandes usuários de computadores na época - ao lado, uma amostra de código Fortran.

Dessa forma, a linguagem poderia ser facilmente usada por esses profissionais, praticamente sem auxílio de programadores, que eram os únicos responsáveis até então pela tradução dos problemas para a linguagem da máquina e trabalhavam em binário ou usando Assemblers, linguagens que utilizavam abreviações como PRT para comandos de impressão, RD para leitura, ADD para soma etc. – essas abreviações, que aparecem no exemplo ao lado, eram usadas pelo montador (Assembler) para gerar as instruções em binário. Um problema adicional, é que cada máquina tinha seu próprio Assembler. 

O Fortran tinha seu foco mais no problema que o usuário tentava resolver utilizando o computador do que na máquina propriamente dita. Uma linha de código Fortran gerava várias instruções em linguagem de máquina, ao contrário dos Assemblers, em que a relação era quase sempre um para um; por essa razão, Fortran é considerada a primeira linguagem de alto nível. 

O Fortran tinha uma performance quase tão boa quanto a dos Assemblers, em termos de tempos de processamento, o que era muito importante numa época em que esse era um recurso escasso e consequentemente, caro.

Em fevereiro de 1957 o Fortran foi apresentado formalmente, durante a “Western Joint Computer Conference”, em Los Angeles. Para a ocasião, a IBM pediu a seus clientes que apresentassem casos reais, como o cálculo do fluxo de ar para o projeto de asas de aviões, e promoveu um benchmarking, apresentando esses problemas a programadores Assembler e Fortran. 

Os resultados foram impressionantes: em média, os programas em Fortran foram construídos cinco vezes mais rapidamente que aquelas em Assembler, sem perda significativa de performance em termos de tempo de processamento.

Ao encerrar-se o evento, os profissionais da área sabiam que uma nova era se iniciava – e essa era ainda não terminou: até hoje o Fortran é usado em aplicações de natureza científica. 

Sua versão mais recente  é o Fortran 2018.