Os primeiros computadores não executavam palavras como READ, ADD ou PAYROLL. Compreendiam códigos numéricos estreitamente ligados ao hardware. Grace Hopper dedicou a carreira a reduzir esta distância entre a intenção humana e as operações da máquina.
O seu contributo não se resume a uma invenção isolada nem à criação solitária de COBOL. Programou um dos primeiros grandes calculadores automáticos, dirigiu trabalhos pioneiros sobre tradução de programas, desenvolveu com a sua equipa uma linguagem para dados comerciais e defendeu a normalização. O fio condutor era claro: um programa deveria exprimir o problema a resolver, e não as particularidades de um computador.
Aprender a programar antes de a profissão existir
Grace Brewster Murray nasceu em 1906 em Nova Iorque. Estudou matemática e física no Vassar College e obteve em 1934 um doutoramento em matemática em Yale. Entrou na reserva da Marinha dos EUA em 1943 e, no ano seguinte, foi colocada na equipa de Howard Aiken em Harvard, responsável pelo Harvard Mark I.
Hopper aprendeu a programá-lo, produziu tabelas para a Marinha e participou no manual. O trabalho obrigou a equipa a formalizar uma atividade ainda nova: decompor problemas, organizar instruções, verificar resultados e reutilizar sequências.
O que a história da traça realmente explica
Em 1947, a equipa do Harvard Mark II encontrou uma traça presa num relé e colou-a no diário do laboratório com uma nota sobre o primeiro «actual bug». Hopper não inventou a palavra bug, já usada no século XIX para falhas técnicas, nem há prova de que tenha retirado pessoalmente o inseto.
Porque A-0 automatizava parte da programação
Em 1949 Hopper entrou na Eckert-Mauchly Computer Corporation, depois Remington Rand, que desenvolvia o UNIVAC I. No início dos anos 1950, a sua equipa criou A-0. O programador identificava subprogramas disponíveis; A-0 encontrava o código, carregava-o e organizava a utilização.
Segundo definições modernas, A-0 assemelha-se também a um loader e linker. É mais rigoroso falar de um dos primeiros sistemas de compilação. O ponto essencial é que mostrou que um programa podia preparar automaticamente outro programa para execução.
FLOW-MATIC aproxima o código do trabalho empresarial
Aplicações comerciais leem ficheiros, comparam registos, calculam totais e imprimem relatórios. Hopper queria que a notação refletisse este vocabulário. A sua equipa desenvolveu FLOW-MATIC em meados dos anos 1950, com instruções próximas do inglês e centradas em fluxos de dados.
A abordagem também favorecia a portabilidade. Se uma instrução exprime uma operação empresarial em vez de uma particularidade do hardware, um compilador pode traduzi-la para vários computadores. Este princípio preparou diretamente as discussões que levariam a COBOL.
COBOL é uma realização coletiva
Em 1959, fabricantes, administrações e utilizadores reuniram-se no CODASYL para definir uma linguagem comum para aplicações de gestão. Hopper participou na primeira reunião e FLOW-MATIC influenciou fortemente o projeto, mas a especificação COBOL foi produzida por comités.
Dizer que Hopper inventou COBOL sozinha apagaria essa cooperação. Foi pioneira, fonte técnica e promotora decisiva, contribuindo depois para adoção e normalização. COBOL permitiu às organizações conservar programas quando o hardware mudava, ajudando a explicar a sua longevidade.
A portabilidade exige mais do que uma linguagem comum
Uma especificação não basta. Fabricantes podem interpretar regras de maneira diferente ou aceitar extensões incompatíveis. Hopper insistiu por isso na validação dos compiladores, com conjuntos de programas destinados a verificar se uma implementação reconhecia as construções previstas e lhes dava o comportamento esperado.
A continuidade do seu trabalho é clara: A-0 automatiza a montagem de subprogramas, FLOW-MATIC aproxima as instruções do vocabulário empresarial, COBOL fornece uma linguagem partilhada e os testes procuram garantir que ela mantém o mesmo significado em máquinas diferentes.
Da conceção das linguagens à normalização
Hopper prosseguiu responsabilidades na Remington Rand e Sperry Rand, publicou e formou programadores. Depois de deixar a reserva em 1966, foi chamada ao serviço ativo em 1967 para trabalhar na compatibilidade e validação de programas COBOL em vários sistemas.
Permaneceu ao serviço até 1986 e reformou-se com o posto de contra-almirante. Nas conferências tornava concretas as escalas informáticas, usando por exemplo fios com o comprimento da distância percorrida pela luz num nanossegundo. Morreu em 1992.
Cronologia
- 1906: nascimento em Nova Iorque.
- 1934: doutoramento em matemática em Yale.
- 1943: entrada na reserva da Marinha dos EUA.
- 1944: colocação na equipa do Harvard Mark I.
- 1947: descoberta da traça no Mark II.
- 1949: entrada na Eckert-Mauchly e trabalho no UNIVAC.
- 1952: apresentação dos trabalhos sobre A-0.
- 1955–1959: desenvolvimento de FLOW-MATIC.
- 1959: primeiras discussões CODASYL.
- 1960: primeira especificação COBOL.
- 1967: regresso ao serviço ativo para a normalização de COBOL.
- 1986: reforma definitiva como contra-almirante.
- 1992: morte em Arlington, Virgínia.
Perguntas frequentes
Grace Hopper inventou o primeiro compilador?
Dirigiu o desenvolvimento de A-0, muitas vezes apresentado dessa forma. A sua função também corresponde parcialmente ao que hoje chamaríamos loader ou linker; «um dos primeiros sistemas de compilação» é mais rigoroso.
Criou COBOL sozinha?
Não. COBOL foi concebido coletivamente pelos comités CODASYL. As ideias de Hopper e FLOW-MATIC tiveram influência direta e ela desempenhou depois um papel importante na adoção, validação e normalização.
Inventou a palavra «bug»?
Não. A palavra já era usada para defeitos técnicos. A traça encontrada no Mark II gerou um trocadilho memorável, não o termo.
Porque é importante FLOW-MATIC?
Mostrou que uma linguagem empresarial podia usar palavras próximas dos procedimentos reais e continuar a ser traduzível por uma máquina. Influenciou diretamente COBOL.
Porque continua COBOL presente?
Muitas organizações acumularam décadas de regras empresariais testadas em COBOL. Substituir esses sistemas é caro e arriscado, e a portabilidade original permitiu ao código sobreviver a várias gerações de hardware.
Qual é a ligação entre Grace Hopper e John Backus?
Ambos procuraram afastar a programação do código máquina nos anos 1950. Hopper orientou-se para processamento comercial com FLOW-MATIC e COBOL; Backus liderou FORTRAN para cálculo científico.