Programando o ENIAC

Source: http://www.columbia.edu/cu/computinghistory/eniac.html

Frank da Cruz

O ENIAC (Electronic Numerical Integrator And Computer) foi o primeiro computador digital programável, eletrónico e de utilização geral (no seu início este não era ainda um computador com programas armazenados). A ligação da Universidade Columbia com o ENIAC é, na melhor das hipóteses, ténue (falaremos disto mais abaixo), mas nenhuma história da computação está completa sem a mesma! Quando ficou operacional pela primeira vez, em 1945, foi programado inteiramente por mulheres… que ligavam cabos e accionavam interruptores “diretamente” na máquina.As linguagens de programação só surgiriam anos mais tarde.

Duas das primeiras programadoras (Gloria Ruth Gordon [Bolotsky] e Esther Gerston) a trabalhar no ENIAC. Fotografia do Exército dos EUA retirada dos arquivos da Biblioteca ARL (Laboratório de Investigação do Exército dos EUA).

Construído entre 1943 e 1945 na Moore School da Universidade da Pensilvânia para o esforço de guerra por John Mauchly e J. Presper Eckert (sem ligação a Wallace Eckert da Universidade de Columbia), o ENIAC só foi entregue ao exército após o fim da guerra, o Electronic Numerical Integrator And Computer (ENIAC) foi o primeiro computador digital eletrónico de uso geral. Tinha cerca de 46 metros  de largura, 20 bancos de luzes intermitentes e era cerca de 300 vezes mais rápido do que o Mark 1 no que respeita a somas . Wallace Eckert é citado em inúmeras histórias como uma referência para os criadores, tal como tinha acontecido com o Mark 1.

O ENIAC não era um computador com programas armazenados. A melhor forma de o descrever é  como “uma coleção de máquinas de somar electrónicas e outras unidades aritméticas, que eram originalmente controladas por uma rede de grandes cabos eléctricos” (David Alan Grier, IEEE Annals of the History of Computing, jul-set 2004, p.2). Era programado através de uma combinação de cablagem de placas de ligação (ilustrado na imagem acima) e três “tabelas de funções portáteis”, mostradas à esquerda (CLIQUE AQUI e AQUI para ver melhor). Cada uma destas tabelas de funções contava com 1200 interruptores de dez vias, utilizados para introduzir tabelas de números. De notar as prefurações da IBM no lado direito – um pouco difíceis de distinguir, no entanto mais visíveis nesta segunda imagem mais clara mas menos atmosférica da mesma fotografia. Franz Alt escreve em Archaeology of Computers – Reminiscences, 1945-47, Communications of the ACM, julho de 1972:

Uma das particularidades que distinguia o ENIAC de todos os computadores posteriores era a forma como as instruções eram colocadas na máquina. Era semelhante às placas de ligação das pequenas máquinas de cartões perfurados, mas aqui tínhamos cerca de 40 placas de ligação, cada uma com vários metros. Para cada instrução de um problema, era necessário ligar vários cabos , milhares,de cada vez que um problema ia começar a ser executado , o que podia demorar vários dias (não só a fazer como depois a verificar). Quando finalmente se conseguiam ligar todos os cabos nos locais corretos, colocava-se o problema a correr durante o máximo de tempo possível, ou seja, enquanto existissem dados de entrada, antes de mudar para outro problema. Normalmente, as mudanças ocorriam apenas uma vez a cada poucas semanas.

Imagem: [103]: Gráfico de programação ENIAC que representa a cabulagem necessária para configurar uma equação balística externa. Clique para ampliar.

Mais tarde, os cartões perfurados do ENIAC foram permanentemente “microprogramados” com um repertório de 50-100 instruções comumente utilizadas que podiam ser referenciadas a partir de um “programa do utilizador” inserido como uma sequência de instruções nas chaves da tabela de funções. [40]

Herb Grosch diz sobre esta página [correspondência pessoal, 10 de maio de 2003]:

Estava a pesquisar uma série de links e sublinks da história do ENIAC e notei, com bastante interesse, que existiam três ou quatro rodízios [tabelas de funções portáteis A, B e C], onde sempre presumi que existisse apenas uma.

Noto a ausência quase completa do coronel [então major] Simon e de Dick Clippinger, que deveria partilhar com von Neumann o crédito por passar da conexão para a manipulação da inserção do programa.

Fiquei satisfeito ao ver uma breve referência às unidades de E/S da IBM, que aparecem na sua e também em outras cópias desta tão famosa fotografia. Questiono-me se John McPherson sabe como estes acabaram por ser vendidos/alugado/doados à Escola Moore – nunca pensei perguntar-lhe na época. Incomum.

Quando o Exército solicitou unidades especiais de leitura e perfuração de cartões para um projeto não divulgado em andamento na Universidade da Pensilvânia, [engenheiro-chefe da IBM, James W.] Bryce e sua equipa coordenaram a resposta da IBM… Em 1946, o instrumento produzido pelo projeto foi apresentado sob a forma do ENIAC…

Bashe [4]

Não na sua página, mas na história de Richie e outros Aberdeeneries deveria haver [sido feita] menção ao astrônomo que os ensinou a calcular trajetórias manualmente: Forest Ray Moulton, por volta de 1920 [minha página 89].

Provavelmente isso não foi intencional, mas a eliminação de todas as referências à grande loja de cartões perfurados que Cunningham administrava e às duas máquinas de retransmissão construídas pela IBM certamente foi. Foi isso que realmente fez as tabelas de disparo, depois de as calculadoras de mesa ficarem sobrecarregadas e até à chegada da máquina Bell, e até que o ENIAC foi transferido e posteriormente disponibilizado.

Agora, sobre a parte em que mencionei “ter dúvidas…” acima. Não creio que Wallace Eckert tenha tido qualquer influência sob os criadores do ENIAC ou do ASCC. Na verdade, nas centenas e centenas de horas que ele e eu conversámos sobre estas duas máquinas, ele nunca o mencionou, nem Frank Hamilton, que era o número dois do ASCC, alguma vez sugeriu tal coisa.

É bem conhecida uma reunião de 1938 entre Howard Aiken e Wallace Eckert da ASCC [9]. Gutzwiller [90] diz que Presper Eckert (entre outros pioneiros conhecidos da computação, incluindo Aiken e Vannevar Bush) teve a sua primeira inspiração no “livro laranja” de Wallace Eckert de 1940. Não consegui encontrar nenhuma evidência de existência de um contato direto entre os dois Eckerts. Dado que o ENIAC foi um projecto de guerra, não seria surpreendente que não existissem registos disponíveis.

A utilização do rato (ironia). Arthut Burks e Betty Jean Jennings.

Excerto de um anúncio do Museu de História do Computador, 19 de setembro de 2008:

Nascida numa quinta no Missouri, a sexta de sete filhos, Jean Jennings Bartik andou sempre à procura de novas aventuras. Bartik formou-se em matemática no Northwest Missouri State Teachers College (atualmente Northwest Missouri State University). Durante os seus anos de faculdade, iniciou-se a Segunda Guerra Mundial e, em 1945, aos 20 anos, Bartik respondeu ao pedido do governo para que mulheres com formação em matemática se juntassem a um projeto em Filadélfia que calculava tabelas de disparos balísticos para as novas armas desenvolvidas para o esforço de guerra. Foi assim, que Bartik se transformou numa das funcionárias dos Laboratórios de Investigação de Balística do Exército, juntando-se a mais de 80 mulheres que calculavam trajectórias balísticas (equações de cálculo diferencial) à mão e assumindo assim o cargo de “Computadora”.

Mais tarde, em 1945, o Exército fez circular um convite a “computadores” para um novo emprego numa máquina secreta. Bartik aproveitou a oportunidade e foi contratada como uma das seis primeiras programadoras do ENIAC, o primeiro computador programável totalmente eletrónico. Nesta viagem desconhecida, juntou-se a Frances “Betty” Snyder Holberton, Kathleen McNulty Mauchly Antonelli, Marlyn Wescoff Meltzer, Ruth Lichterman Teitelbaum e Frances Bilas Spence.

Com os 40 painéis do ENIAC ainda em construção e a tecnologia dos seus 18 000 tubos de vácuo incerta, os engenheiros não tinham tempo para manuais ou aulas de programação. Bartik e as outras mulheres aprenderam sozinhas o funcionamento do ENIAC a partir dos seus diagramas de blocos lógicos e eléctricos e depois descobriram como o programar. Criaram os seus próprios fluxogramas, folhas de programação, escreveram o programa e colocaram-no no ENIAC através de uma desafiante interface física, que contava com centenas de fios e 3.000 interruptores. Foi uma experiência inesquecível e maravilhosa.

Foi a 15 de fevereiro de 1946 que o Exército revelou ao público a existência do ENIAC. Numa cerimônia especial, o Exército apresentou o ENIAC bem como os inventores do seu hardware, Dr. John Mauchly e J. Presper Eckert. A cerimónia contou com a apresentação do seu programa balístico de trajetória, capaz de operar a uma velocidade milhares de vezes mais rápida do que qualquer cálculo anterior. O programa das mulheres do ENIAC funcionou perfeitamente – e transmitiu o imenso poder de cálculo do ENIAC e a sua capacidade de resolver os problemas do milénio que anteriormente tinham levado 100 anos a um homem para resolver. Tal era capaz de calcular a trajetória de um projétil em 30 segundos. O ENIAC levou apenas 20 segundos para o fazer – mais rápido que uma bala a alta velocidade! De facto!

As mulheres do ENIAC nunca foram apresentadas pelo Exército.

Não lhes foi atribuído qualquer crédito ou mencionado o seu envolvimento crítico no evento daquele dia. Os seus rostos, mas não os seus nomes, passaram a fazer parte das belas fotografias de imprensa do ENIAC. Durante quarenta anos, os seus papéis e o seu trabalho pioneiro foram esquecidos e a sua história perdida. A história das mulheres ENIAC foi descoberta por Kathy Kleiman em 1985. Bartik discutirá o que significa ser ignorada, apesar do seu trabalho único e pioneiro, e o que significa ser descoberta novamente. (Jean Jennings morreu em 2011.)

Referências (novo em 24 de abril de 2023):