Lieduco

La Storia dell’Informatica: quarto approfondimento. Il sopraggiungere dei Sistemi Operativi, l’avanzare dell’Automation Intelligence e la nascita dell’Intelligenza Artificiale.

Ci avviciniamo sempre di più all’informatica così come la conosciamo oggi, nel 2021, eppure le scoperte e le migliorie continuano ad essere tante.

John George Kemeny (1926-1992) & Thomas Eugene Kurtz (1928)

Co-autori del linguaggio Basic nel 1963. Il linguaggio BASIC è, in realtà, un acronimo della frase inglese Beginner’s All-purpose Symbolic Instruction Code (“codice simbolico di istruzioni adatto a ogni esigenza dei principianti”) e fu progettato proprio per essere semplice da imparare, con poche istruzioni e non complesse.

Paul Baran (1926-2011)

Uno dei creatori del protocollo a pacchetti per la Rete, insieme a Donald Davies e Leonard Kleinrock. Questa è una tecnica di trasmissione dei dati usata per condividere un canale di comunicazione tra più nodi, l’informazione da trasferire viene suddivisa in pacchetti che vengono – a loro volta – trasmessi individualmente e in sequenza.

Fernando Corbató (1926-2019)

Pioniere nello sviluppo di sistemi operativi con scheduling time-sharing, questo non è altro che un modo del sistema operativo rivolto all’uso delle risorse per suddividere le attività dell’unità di elaborazione centrale in intervalli temporali. La tecnica time-sharing fu introdotta per permettere a più utenti contemporaneamente di utilizzare il computer; la simultaneità è solo apparente in quanto in ogni istante il processore esegue una sola attività, è la rapidità di esecuzione che li fa apparire simultanei.

Robert Noyce (1927-1990)

Conosciuto come “il sindaco di Silicon Valley” è stato co-fondatore della Fairchild Semiconductor nel 1957 e di Intel nel 1968. Insieme a Jack Kilby inventò il circuito integrato producendo, attorno al 1958, il primo microchip funzionante (con silicio e germanio).

Allen Newell (1927-1992)

Contribuisce in modo determinante nella realizzazione di sistemi di Intelligenza Artificiale, a lui si devono infatti due importanti programmi: il Logic Theory Machine (1956) e il General Problem Solver (1957). Quest’ultimo, meglio conosciuto come G.P.S., venne creato principalmente per risolvere problemi teorici, geometrici e anche per giocare a scacchi. Le caratteristiche principali di questo programma sono la natura ricorsiva di risoluzione dei problemi e la separazione dei contenuti dei problemi dalle tecniche di risoluzione.

John McCarthy (1927-2011)

Autore del linguaggio LISP ed inventore del termine “Intelligenza Artificiale” (Artificial Intelligence) nella Dartmouth Conference del 1956. Il linguaggio LISP è, in realtà, un insieme di linguaggi di programmazione con implementazioni compilate e implementate spesso associato a progetti in intelligenza artificiale. È stato un linguaggio utile a facilitare uno stile di programmazione funzionale.

Seymour Papert (1928-2016)

Pioniere nel settore dell’intelligenza artificiale ed autore del linguaggio LOGO. Nonostante il suo approccio matematico e informatico ha studiato molto l’apprendimento umano, soprattutto per quanto riguarda i bambini. Ha osservato a lungo i bambini di alcune civiltà africane che costruivano case in scala arrivando alla conclusione che la mante umana ha bisogno di materiali da costruzione esattamente come un costruttore. Papert sostiene l’uso del computer come supporto all’istruzione e ambiente d’apprendimento che aiuta a costruirsi nuove idee. Il computer viene così usato come macchina per simulare. Il linguaggio da lui ideato, LOGO, è un linguaggio formalmente molto rigoroso ma al tempo stesso comprensibile ed utilizzabile anche da bambini delle scuole primarie. Nella didattica ideata da Papert, ha grande importanza la gestione dell’errore: la sua idea è che l’unico modo per imparare in modo significativo sia quello di prendere coscienza dei propri errori. Compito dell’insegnante è quindi anche quello di guidare il bambino nel caso di errore.

Peter Naur (1928-2016)

Uno dei padri della notazione sintattica BNF (N sta appunto per Naur) utilizzata da molti linguaggi di programmazione. Ha, inoltre, contribuito allo sviluppo di ALGOL 60. La BNF è un formalismo attraverso cui è possibile descrivere la sintassi di linguaggi formali, è uno strumento molto usato per descrivere in modo preciso e non ambiguo la sintassi dei linguaggi di programmazione, dei protocolli di rete e così via.

Jean E. Sammet (1928)

Informatica americana fu una degli sviluppatori coordinati da Grace Hopper che nel 1959 definirono il linguaggio COBOL. Nel 1962 all’interno di IBM allo sviluppo del linguaggio FORMAC (Formula Manipulation Compiler) il primo linguaggio di programmazione largamente utilizzato per la manipolazione delle formule matematiche. Nel 1965 divenne la prima manager di linguaggio di programmazione, sempre in IBM, guidando il lavoro sul linguaggio ADA.

Juris Hartmanis (1928)

Uno dei padri della teoria computazionale complessa, teoria che calcola il costo della risoluzione di un problema misurando il numero di operazioni richieste e la quantità di memoria utilizzata. Come risultato si ottiene una stima della rapidità con cui aumenta il tempo necessario a risolvere il problema aumentando la dimensione del problema stesso.

Gordon Moore (1929)

Co-fondatore di Intel con Chairman Emeritus ed autore della fomosa “Legge di Moore” sull’aumento della potenza dei microprocessori e la loro relativa miniaturizzazione. Sostanzialmente, nella sua legge del 1965, Moore teorizzò che il numero dei transistori nei microprocessori sarebbe raddoppiato ogni 12 mesi circa. Questo “metro di misurazione” è diventato anche l’obiettivo di tutte le aziende Intel e AMD. Per fare un esempio: nel 1997 Intel lancia il Pentium II con una frequenza di 300 MHz e 7.5 milioni di transistori; nel 2000 viene lanciato il Pentium 4 con una frequenza di 1,5 GHz e 42 milioni di transistori.

Ole-Johan Dahl (1931-2002)

Coautore con Kristen Nygaard di Simula e della programmazione Object Oriented. Simula è stato il primo programma orientato agli oggetti e da esso deriva anche il, forse, più conosciuto C++. I linguaggi orientati agli oggetti (OOP) sono dei linguaggi che permettono di creare oggetti software in grado di interagire gli uni con gli altri scambiando messaggi tra loro, sono molto utilizzati nella creazione di interfacce grafiche.

James Russell (1931)

L’inventore del Compact Disc (CD) era in realtà un musicofilo che nel 1965 decise di usare una luce laser per registrare e leggere la musica in formato digitale. Tipicamente i CD sono dei dischi di policarbonato trasparente con un diametro di 12cm ricoperto da un sottile strato di materiale metallico su cui vengono memorizzate le informazioni come successioni di informazioni; queste informazioni vengono poi lette grazie ad un laser. I dati che vengono salvati sui CD sono ordinati su di una spirale che parte dal centro e si allarga verso l’esterno. I CD audio hanno una velocità di lettura costante, il laser infatti deve leggere i dati ad una velocità uniforme, si andrà quindi a variare la velocità del disco andando dai 500 giri al minuto nella parte centrale fino ai 200 giri al minuto nella parte più esterna.

Dana Scott (1932)

Uno dei fondatori del moderno approccio alla semantica dei linguaggi di programmazione. Grazie a loro si è arrivati ad un moderno approccio alla formalizzazione dei significati dei linguaggi di programmazione, fornendo un significato di un programma come una funzione che associa l’input all’output. In linea di massima, la semantica denotazionale si occupa di trovare oggetti matematici che rappresentino cosa fanno i programmi.

Tony Hoare (1934)

Conosciuto principalmente quale autore dell’algoritmo di ordinamento Quicksort (1961) e lo studio dei processi concorrenti. L’algoritmo Quicksort è l’algoritmo di ordinamento più utilizzato al mondo. Lavorava a un progetto di traduzione automatica per il National Physical Laboratory russo, durante il processo di traduzione si rese necessario ordinare le parole prima di consultare il dizionario inglese che era registrato su un nastro magnetico. Capito che il procedimento “classico” sarebbe stato troppo lento ne ideò uno nuovo, scrisse il programma con Autocode senza riuscire a gestire, tuttavia, alcune porzioni non ordinate. Fu in grado di completare il codice poco dopo sfruttando le potenzialità del ALGOL con le ritorsioni.