Utente:Davi.trip/Sandbox2: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Davi.trip (discussione | contributi)
Nessun oggetto della modifica
Davi.trip (discussione | contributi)
Nessun oggetto della modifica
Riga 43:
La macchina di Turing è una semplice macchina teorica, ma è equivalente a un effettivo computer fisico nel senso che entrambi computano esattamente lo stesso insieme di funzioni.<ref name=":0">{{Cita|O'Regan (2012)|p. 197|O'Regan12}}</ref> Con una macchina di Turing risulta più facile l'analisi e la dimostrazione piuttosto che con un vero computer.<ref name=":0" /> Tuttavia, le macchine di Turing non sono adatte per programmare, e non forniscono una buona base per lo studio della programmazione o dei linguaggi di programmazione.<ref name=":0" />
 
Turing introdusse anche il concetto di macchina di Turing universale, la quale è in grado di simulare qualunque altra macchina di Turing.<ref name=":0" /> Tuttavia, i primi calcolatori elettronici, anche quando programmabili, non saranno universali ("Turing completi"), ma capaci solo di famiglie ristrette di computazioni.<ref name=":19">{{Cita|Monga|p. 111}}</ref> John von Neumann, avendo letto ''On computable numbers'', proporrà di usare l'ENIAC (o analogo marchingegno) come una macchina di Turing universale, codificando la macchina adatta ad una specifica computazione come dato di input del dispositivo universale.<ref>{{Cita|Monga|p. 112}}</ref><ref group="Nota">Un moderno elaboratore elettronico può essere visto come la realizzazione di una macchina di Turing universale che esegue un programma sui dati di input: sia il programma sia i dati sono residenti nella memoria che, diversamente dal nastro immaginario, ha una dimensione finita.</ref>
 
== I primi calcolatori moderni digitali ==
 
=== VersoLe iprime calcolatoriesperienze elettroniciin digitaliEuropa e USA ===
 
==== Analogico e digitale ====
 
Qualsiasi informazione, per poter essere elaborata da un odierno computer, deve essere trasformata dalla forma analogica alla forma digitale. L'aggettivo "analogico", di solito, è utilizzato per indicare apparecchi, strumenti o dispositivi che trattano grandezze rappresentandole con altre grandezze legate alle prime da una relazione di analogia.<ref name=":2">{{Cita libro|nome=Giusella|cognome=Finocchiaro|nome2=Luciano|cognome2=Margara|nome3=Simone|cognome3=Martini|titolo=Fondamenti di informatica: 2|url=https://www.amazon.it/Fondamenti-informatica-2-Giusella-Finocchiaro/dp/8808044378/ref=sr_1_1?ie=UTF8&qid=1534780111&sr=8-1&keywords=fondamenti+di+informatica+2|accesso=2018-08-20|edizione=1|data=15 gennaio 2007|editore=Zanichelli|lingua=Italiano|ISBN=9788808044372}}</ref> Per esempio, gli strumenti dotati di lancette come i tachimetri o le bilance visualizzano le informazioni relative rispettivamente alla velocità e al peso per mezzo dell'ampiezza di una angolo il cui valore è direttamente proporzionale alla grandezza misurata.<ref name=":15">{{Cita libro|autore=Walter Maraschini|autore2=Mauro Palma|titolo=Enciclopedia della Matematica|edizione=Edizione speciale per il Corriere della Sera|anno=2014|editore=Garzanti|lingua=italiano|volume=A-L|opera=Le Garzantine|ISBN=9771825063273}}</ref> I sistemi digitali, invece, rappresentano grandezze sotto forma numerica, usando i simboli di un certo sistema di numerazione (decimale o binario).<ref name=":2" /> Un segnale, quindi, è in formato digitale se viene rappresentato attraverso le cifre (''digits'', in inglese) di un sistema di numerazione.<ref name=":2" />[[File:ClaudeShannon_MFO3807.jpg|alt=|sinistra|miniatura|211x211px|Claude Shannon]]Nel 1938, il matematico Claude Shannon, con una tesi di laurea intitolata ''Analisi simbolica dei circuiti a relè e interruttori'', affermava che i circuiti elettrici, se dotati di interruttori binari, possono eseguire operazioni logiche di algebra booleana.<ref>{{Cita|Isaacson|p. 54}}</ref> Già dal 1934 al 1936, l'ingegnere della NEC Akira Nakashima aveva pubblicato una serie di documenti che mostravano che l'algebra booleana a due valori, che scoprì in maniera indipendente (conobbe il lavoro di George Boole solo nel 1938), può descrivere l'operatività dei circuiti di commutazione.<ref>{{Cita pubblicazione|nome=Akihiko|cognome=Yamada|data=2004|titolo=History of Research on Switching Theory in Japan|rivista=IEEJ Transactions on Fundamentals and Materials|volume=124|numero=8|pp=720–726|lingua=ja|accesso=2018-08-21|doi=10.1541/ieejfms.124.720|url=http://dx.doi.org/10.1541/ieejfms.124.720}}</ref><ref>{{Cita web|url=http://museum.ipsj.or.jp/en/computer/dawn/0002.html|titolo=Switching Theory/Relay Circuit Network Theory/Theory of Logical Mathematics-Computer Museum|autore=Information Processing Society of Japan|sito=museum.ipsj.or.jp|accesso=2018-08-21}}</ref><ref>{{Cita pubblicazione|autore=|nome=Radomir S.|cognome=Stanković|titolo=Some Historical Remarks on Switching Theory|rivista=|volume=|numero=|accesso=2018-08-21|url=https://pdfs.semanticscholar.org/93da/461d311c4525ba985229245b7965a03b6880.pdf|nome2=Jaakko T.|cognome2=Astola|nome3=Mark G.|cognome3=Karpovsky}}</ref><ref>{{Cita pubblicazione|autore=Radomir S. Stanković|anno=2008|titolo=Reprints from the Early Days of Information Sciences: TICSP Series On the Contributions of Akira Nakashima to Switching Theory|rivista=TICSP Series|editore=Tampere International Center for Signal Processing|volume=|numero=40|url=http://ticsp.cs.tut.fi/reports/reprint-nakashima-rr.pdf|autore2=Jaakko Astola}}</ref> Un circuito di commutazione è un circuito elettrico in cui tutti i punti del circuito, ingressi e uscite comprese e informazioni, sono rappresentate in modo discreto, cioè possono avere un insieme discreto di valori di tensione e/o corrente.<ref name=":3">{{Cita libro|nome=Daniela|cognome=Cancila|nome2=Stefano|cognome2=Mazzanti|titolo=Il dizionario enciclopedico di informatica. Inglese-italiano, italiano-inglese. Ediz. bilingue. Con aggiornamento online|url=https://www.amazon.it/enciclopedico-informatica-Inglese-italiano-italiano-inglese-aggiornamento/dp/8808193519/ref=sr_1_2?ie=UTF8&qid=1534834066&sr=8-2&keywords=dizionario+enciclopedico+informatica|accesso=2018-08-21|data=1 giugno 2009|editore=Zanichelli|lingua=Multilingue|ISBN=9788808193513}}</ref> Di solito i valori possibili sono solo due: il valore nullo o il valore della tensione di alimentazione del circuito.<ref name=":3" /> La teoria di Shannon ebbe successo presso i ricercatori e gli ingegneri di tutto il mondo e di conseguenza, ad eccezione dei calcolatori analogici usati in alcuni casi specifici, tutti i calcolatori elettronici oggi sono digitali. Georges Stibitz, un matematico dei Laboratori Bell, fu il primo a usare i numeri binari in un dispositivo di calcolo, sebbene tale dispositivo fosse elettromeccanico, e non elettronico.<ref group="Nota"> Valvole termoioniche e transistor possono fare da interruttori in un circuito elettrico, e sono detti elettronici perché condizionano il flusso degli elettroni senza necessitare di parti in movimento (caratteristica invece di particolari relè che si aprono e chiudono a scatto, che sono interruttori elettromeccanici).</ref> Sarà l'ingegnere tedesco Konrad Zuse colui che costruirà nel 1939 il primo calcolatore digitale programmabile multiuso pienamente funzionante, lo Z3.<ref name=":1">{{Cita|Isaacson|p. 60}}</ref> Non èebbe mai entrato in serviziofuturo, in quanto fu distrutto insieme ai suoi progetti dai bombardamenti alleati del 1943.<ref name=":4">{{Cita|Isaacson|p. 85}}</ref>
 
Vi sono casi in cui un calcolatore può essere digitale ma non binario. IBM cominciò a lavorare sui calcolatori durante gli anni della guerra con l'Harvard Mark 1, che sarà completato nel 1944. Era essenzialmente un calcolatore elettromeccanico che poteva eseguire automaticamente grandi computazioni e che era stato progettato da Howard Aiken per aiutarsi nel calcolo di equazioni differenziali; eseguiva addizioni in meno di un secondo, moltiplicazioni in 6 secondi e divisioni in circa 12 secondi.<ref name=":20">{{Cita|O'Regan (2016)|pp. 56-58|O'Regan16}}</ref>
Riga 64:
==== L'ENIAC e l'architettura di von Neumann ====
Come nel caso britannico dello sviluppo del Colossus, le necessità di difesa furono la forza trainante dello sviluppo del primo grande calcolatore elettronico costruito negli Stati Uniti.<ref name=":5" /> L'ENIAC (Electronic Numerical Integrator and Computer, in italiano Integratore e Computatore Numerico Elettronico), sebbene fu completato alla fine del 1945, quando ormai la seconda guerra mondiale era finita, fu concepito inizialmente per il calcolo delle traiettorie balistiche.<ref name=":5" /> Sviluppato dalla Moore School of Electrical Engineering dell'Università della Pennsylvania, per il Ballistic Research Laboratory in Aberdeen, Maryland, questo calcolatore era una macchina decimale multiuso, contenente circa 18.000 valvole termoioniche.<ref name=":5">{{Cita|Bunch e Hellemans|p. 376}}</ref> Il progetto faceva riferimento all'Analizzatore Differenziale di Vannevar Bush, eccetto per il fatto che al posto dei componenti meccanici, vi erano componenti elettronici. La logica della macchina era integrata nello stesso hardware, e così cambiandone la configurazione, la macchina poteva essere regolata per eseguire diverse attività. Tale "programmazione" consisteva nel collegare e scollegare cavi nei quadri di controllo e reimpostare centinaia di interruttori.[[File:John von Neumann.jpg|miniatura|171x171px|John von Neumann]]
Mentre l'ENIAC stava per essere completato alla Moore School, i suoi progettisti, John Mauchly, Presper Eckert, e Herman Goldstine, erano consapevoli dei suoi limiti, e iniziarono a lavorare con il matematico John von Neumann su una concezione completamente nuova dei calcolatori. Il concetto di base, ora noto come "architettura di von Neumann", separava completamente le funzioni logiche dall'hardware; ciò significa che la maggior parte delle istruzioni per l'esecuzione di calcoli non sono permanenti, ma sono memorizzate in una memoria temporanea chiamata ''random-access memory'' (la RAM).<ref name=":5" /> Le istruzioni possono essere posizionate in qualsiasi punto della memoria e perfino modificate dal calcolatore stesso quando necessario. Oltre alla RAM, un calcolatore di von Neumann contiene un processore centrale e usa la numerazione binaria e l'algebra booleana per l'elaborazione e la memorizzazione dei dati.<ref name=":5" /> Nel 1949, il successore dell'ENIAC, cioè l'EDVAC, implementò il concetto di programma memorizzato, subito dopo la prima implementazione di tale concetto nel prototipo del Manchester Baby, nelin Regno Unito.<ref>{{Cita|O'Regan (2016)|p. 62|O'Regan16}}</ref><ref>{{Cita pubblicazione|autore=John von Neumann|data=30 giugno 1945|titolo=First Draft of a Report on the EDVAC|rivista=|editore=University of Pennsylvania|volume=|numero=|lingua=en|url=https://www.wiley.com/legacy/wileychi/wang_archi/supp/appendix_a.pdf}}</ref> Durante il successivo quarto di secolo, l'architettura di von Neumann sarà implementata in tutti i calcolatori. I calcolatori a valvole termoioniche, basati sull'architettura di von Neumann, adesso sono conosciuti come la prima generazione di calcolatori elettronici; la seconda generazione nascerà con l'incorporazione del transistor nei circuiti della macchina.<ref name=":5" />
 
==== Hopper e le "ENIAC girls" ====
Riga 75:
 
=== Quadro dei primi calcolatori digitali ===
{| class="wikitable" style="background:white; text-align:center;"
|+Caratteristiche di alcuni dei primi calcolatori digitali degli anni Quaranta
! style="width: 200px;" | Nome
!Nome
! style="width: 50px;" | Entrata in servizio
! style="width: 100px;" | Sistema di numerazione
! style="width: 100px;" | Tecnologia di calcolo
! style="width: 200px;" | Memoria
! style="width: 200px;" | Programmabilità
! style="width: 50px;" | Turing completa
|-
!Zuse Z3 <small>(Germania)</small>
Riga 91:
|1600 relè elettromeccanici, e poteva memorizzare 64 ''parole'' da 22 bit<ref>{{Cita|Morelli|p. 177}}</ref>
|Il programma era letto da nastri di pellicola cinematografica<ref name=":21" />, ma non poteva essere tenuto in memoria<ref>{{Cita|Morelli|p. 176}}</ref>
|SiIn teoria si<ref name=":21" />
|-
!Atanasoff-Berry Computer <small>(USA)</small>
Riga 121:
|Decimale<ref name=":25" />
|Elettronica<ref name=":25" />
|I componenti della memoria erano suddivisi in una "memoria interna" che consisteva di due parti: (gli accumulatori a 10 cifre e i 6000 interruttori e cavi su quadri di controllo, accumulatori e "trasmittenti costanti";), e l'illimitata "memoria esterna", che era fornita dall'esterno della macchina sotto forma di schede perforate<ref>{{Cita web|url=https://www.seas.upenn.edu/about/history-heritage/eniac/|titolo=ENIAC at Penn Engineering|lingua=en-US|accesso=2018-12-13}}</ref>
|Poteva essere programmato per eseguire complesse sequenze di operazioni, includendo cicli, ramificazioni e ''subroutine''<ref name=":25" />
|Si<ref>{{Cita|Isaacson|p. 86}}</ref>