matemauro

Di matematica ma non soltanto…

Archive for the ‘cibernetica’ Category

Breve storia dei linguaggi di programmazione – 1

with 6 comments

Più o meno un mese fa ho scoperto un sito che per me, matematico, informatico (nato programmatore) è una miniera d’oro per tenere allenata la mente: parlo di Euler Project, una raccolta di problemi attinenti alla matematica e alla programmazione. In questo periodo ho risolto circa 150 dei 350 (e rotti) problemi che vi sono attualmente (ne esce uno nuovo a settimana). I temi trattati spaziano dai numeri primi al triangolo di Pascal (di Tartaglia per noi italiani ;-)), dalla geometria alle equazioni diofantee, dai triangoli magici ai problemi di conbinatoria e così via.

Naturalmente i primi problemi (quelli di numero più basso) sono stati quelli più facili da risolvere, alcuni addirittura li ho risolti con carta e matita (non penna, ché qualche errore scappa sempre! :-D), poi, aumentando la difficoltà, sono dovuto ricorrere al computer e dunque ai linguaggi di programmazione… 😉

Per me, che ho iniziato a programmare ai tempi dell’Università con la mitica TI-58 e poi con lo ZX-80(1), è stato quasi un tornare indietro di una trentina d’anni, ai tempi belli dell’informatica (se pensate che quando feci il corso di programmazione per l’azienda alla quale ho dato il meglio di me stesso per vent’anni, lavoravamo ancora con le schede perforate, penso che capiate di cosa sto parlando… ;-)).

È ovvio che ho iniziato a sviscerare i problemi del Progetto Eulero con gli strumenti più semplici dell’informatico, il Basic, poi lo Small Basic, quindi il Visual Basic, accorgendomi però che, man mano che cresceva il grado di difficoltà, occorrevano strumenti sempre più potenti per riuscire a rimanere nel tempo di un minuto che il sito dà come limite (naturalmente virtuale, dato che non c’è nessuno che controlla, ma in questi casi la propria coscienza è il giudice migliore… ;-)) per ottenere la soluzione corretta.

Dunque, per migliorare le mie prestazioni, sono passato man mano a strumenti (linguaggi) più evoluti: il C++, il Java, il Python, lo Haskell, e altri che adesso non sto a elencare; linguaggi che, a parte i primi due, sinceramente non conoscevo (o conoscevo soltanto per sentito dire). E così ho scoperto un mondo intero di linguaggi dei quali avevo poca o nulla cognizione.

Questo processo personale mi ha portato a pensare di poter diffondere, tra il colto e l’inclita (cit.), una piccola ma densa storia dei linguaggi di programmazione, anche perché tutto sommato rappresentano uno spaccato della storia dell’informatica, scienza che tanta importanza ha al mondo d’oggi.

E già questa sarebbe stata una motivazione sufficiente. Poi però ho scoperto che a metà gennaio ci sarà la prossima edizione (la n. 45) del Carnevale della Matematica, al quale più volte ho partecipato, e che a organizzare questa edizione sarà la mia amica Annarita e che il tema del Carnevale di gennaio sarà “Teoria della computazione, storia del pc e dintorni” e dunque, come si dice, con questa serie di articoli acchiappo due piccioni con una sola fava! (absit iniuria verbis…. :-D)

Bene, come introduzione per far venire l’acquolina in bocca a chi è interessato (e spero anche a chi lo è meno ;-)) mi pare che basti, a rileggerci alla prossima puntata!

________________

(1) Per chi sa un po’ di storia delle calcolatrici programmabili e dei primi computer da tavolo che si collegavano al televisore di casa: ebbene sì, io ero per la Texas Instruments contro l’HP e per la Sinclair contro l’Amiga-Commodore! Come disse qualcuno (ma pare che la citazione, almeno in questo caso, sia apocrifa), ci sedemmo dalla parte del torto, visto che tutti gli altri posti erano occupati… 😉

Written by matemauro

28-12-2011 at 01:04

Norbert Wiener

with 15 comments

wiener

Norbert Wiener (Columbia, 26 novembre 1894 – Stoccolma, 18 marzo 1964) è stato un matematico e statistico statunitense. È famoso per ricerche sul calcolo delle probabilità, ma soprattutto per gli sviluppi dati, insieme al suo allievo Claude Shannon, alla teoria dell’informazione, essendo riconosciuto come il padre della cibernetica moderna.

Bambino prodigio, dimostro subitò una incredibile precocità. A diciotto mesi imparò l’alfabeto, a tre anni a leggere e a cinque declamava in greco e latino. A sette anni andò alla Peabody school di Cambridge, venendo messo in terza, poi spostato subito in quarta, ma anche questa risultò troppo elementare per Wiener. A questo punto il padre, famoso storico e linguista, decise di occuparsi lui stesso dell’educazione del figlio. A otto anni gli venne una grave miopia per via dello studio e il medico gli consigliò di non leggere per sei mesi per cercare di non aggravare la malattia. Non potendo leggere, la madre gli leggeva le lezioni preparate dal padre, e studenti dell’università venivano a fargli lezioni di chimica, algebra, trigonometria. In breve Wiener sviluppò una prodigiosa memoria fotografica, oltre a una eccellente capacità di ragionamento. All’età di 10 anni fu ammesso al liceo pubblico di Aver, dove alla fine del primo anno fu spostato in quinta. Nel 1906 si diplomò con i voti più alti della classe e a settembre dello stesso anno, iscrivendosi all’università di Tufts, divenne il più giovane studente univeritario della storia americana. Dopo tre anni, nel 1909, ottenne la laurea di primo livello in matematica. Successivamente si laureò anche in fisica e in biologia.

Fondamentale, nell’opera di Wiener, la sua analisi del fenomeno della retroazione (feedback), cioè  la capacità dei sistemi dinamici di tenere conto dei risultati delle proprie azioni per modificare le caratteristiche del sistema stesso. Un esempio classico è il sistema di calcolatori sviluppato dallo stesso Wiener durante la 2ª guerra mondiale per le batterie antiaeree:  in quel caso, il problema principale derivava dalla necessità di lanciare il proiettile non direttamente sul bersaglio, dal momento che questo era dotato di elevata velocità, ma in un punto posto davanti alla traiettoria, in modo tale che l’aereo e il proiettile giungessero infine ad incontrarsi.  Il suo sistema era basato su un radar che forniva informazioni a un calcolatore sulla rotta prevedibile (tenendo conto anche dei possibili mutamenti di rotta determinati dal pilota) dell’aereo nemico da abbattere. Il calcolatore orientava il cannone in base alla prevista posizione dell’aereo, tenendo conto della sua velocità e del tempo impiegato dal proiettile a raggiungerlo. Dopo ogni colpo, il radar comunicava al sistema l’entità dell’errore di tiro, in modo che il calcolatore potesse effettuare le necessarie correzioni. Il ciclo continuava finché l’obiettivo non veniva colpito.

Nel corso di questo progetto furono ravvisate alcune similitudini con il comportamento umano nella soluzione di problemi di orientamento. Wiener ipotizzò che anche nel comportamento umano agisse un meccanismo di retroazione. Si rivolse dunque al medico e fisiologo messicano Arturo Rosenblueth per avere una conferma della sua ipotesi. Da questa collaborazione vide la luce l’articolo Behaviour, Purpose, and Teleology pubblicato nella rivista "Philosophy of Science". Nacque così l’idea di una scienza unificata dei meccanismi di controllo nelle macchine e negli esseri viventi.

Quando arrivò il momento di battezzare la nuova scienza fu suggerito di partire dal termine greco kybernetes. Infatti il primo scritto sulla retroazione risale all’ottocento ed è un articolo di Maxwell sui regolatori (in inglese si chiamanano governors) ideati da Watt per le macchine a vapore; governor deriva dal latino gubernare che a sua volta ha origine dal greco kybernetes. Inoltre kybernetes significa timoniere, e il meccanismo di controllo del timone era uno dei sistemi a retroazione all’epoca meglio sviluppati.

Ogni sistema di controllo richiede la trasmissione di informazioni e quindi la cibernetica affrontò sin dalla propria nascita lo studio della teoria della comunicazione. Non a caso il libro di Wiener che segna la nascita della cibernetica si intitola Cibernetica, ovvero il controllo e la comunicazione nell’uomo e nella macchina. La cibernetica è strettamente legata all’informatica, alla teoria dell’intelligenza artificiale, alla robotica e all’applicazione di metodi automatici nel controllo della produzione industriale.

Written by matemauro

28-11-2008 at 21:26

Pubblicato su cibernetica, scienza, wiener