RISPOSTE DOMANDE APERTE
9.3. ESERCITAZIONE.
1) Fornire una definizione generale di calcolatore digitale comprensiva delle tre
caratteristiche fondamentali.
Un calcolatore digitale è una macchina elettronica in grado di risolvere problemi eseguendo una sequenza di
istruzioni che le viene assegnata. Questo insieme di istruzioni prende il nome di programma e descrive il
procedimento necessario per portare a termine un determinato compito.
Il calcolatore opera elaborando informazioni in forma digitale e può eseguire direttamente soltanto un
numero limitato di istruzioni elementari, che costituiscono il suo linguaggio macchina. Anche operazioni
complesse vengono quindi scomposte, attraverso procedimenti matematici e logici, in sequenze di operazioni
semplici.
Le tre caratteristiche fondamentali di un calcolatore digitale consistono nelle sue operazioni di base:
1. Eseguire somme, cioè effettuare operazioni aritmetiche fondamentali, base di calcoli più complessi;
2. Verificare se un numero è diverso da zero, operazione fondamentale per prendere decisioni logiche
e controllare il flusso del programma;
3. Spostare dati in diverse porzioni di memoria, cioè trasferire informazioni da una zona all’altra per
poterle elaborare o conservare.
Queste tre funzioni rappresentano il nucleo essenziale del funzionamento di qualsiasi calcolatore digitale.
2) Descrivere nel modo più semplice possibile la differenza tra INTERPRETE e
TRADUTTORE.
La differenza tra interprete e traduttore riguarda il modo in cui un programma scritto in un linguaggio di alto
livello viene reso comprensibile alla macchina.
I programmatori scrivono programmi in linguaggi più vicini al ragionamento umano, ma il computer può
eseguire solo istruzioni nel proprio linguaggio macchina. Per superare questa differenza esistono due
approcci principali: traduzione e interpretazione.
Il traduttore converte preventivamente tutto il programma scritto nel linguaggio sorgente in un programma
equivalente nel linguaggio macchina. In questo modo il programma originale viene trasformato
completamente prima dell’esecuzione. Una volta tradotto, il computer esegue direttamente il nuovo
programma generato.
L’interprete, invece, non traduce l’intero programma in anticipo, ma analizza ed esegue ciascuna istruzione
una alla volta, direttamente durante l’esecuzione, senza produrre un nuovo programma in linguaggio
macchina.
La differenza fondamentale è quindi questa: con la traduzione si ottiene prima un nuovo programma
eseguibile, mentre con l’interpretazione il programma originale viene eseguito passo per passo tramite un
software intermedio chiamato interprete.
Entrambi i metodi sono ancora oggi molto utilizzati, spesso anche in combinazione.
3) Cos’è una macchina virtuale? Perché è stato così importante introdurre questo concetto?
Una macchina virtuale è un computer ipotetico o simulato che possiede un proprio linguaggio macchina,
diverso da quello dell’hardware reale su cui opera.
Invece di pensare soltanto in termini di traduzione o interpretazione, è possibile immaginare l’esistenza di
una macchina virtuale capace di eseguire direttamente un determinato linguaggio. Ad esempio, se un
linguaggio Y fosse il linguaggio macchina di una macchina virtuale, i programmatori potrebbero scrivere
programmi direttamente in Y come se quella macchina esistesse realmente.
Nella pratica, però, costruire fisicamente una macchina di questo tipo potrebbe essere troppo costoso o
complesso. Per questo motivo si realizza un programma che simula quella macchina virtuale su una
macchina reale.
L’importanza di questo concetto è stata fondamentale perché ha permesso di introdurre livelli successivi di
astrazione: invece di scrivere programmi sempre più vicini all’hardware, si è potuto creare nuovi linguaggi
sempre più vicini al modo di pensare umano.
In questo modo, un linguaggio Z può essere tradotto in Y, e Y a sua volta in X, creando una gerarchia di
macchine virtuali. Questo ha reso la programmazione più semplice, più flessibile e più accessibile, riducendo
la distanza tra uomo e macchina.
10.3. ESERCITAZIONE.
1) Descrivere la figura di Ada Lovelace e la sua relazione con Babbage.
Ada Lovelace è considerata la prima programmatrice della storia. Collaborò con Charles Babbage nello
sviluppo della Analytical Engine, una macchina rivoluzionaria programmabile tramite un linguaggio simile
all’assemblaggio.
Poiché la macchina di Babbage necessitava di istruzioni precise per funzionare, Ada Lovelace si occupò della
scrittura degli algoritmi necessari al suo funzionamento, dando così origine al concetto moderno di software.
Il suo contributo fu innovativo perché comprese che una macchina programmabile non si limitava a eseguire
calcoli numerici, ma poteva elaborare qualsiasi tipo di simbolo seguendo regole logiche.
In suo onore fu poi creato il linguaggio di programmazione Ada.
Babbage, pur non riuscendo mai a costruire una versione perfettamente funzionante della sua macchina a
causa dei limiti tecnologici dell’epoca, elaborò un’architettura così avanzata che molti principi dei calcolatori
moderni derivano direttamente dalle sue intuizioni. Per questo viene considerato il padre dei calcolatori
moderni.
2) Perché John Atanasoff è considerato il padre dei calcolatori moderni?
John Atanasoff è considerato uno dei padri dei calcolatori moderni perché progettò una macchina
estremamente innovativa per il suo tempo.
Il suo calcolatore introdusse due elementi fondamentali: l’uso dell’aritmetica binaria, che è ancora oggi alla
base del funzionamento dei computer, e l’utilizzo di condensatori per la memoria.
Questa memoria richiedeva un aggiornamento periodico della carica elettrica per evitare la perdita dei dati,
processo che Atanasoff chiamò “jogging the memory”. Lo stesso principio è alla base delle moderne
memorie dinamiche, come le DRAM.
Anche se la sua macchina non diventò mai pienamente operativa a causa dei limiti tecnologici del periodo, le
sue innovazioni anticiparono molte delle caratteristiche fondamentali dei computer moderni. Per questo viene
considerato un precursore fondamentale dell’informatica.
3) In che modo la guerra ha influenzato la realizzazione di nuovi calcolatori digitali?
La Seconda Guerra Mondiale ebbe un ruolo decisivo nello sviluppo dei calcolatori digitali, poiché le
esigenze militari richiedevano rapidità di calcolo e capacità di elaborazione sempre maggiori.
Uno degli ambiti principali fu la crittografia. I tedeschi utilizzavano la macchina Enigma per cifrare i
messaggi destinati ai sottomarini. I britannici riuscirono a intercettare questi messaggi, ma per decifrarli era
necessario effettuare enormi quantità di calcoli in tempi brevissimi.
Per questo motivo il governo britannico sviluppò Colossus, il primo elaboratore digitale elettronico,
operativo dal 1943. Alla sua progettazione contribuì il matematico Alan Turing. Tuttavia, il progetto rimase
segreto per molti anni e non influenzò immediatamente lo sviluppo successivo.
Negli Stati Uniti, invece, la guerra generò la necessità di calcolare rapidamente le tabelle balistiche per
l’artiglieria. Questo portò alla realizzazione di ENIAC da parte di John Mauchly e J. Presper Eckert.
ENIAC fu uno dei primi grandi calcolatori elettronici: utilizzava 18.000 valvole termoioniche, 1500 relè,
pesava 30 tonnellate e consumava enormi quantità di energia. Era programmato manualmente tramite
interruttori e cavi.
Anche se fu completato nel 1946, a guerra ormai conclusa, segnò l’inizio della diffusione dei computer
elettronici e diede impulso a un enorme sviluppo nel settore informatico.
La guerra, quindi, accelerò enormemente la nascita dei calcolatori digitali, trasformando esigenze militari in
innovazioni tecnologiche fondamentali per il futuro dell’informatica.
Ecco la rielaborazione, mantenendo la struttura delle esercitazioni e trasformando tutto in risposte complete e
più “da esame”.
11.3. ESERCITAZIONE.
1) Qual è la differenza tra la tecnologia a valvole e quella a transistor? L’arrivo dei
transistor che novità ha portato nella costruzione dei calcolatori digitali?
La principale differenza tra la tecnologia a valvole termoioniche e quella a transistor riguarda dimensioni,
consumo energetico, affidabilità e velocità.
Le valvole, utilizzate nei primi calcolatori digitali come ENIAC, erano componenti elettronici molto grandi,
fragili e soggetti a frequenti guasti. Inoltre consumavano enormi quantità di energia e producevano molto
calore. Per questo i primi computer erano macchine gigantesche, costose e difficili da mantenere.
Il transistor, inventato nel 1948 ai Bell Labs da John Bardeen, Walter H. Brattain e William Shockley,
rappresentò una svolta decisiva. Per questa invenzione i tre ricevettero