Páginas

segunda-feira, 22 de março de 2021

Ada Lovelace - A primeira programadora de computadores

1. - Introdução 


quadro de Ada Lovelace em vestido de festa com um xale nos ombros e flores no cabelo
Augusta Ada Byron King, atualmente conhecida como Ada Lovelace, nasceu em Londres em 10 de dezembro de 1815 e faleceu também em Londres em 27 de novembro de 1852, antes de completar 37 anos de idade.  

Augusta Ada era filha do poeta Lord Byron e sua esposa Anne Isabella "Anabella" Byron. O casal se separou um mês depois do nascimento de Ada e Lorde Byron deixou a Inglaterra para sempre 4 meses depois.

A mãe de Ada promoveu o interesse de Ada em matemática e lógica, em um esforço para impedi-la de desenvolver o que ela via como a insanidade de Lord Byron. Mas Ada permaneceu interessada em seu pai e, a seu pedido, foi enterrada ao lado dele quando morreu.

Atualmente conhecida apenas como Ada Lovelace, ela foi uma matemática e escritora inglesa. Hoje é reconhecida principalmente por ter escrito o primeiro algoritmo para ser processado por uma máquina, a máquina analítica de Charles Babbage.

Durante o período em que esteve envolvida com o projeto de Babbage, ela desenvolveu os algoritmos que permitiriam à máquina computar os valores de funções matemáticas, além de publicar uma coleção de notas sobre a máquina analítica. Por esse trabalho é considerada a primeira programadora de toda a história. 

Obs: É importante observar que como a máquina de Babagge não foi concluída na época, por dificuldades de fabricação, as idéias de Ada não foram colocadas na prática.

2. - Pequena Biografia


Na juventude, seus talentos matemáticos levaram-na a uma relação de trabalho e de amizade com o colega matemático britânico Charles Babbage e, em particular, o trabalho de Babbage sobre a Máquina Analítica. Entre 1842 e 1843, ela traduziu um artigo do engenheiro militar italiano Luigi Federico Menabrea sobre a máquina e complementou com um conjunto de sua própria autoria, que ela chamou de Anotações. 

Pequeno quadro com caricatura de Ada Lovelace
Essas notas contêm um algoritmo criado para ser processado por máquinas, o que muitos consideram ser o primeiro programa de computador. Ela também desenvolveu uma visão sobre a capacidade dos computadores de irem além do mero cálculo ou processamento de números, enquanto outros, incluindo o próprio Babbage, focavam apenas nessas capacidades. Sua mentalidade da "ciência poética"a levou a fazer perguntas sobre a Máquina Analítica (como mostrado em suas notas) e a examinar como os indivíduos e a sociedade se relacionam com a tecnologia como uma ferramenta de colaboração.


Casou-se, aos 20 anos com William Lord King. King foi nomeado Conde de Lovelace em 1838, e Ada tornou-se Lady Lovelace. Ada morreu de câncer de útero, aos 36 anos de idade.


3. - As Máquinas de Babbage


Em 1801, o francês Joseph Marie Jacquard criou um tear mecânico, com uma leitora automática de cartões. A ideia inspirou Babbage, do outro lado do Canal da Mancha, a idealizar uma máquina de tecer números que fizesse cálculos e pudesse ser controlada por cartões.

Máquina Diferencial

Em 1822, apresentou o projeto de sua grande máquina, a qual chamou de máquina diferencial, capaz de resolver equações polinomiais, possibilitando a construção de tabelas de logaritmos, um dos maiores problemas da época. Em 1823, recebeu financiamento do governo britânico para desenvolver um aparelho que pudesse resolver qualquer tipo de cálculo — ideia por trás dos computadores.

As características da máquina diferencial eram:  
   - Idealizada para construir tabelas de números para navegação naval. 
   - Construída para executar um único algoritmo 
   - Usava o método das diferenças finitas usando polinômios. 
  - Método para disponibilizar informações na saída (resultados perfurados em um prato de cobre).

Máquina Analítica

Em 1834 – Babbage inventou a precursora dos computadores digitais de hoje, a Máquina Analítica. Usava a base 10, máquina “mecânica”, trabalhava a vapor.  Ela obedecia uma Programação seqüencial de operações, um procedimento que hoje chamamos de sistema operacional. Por seu trabalho na máquina analítica, Babbage é considerado um dos pioneiros dos computadores. 

fot de uma reprodução da máquina analítica

A máquina era baseada em relações de engrenagens que eram ajustadas de acordo com o problema que se queria resolver. Então após o manuseio e aplicar uma força manual para girar as colunas de engrenagens se obtinha rapidamente os resultados dos cálculos em uma coluna mecânica específica. Babbage também idealizou uma saída em uma impressora que evitava erros na saída. 



Vídeo sobre a Máquina de Babbage


Em 1991, o Science Museum de Londres desenvolveu o Engenho Diferencial utilizando os planos de Babbage e funcionou perfeitamente.


  ===================

Ada

A condessa de Lovelace, Ada Augusta King, ajudou Babbage pesquisar e, principalmente, traduzir documentos do francês para o inglês. Ela também projetou programas para a máquina que ele tentava construir — infelizmente a máquina nunca chegou a existir.


4. - Primeiros métodos usados nas máquinas diferenciais

Para calcular os valores de um polinômio como y = x^2 + 1, precisaríamos resolver manualmente para os três primeiros valores e colocá-los na tabela abaixo: 

Exemplo Y = X^2  +  1

a) Calcula-se os três primeiros valores manualmente, para x = 0, x =1, e x =2.  Obtemos como resultado 1, 2 e 5. 
b) Faz-se a diferença entre o Resultado da linha 2 e linha 1 (=2-1) e colocamos na coluna Dif-01, na primeira linha (=1). Procede-se a mesma a diferença entre o Resultado da linha 3 com a linha 2 (=5-2) e coloca-se em Dif-01 linha 02 (=3).
c) Calcula-se a diferença entre a linha 2 de Dif-01 e linha 1 de Dif-01 (=3-1) e colocamos o resultado na primeira linha de Dif-02 (=2). Esse resultado vai ser uma diferença constante. 
d) Repete-se esse valor na próxima linha coluna Dif-02.
e) Soma-se o valor da segunda linha Dif-02 com o valor da segunda linha Dif-01 (=3 +2)e obtém-se o próximo valor da linha 3  de Dif-01 (=5).
f) Soma-se o valor de Dif-01 com o valor de Resultado (=5 + 5) e obtém-se o valor do próximo resultado para x = 3 (=10).

O processo prossegue dessa maneira, somando-se os valores das diferenças, colocando-se no próximo valor da dif-1, soma-se esse valor com o resultado existente e encontra-se o próximo valor.

tabela mostrando o primeiro passo da sequencia de cálculo do polinomio de grau N

 
tabela mostrando o passo seguinte do calculo
 
tabela mostrando o passo final e o resultado do ca´lculo


Para o polinômio de grau n precisamos calcular manualmente os n +1 primeiros resultados e preencher os valores das diferenças. A última diferença sempre será o valor constantes. A partir daí fazemos o processo inverso a partir da coluna de valores constantes até obtermos o valor do próximo resultado.


foto do professor explicando a utilização da tabela para grupo de pessoas




5. - O algoritmo e as idéias de Ada Lovelace


Além de traduzir artigos científicos para Babagge, Ada acrescentava vários comentários e inclusive comentários como a páquina podia ser programada e um código para calcuçar os números de Bernoulli.


O algoritmo

diagrama com as anotações do algoritmo


As idéias

Além construir os primeiros métodos de programação, Ada vislumbrava diversas outras utilidades para o mecanismo desenvolvido por Babbage, mesmo que este, em específico, fosse limitado a cálculos numéricos.

Ada acreditava que qualquer tipo de conteúdo, como música, texto, imagens e sons, poderia ser traduzido para a forma digital e manipulado pela máquina. Ela já visualizava aquilo que viria acontecer nos computadores atuais.


Em uma de suas famosas anotações Ada escreve: 

Mais uma vez, [o mecanismo analítico] poderia agir sobre outras coisas além do número […] Supondo, por exemplo, que as relações fundamentais dos sons agudos, na ciência da harmonia e da composição musical, sejam suscetíveis a essas expressões e adaptações, o mecanismo pode compor peças musicais elaboradas e científicas de qualquer grau de complexidade ou extensão.


Vídeo sobre a vida de Ada



Homenagens


A linguagem de programação Ada foi criada em homenagem à Ada Lovelace pelo Departamento de Defesa dos Estados Unidos. A documentação da linguagem foi aprovada em 10 de Dezembro de 1980.

Em 1981, a Associação de Mulheres na Computação criou o Prêmio Ada Lovelace. Em 1998, A Associação Britânica de Computação criou a Medalha Lovelace e em 2008 iniciou uma competição anual para alunas. A Associação Britânica de Computação é patrocinadora do Lovelace Colloquium, que é uma conferência anual para mulheres estudantes de graduação. A Ada College é uma escola extra-curricular focada em tecnologia localizada em Tottenham Hale, Londres.

5. - Outras atividades de Ada Lovelace

- Ada era obcecada com a idéia de voar. Aos doze anos escreveu um livro com suas ideias para alcançar esse objetivo com o título "Flyology".



6. - Referências

Wikipedia - Ada Lovelace / Máquinas de Babagge
Evolução dos computadores: https://www.dsc.ufcg.edu.br/~joseana/IC_NA02.pdf

atividades de Ada Lovelace - https://gobacklog.com/blog/curiosidades-sobre-ada-lovelace/

7. - Outros artigos da série