Resumo

  • Coding for A.R.C., de Andrew D. Booth e Kathleen H. V. Britten, apresentou em 1947 uma camada simbólica entre o plano matemático e ordens de vinte bits. É um marco antigo na história da linguagem assembly, mas não sustenta uma narrativa simples de inventora única ou de primeiro montador incontestável.
  • Converter símbolos em códigos de operação, endereços e sequências válidos reduz erros e demonstra conformidade com uma arquitetura. Não demonstra que o algoritmo é apropriado, os dados são confiáveis ou o resultado corresponde ao problema real.

Uma ordem que só conhecia campos

Cada ordem de ARC distribuía vinte bits entre uma posição de memória, uma sequência e uma operação. Oito bits escolhiam a posição, sete indicavam a sequência e cinco codificavam o que fazer. A máquina não podia distinguir uma intenção mal transcrita de uma instrução deliberada.

Booth e Britten organizaram o trabalho em etapas. A formulação matemática vinha primeiro. Depois apareciam o esquema do fluxo, a distribuição da memória e a enumeração detalhada das ordens. Símbolos curtos remetiam a uma tabela de códigos numéricos.

Essa superfície permitia discutir um laço antes de contar posições e rever o controle antes de montar palavras binárias. Mesmo assim, todo símbolo terminava preso a um repertório de operações e a um formato de memória. A abreviação aliviava o trabalho humano; não concedia novas capacidades ao hardware.

O prefácio registra uma compatibilidade planejada. O código de ARC era o mesmo projetado para a futura máquina eletrônica, de modo que um problema já codificado pudesse migrar e a experiência do equipamento a relés orientasse ajustes. A reutilização vinha do acordo entre as arquiteturas, não de uma portabilidade abstrata.

Crédito exige mais nomes, não mais superlativos

A página de rosto traz Andrew D. Booth e Kathleen H. V. Britten. Kathleen ainda não usava o sobrenome Booth. Preservar essa coautoria não reduz sua relevância; apenas impede que o reconhecimento seja construído com outra omissão.

Os autores também registram a influência de Herman Goldstine e John von Neumann. O método desenvolvido no Institute for Advanced Study tratava a codificação como um problema de controle dinâmico. Um programa armazenado podia saltar, repetir trechos e alterar informações que mudariam o caminho seguinte. Por isso, o diagrama de fluxo precedia a numeração final.

A montagem de ARC também foi coletiva. A história de Birkbeck identifica Kathleen Britten, Xenia Sweeting e Andrew Booth numa fotografia de dezembro de 1946. Em depoimento posterior, Andrew disse que Kathleen, com outra mulher, fez quase toda a fiação da série de máquinas. É uma lembrança pessoal, não um inventário completo, mas documenta trabalho técnico que o retrato do gênio solitário apaga.

O livro publicado por Kathleen Booth em 1958 sobre programação para calculadores digitais automáticos mostra continuidade. A relevância dela está em uma prática documentada, não na necessidade de declarar uma prioridade absoluta.

Um símbolo pioneiro não é automaticamente um montador

“Linguagem assembly” pode nomear uma convenção legível, um método sistemático de codificação ou um programa que efetua a tradução. Essas três coisas têm critérios históricos diferentes.

O relatório de 1947 comprova uma notação abreviada e um percurso completo até o código detalhado. Já os Initial Orders do EDSAC, de 1949, são outro marco. Documentos de Cambridge explicam como letras representavam códigos de operação de cinco bits, e o Computer History Museum atribui a David Wheeler um montador implementado por fiação.

As duas evidências cabem na mesma história. Uma mostra a organização simbólica do raciocínio; a outra, a tradução incorporada à operação de uma máquina. Ao separar as camadas, desaparece a disputa artificial por um único primeiro lugar e surge o processo pelo qual programar deixou de ser manipular cada bit diretamente.

O que significa terminar sem erro

Se a conversão termina, as operações foram reconhecidas, os endereços couberam e as palavras resultantes podem ser colocadas onde a máquina espera. Em uma rotina longa preparada à mão, isso eliminava classes importantes de falha.

Ainda restava a pergunta principal. Uma comparação válida pode usar o limite errado. Uma iteração pode convergir sobre um modelo inadequado. Dados podem chegar ao endereço correto e representar mal a população de interesse. A execução fiel amplia tanto um bom raciocínio quanto um erro bem especificado.

Compiladores e sistemas de implantação modernos mantêm a mesma divisão. “Build aprovado” e “implantação concluída” são descrições de transformações e verificações delimitadas. Não certificam automaticamente uma política, uma dependência, um conjunto de dados ou uma decisão de negócio.

A cadeia de responsabilidade precisa permanecer visível: pessoas escolhem hipóteses e método; a notação expressa o procedimento; a tradução o prende à forma executável; a máquina produz observações; pessoas avaliam se essas observações respondem à pergunta de origem.

A camada amigável também governa

Quem controla a entrada normal de uma máquina influencia o que pode ser expresso e quais erros ficam aparentes. No caso de ARC, a tabela expunha as escolhas: operações existentes, largura do endereço, transferências de controle e uso da memória.

Uma abstração governável declara o que transforma, o que deixa de fora e como verificar sua saída. Uma abstração opaca transforma a ausência de erro em certificado amplo e concentra autoridade em quem mantém o tradutor.

O legado de Kathleen Booth não depende de um “primeiro” sem ressalvas. Ele aparece com mais precisão na disciplina que ela coassinou: tornar o controle legível, manter exata a ligação com a máquina e recusar a ideia de que uma expressão aceita já seja uma decisão correta.

Fontes