Ada Lovelace fu una matematica inglese nota come la prima programmatrice della storia. Grazie all’incontro con Charles Babbage riuscì a realizzare il primo algoritmo ad essere elaborato da una macchina, rendendola così la prima programmatrice della storia.
IN BREVE
Ada Augusta King fu una delle donne più influenti dell’Europa ottocentesca. Nacque il 10 dicembre del 1815 dall’unione tra il poeta Lord Byron e Anne Isabella Milbanke. Dopo il divorzio dei genitori sua madre la indirizzò verso la matematica e le scienze, allontanandola dalle sue inclinazioni letterarie probabilmente come simbolo di distacco dal padre. Nonostante l’interesse per la matematica fosse in aumento in Europa, in Inghilterra era insolito che una fanciulla venisse educata alle scienze. Venne istruita dai migliori matematici del tempo tra cui De Morgan che la aiutò ad apprendere i principi dell’algebra, della logica e del calcolo matematico. Nel 1835 Ada sposò William King-Noel conte di Lovelace, dal quale ereditò il titolo di “contessa di Lovelace”. La vita della giovane matematica cambiò per sempre quando il 5 giugno 1933 incontrò Charles Babbage, un noto matematico conosciuto per le sue idee rivoluzionarie nell’ambito della matematica e dell’economia. I due iniziarono a lavorare insieme e Ada diede un grande contributo all’analisi della macchina di Babbage. Le note di Ada hanno stabilito la sua importanza nel campo dell’informatica e il suo ruolo di pioniera femminile l’ha resa un’icona. Ancora oggi è difficile comprendere quanto sia stato grande il contributo di Babbage, ma le note di Ada e il suo modo di pensare lucido e chiaro hanno rivelato una visione unica della macchina di Babbage. Dopo aver trascorso la vita dedicandosi alla matematica, morì il 27 novembre 1852 all’età di 36 anni, la stessa età alla quale morì il padre.

Il lavoro con Charles Babbage
Negli anni ’40 dell’ottocento, Charles Babbage iniziò a elaborare il motore analitico (analytical engine), il primo prototipo di computer progettato per risolvere problemi computazionali generali. La macchina analitica ha un’impostazione molto simile ai moderni computer, era costituito da una memoria, un’unità centrale di elaborazione e un lettore di schede perforate. Lo scopo dell’analitical engine era quello di eseguire addizioni, sottrazioni, moltiplicazioni e divisioni. Babbage presentò il progetto una sola volta a Torino e tra gli spettatori era presente Luigi Federico Menabrea, che prendendo appunti alla riunione, pubblicò successivamente un articolo in francese, intitolato “Sketch of the Analytical Engine”. Babbage chiese ad Ada di tradurre in inglese i lavori di Menabrea la quale aggiunse di sua volontà alcune note e appunti. Lovelace era una grande osservatrice, riuscì infatti a intuire nel lavoro di Babbage qualcosa di più grande del semplice calcolo matematico. Il motore analitico avrebbe potuto utilizzare i numeri per rappresentare dei concetti. Purtroppo, per mancanza di fondi, il motore analitico non venne mai realizzato.

Calcolo dei numeri di Bernoulli
Alle traduzioni dei lavori di Menabrea, Ada non aggiunse solo note e appunti, ma anche un algoritmo per il calcolo dei numeri di Bernoulli. I numeri di Bernoulli sono una successione di numeri razionali fondamentali nella risoluzione di diversi problemi. L’algoritmo di Lovelace permette di calcolare i numeri di Bernoulli senza dover calcolare tutti quelli precedenti. L’algoritmo da lei creato è il primo algoritmo della storia ad essere elaborato da una macchina, un traguardo che l’ha resa famosa come la prima programmatrice della storia. Tutt’ora questo algoritmo è considerato il simbolo dell’unione tra matematica e informatica. L’intuizione di Ada Lovelace fu fondamentale per il futuro dell’informatica. Alan Turing, prendendo ispirazione dalle note e dall’algoritmo di Ada, fu in grado di elaborare e progettare il primo computer moderno.
Linguaggio di programmazione ADA
Per linguaggio di programmazione si intende un linguaggio dotato di regole che hanno lo scopo di scrivere programmi per computer. Si tratta di un insieme di dati input ai quali vengono applicati una serie di istruzioni che li trasformano in output. In onore della prima programmatrice della storia, il linguaggio ADA è stato elaborato per avere sicurezza e affidabilità nel mondo dell’aviazione, dello spazio, dei trasporti e dell’esercito. Questo linguaggio di programmazione viene definito “general purpose”: si presta all’utilizzo di diversi domini applicativi, inoltre è statico, imperativo, ad ampio spettro e orientato agli oggetti. Il linguaggio di programmazione è stato affidato a dei bandi sotto iniziativa del Dipartimento della Difesa degli Stati Uniti. Nel maggio del ’70 venne selezionato CII Honeywell/Bull per aver presentato il miglior progetto che venne poi pubblicato nel febbraio del 1980. ADA è stato progettato per rispondere alle esigenze della programmazione real time. Un caratteristica dei linguaggi di programmazione è quella di poter riutilizzare alcune parti di altri programmi già esistenti. Per poterlo fare è necessario che il programma abbia una struttura a libreria, diviso cioè in moduli. Nel linguaggio di programmazione ADA queste librerie vengono definite packages.
Sintassi
Il linguaggio ADA è rigido e ripetitivo, lungo da scrivere poiché composto da molti verbi. A differenza di altri linguaggi di programmazione, ADA è molto chiaro da leggere e comprendere, una caratteristica fondamentale quando si ha a che fare con programmi lunghi e complessi. Il linguaggio ADA viene utilizzato in settori in cui non è ammesso il minimo errore, la sua rigidità deriva dal fatto che i programmi devono essere codificati nel modo più corretto possibile. I compilatori effettuano numerosi test sul codice prima di renderlo esecutivo. È un linguaggio strutturato con blocchi limitati da keyword. Il linguaggio ADA, inoltre, è insensibile alle maiuscole e si compone di pochi simboli tra cui operatori aritmetici e matematici, operatori di comparazione, virgola, punto e virgola, freccia, il tick ( ‘ ) e il box ( < > ). Nonostante ADA sia un linguaggio di programmazione completo è ad oggi uno dei meno conosciuti. Questo perché, a differenza dei linguaggi più famosi come Java o C++ che sono stati creati con funzionalità limitate e che nel tempo si sono sviluppati, ADA nasce come un linguaggio completo e coerente, che a primo impatto può sembrare complesso se non impossibile.

Caratteristiche del linguaggio
- leggibilità: la notazione del linguaggio facilita la lettura dei programmi
- tipologia controllata: è possibile controllare che un “oggetto” assuma determinati valori solo in un particolare insieme evitando che assuma valori errati in senso logico
- programmazione su vasta scala: i programmi sono senza limiti di dimensioni sui quali è facile la manutenzione e offre meccanismi per la protezione dati e la gestione delle librerie
- gestione delle segnalazioni di eccezioni: quando si verifica un errore, la procedura da seguire viene specificata nella sezione che ha generato l’errore
- rappresentazione dei dati in forma astratta: i programmi sono facilmente trasportabili su altre macchine in quanto i dati sono riportati in maniera indipendente rispetto alle operazioni logiche che li costituiscono.
- gestione lavori: le attività vengono eseguite in parallelo
- unità di programmazione generalizzate: alcune parti di programma possono essere raggruppate ad esempio quelle che sono soggette a modifiche indipendenti.
Fonte
- Fluency conoscere e usare l’informatica
Lawrence Snyder, Alessandro Amoroso - ADA
Unibo