Filosofia dell'informazione/Computazione: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Etichette: Modifica da mobile Modifica da web per mobile
Riga 1:
== Computazione ==
 
=== La nascita dei computer moderni ===
I primi calcolatori non avevano programmi già salvati in memoria: per eseguire operazioni diverse era necessario modificare manualmente i collegamenti. Il primo a pensare a un calcolatore con istruzioni codificate salvate all'interno della memoria fu [https://it.wikipedia.org/wiki/Alan_Turing Alan Turing]; nel 1935, in un articolo intitolato ''On Computable Numbers, with an Application to the Entscheidungsproblem''<ref name=":0">{{Cita pubblicazione|autore=Alan M. Turing|titolo=On Computable Numbers, with an Application to the Entscheidungsproblem|rivista=Proceedings of the London Mathematical Society, ser. 2|volume=42|pp=230-265|lingua=en|url=http://draperg.cis.byuh.edu/archive/winter2014/cs320/Turing_Paper_1936.pdf|wkautore=Alan Turing|formato=pdf}}</ref>. Proprio da questo articolo nasceva l'idea della [https://it.wikipedia.org/wiki/Macchina_di_Turing macchina di Turing universale], una macchina dalla memoria infinita capace di contenere sia dati che istruzioni, dotata di uno scanner in grado di muoversi nella memoria, simbolo dopo simbolo, leggendone o scrivendone altri; in questa macchina il semplice inserimento di programmi diversi poteva condurre a risultati diversi.
 
==== Il contenuto dell'articolo di Turing ====
L'articolo di Turing dava avvio alla moderna scienza della computazione, dal momento che al suo interno egli affermava che ci fossero problemi matematici che la sua macchina non era in grado di risolvere, come l’''[https://it.wikipedia.org/wiki/Entscheidungsproblem Entscheidungsproblem],'' il problema della decisione.
 
==== Le modifiche alla macchina di Turing, la realizzazione e la commercializzazione ====
A partire da quel momento sia negli Stati Uniti che nel Regno Unito, grazie rispettivamente a [https://it.wikipedia.org/wiki/John_von_Neumann John von Neumann] e [https://en.wikipedia.org/wiki/Max_Newman Max Newman], cominciarono a nascere progetti per trasformare l’idea di Turing in realtà. Il primo risultato in tal senso si ebbe il 21 giugno 1948 nei laboratori dell'[https://it.wikipedia.org/wiki/Università_di_Manchester Università di Manchester]: nasceva il ''[https://it.wikipedia.org/wiki/Manchester_Baby Manchester Baby]''; tre anni dopo il [https://it.wikipedia.org/wiki/Ferranti_Mark_1 ''Ferranti Mark I''], la versione commerciale del ''Baby,'' veniva messa in vendita: tra queste, nove furono distribuite in Europa. Il secondo a raggiungere il risultato fu l’''[https://it.wikipedia.org/wiki/UNIVAC_I UNIVAC]'' negli USA; un prototipo simile a quello di Manchester dell’Università di Cambridge fu l’''[https://it.wikipedia.org/wiki/EDVAC EDVAC]'', commercializzato con il nome di ''LEO'' lo stesso anno. Il primo calcolatore commerciale che riusciva a immagazzinare sia i dati che i programmi fu l’''[https://it.wikipedia.org/wiki/IBM_701 IBM 701]'', messo in commercio nel 1953.
 
=== Cos'è una macchina di Turing ===
Come detto precedentemente, una macchina di Turing è una macchina dalla memoria infinita capace di contenere sia dati che istruzioni, dotata di uno scanner in grado di muoversi nella memoria, simbolo dopo simbolo, leggendo o scrivendo altri simboli: i simboli sono inseriti in quadrati a loro volta inglobati in un nastro; sono letti uno alla volta e possono essere scelti da qualunque alfabeto (si può scegliere di usare, per esempio, "1" e "0"). [[File:Turing machine Scan.jpg|miniatura|''Esempio del modo in cui avviene una scansione in una macchina di Turing.'']] Il nastro su cui sono immagazzinati i dati serve sia da dispositivo di input sia di output e contiene anche il programma da eseguire; all'inizio il nastro deve essere scritto con un numero finito di simboli (anche se il seguito può essere vuoto) e la loro elaborazione può continuare all'infinito. Le macchine che hanno le caratteristiche di una macchina di Turing ma che hanno un nastro limitato vengono dette ''[https://it.wikipedia.org/wiki/Automa_a_stati_finiti automi a stati finiti]''.
 
=== Le operazioni di base di una macchina di Turing ===
Ogni macchina di Turing, tramite il lettore, esegue le stesse operazioni di base, che sono logicamente semplici. Esse sono:
 
* ''Cancellazione'': la capacità di cancellare ciò che è scritto sul nastro;
* ''Scrittura'': la capacità di scrivere un simbolo, dopo averne eventualmente cancellato il contenuto;
* ''Spostamento'': la capacità di spostarsi all'analisi del quadrato immediatamente a destra o a sinistra di quello esaminato.
 
Le operazioni più complesse sono una concatenazione di queste semplici operazioni, con l'aggiunta dello "Stop" e del "Cambio stato", ovvero la capacità di un dispositivo interno allo scanner di modificare la sua posizione da una zona etichettata a un'altra. Questo meccanismo funziona come memoria e permette di ricordare simboli visti nelle caselle precedenti.
 
Dal momento che la macchina di Turing è un congegno astratto, nessun computer moderno è in grado di calcolare qualcosa che la macchina di Turing non possa calcolare proprio perché quest'ultima ha capacità "potenzialmente" infinite.
 
==== Esempio di un programma su una macchina di Turing ====
Nell'articolo di Turing è possibile trovare un esempio del funzionamento della macchina che brevemente viene descritto di seguito.
 
Il programma scriverà su un nastro bianco in modo alternato una sequenza di 0 e 1 lasciando uno spazio vuoto ogni volta che viene completato un processo di scrittura; affinché ciò avvenga si fa uso di 4 stati di memoria (da ''1'' a ''4''), le cui operazioni possono essere descritte nel modo seguente:
 
# Se il quadrato è bianco, ''scrittura'' di 0 e ''spostamento'' a destra, poi istruzione 2;
# Se il quadrato è bianco, ''spostamento'' a destra poi istruzione 3;
# Se il quadrato è bianco, ''scrittura'' di 1 e ''spostamento'' a destra, poi istruzione 4;
# Se il quadrato è bianco, ''spostamento'' a destra, poi istruzione 1.
 
Non viene spiegato da Turing in che modo la macchina capisca di dover cambiare istruzione, dal momento che questa era un'astrazione e non era necessario.
 
=== Computazione umana ===
Quando Turing scrisse l'articolo con cui nacque la sua macchina<ref name=":0" />, il ''calcolatore'' non era una macchina ma un essere umano, un assistente matematico che calcolava a mente. Molti ''calcolatori umani'' vennero usati nel mondo governativo, commerciale o della ricerca: essi facevano i calcoli che al giorno d'oggi vengono fatti dai computer. Con il termine ''computing machine'' (letteralmente: macchina calcolante) si andò via via indicando ciò che meccanizzava il lavoro dei calcolatori umani: erano, in effetti, degli ometti che facevano i calcoli più velocemente, paragonabili alle moderne calcolatrici. A partire dagli anni Quaranta del Novecento, i fisici e gli ingegneri cominciarono ad avere la necessità di calcolatori più veloci, grandi e automatici; nei primi anni Cinquanta, invece, la parola inglese ''computer'' cominciò una fase in cui il suo significato traslò dall'indicare il semplice "calcolatore umano" a ciò che intendiamo oggi per computer<ref>{{Cita web|url=https://it.wiktionary.org/wiki/computer|titolo=Computer}}</ref>; nella fase transizionale si era soliti far precedere la parola dagli aggettivi "elettronico" o "digitale".
 
=== Note ===
 
== La nascita del Computer moderno==