

















































































Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Slide informatica avanzata file completo
Tipologia: Slide
1 / 89
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!


















































































Informatica Avanzata
Gestione e trattamento dell’informazione
Corso di Laurea in Traduzione Specialistica (LM-94) 28 Febbraio 2023
Informatica: genesi del termine
Origine del nome: dal francese Informatique, neologismo coniato negli anni ‘60 da Philippe
Dreyfus. Si tratta di una crasi ( information + automatique )
Definizione di informatica: disciplina che si occupa della progettazione e costruzione di macchine
in grado di trattare o elaborare in modo automatico l’informazione.
Contesto di riferimento: anni ‘60 del XX secolo
Quale rapporto con la nozione di ‘informatica’? Quali strutture/infrastrutture erano presenti
all’epoca?
Quali analogie o differenze possono esserci con la moderna concezione di ‘informatica’?
Informatica: genesi del termine
Punti in comune: i benefici apportati dall’informatica
di errore);
Accesso semplificato ad elaborazioni di informazioni che gli uomini compierebbero con tempi,
modalità e risultati diversi
Informatica: genesi del termine
Primo strumento di informatica: il CALCOLATORE , o ELABORATORI ELETTRONICI
CALCOLATORE = COMPUTER (in grado di effettuare computazioni, calcoli)
ELABORATORE = termine meno diffuso ma più appropriato (il dato è propriamente elaborato,
non calcolato)
Informatica: genesi del termine
(^) Data l’importanza del dato computazionale o dell’informazione di varia natura, divenuti
ancora più complessi e rilevanti, la ‘nuova’ locuzione designata per indicare la disciplina è
«tecnologia dell’informazione», più nota come IT (Information Technology).
(^) Tale occorrenza è integrata nell’altrettanto nota ICT (Information & Communication
Technology) a causa della possibilità di trasmissione (a distanza) dell’informazione stessa.
(^) Elaborazione singola! Elaborazione complessa! Elaborazione trasmessa/condivisa
D ato vs informazione vs conoscenza
Il termine informatica dunque si lega a doppio filo con il concetto generico di ‘informazione’,
qualsiasi essa sia.
In questo campo, esiste una correlazione tra il concetto di informazione e i termini ‘dato’ e
‘conoscenza’. Tuttavia, questi si pongono in una dimensione verticale su tre livelli, dunque non
paritetici o sullo stesso livello ma consequenziali. L’informazione è al livello centrale di questa
tripartizione.
Dato Informazione Conoscenza
supporto fisico. Questo insieme è inteso per rappresentare una qualsiasi proprietà a cui esso si
riferisce. È il livello più semplificato di rappresentazione di una qualsiasi realtà.
Ad es., un numero o una sequenza di lettere ordinata.
Analogia con il linguaggio umano: comunicare per trasmettere un’informazione e/o per
rappresentare una realtà, un’entità.
Il linguaggio umano è universale? Permette cioè una comunicazione sempre e comunque
comprensibile tra due o più soggetti?
Un confronto: le lingue naturali
Le lingue (convenzionali, umane) si sono sviluppate nel corso del tempo. Esse sono definite
lingue naturali ma sono diverse tra loro. Non esiste un linguaggio (verbale) comune e
universale: basti pensare che esistono diverse lingue naturali che, per essere messe in
relazione, occorre tradurre.
Dunque le lingue naturali non sono assolute nella loro elaborazione e interpretazione.
Lingue naturali come entità dinamiche
(^) Caratteristica peculiare di ogni linguaggio naturale è quello della sua ‘malleabilità’, ossia la
sua capacità di non avere schemi fissi e imprescindibili. Al di là della struttura basilare – più
o meno fissa a seconda delle varie lingue – rappresentata dall’organizzazione sintattica
delle parole e delle frasi, è possibile modificare l’ordine di parole, locuzioni o sintagmi con
un certo grado di libertà.
(^) Il linguaggio naturale, in questo senso, è antitetico rispetto ad altri linguaggi a ‘schema
fisso’, come quello matematico.
Lingue naturali e ambiguità come valore
Il linguaggio naturale si contraddistingue quindi per via di una naturale ambiguità
semantica, che a sua volta dipende dal contesto di riferimento. A loro volta, le parole non
sono univoche ma ambigue, e solo il contesto permette di disambiguare il riferimento
semantico che si cela dietro un termine.
Senza contesto e codifica adeguati, le parole del linguaggio naturale sono come dati, e non
informazioni che mirano alla conoscenza.
Ambiguità del linguaggio naturale
Ambiguità del linguaggio naturale
Ambiguità del linguaggio naturale
Un confronto: I linguaggi formali
linguaggi naturali per la loro assoluta mancanza di ambiguità, condizione necessaria affinché il
dato possa essere elaborato e processato in maniera corretta.
Caratteristiche dei linguaggi formali
(^) Caratteristiche dei linguaggi formali:
(^) Presenza di un alfabeto composto da un numero finito di simboli
mutualmente componibili ed interconnessi
Creazione di una grammatica formale , vale a dire una lista di regole sintattiche per
combinare i vari simboli e, a livello superiore, le parole e le frasi secondo tali schemi
sintattici.
Interconnessione di frasi con significati (conseguenze) precisi = creazione di semantiche
formali.
(^) NB: Non c’è possibilità di costruzioni sintattiche ambigue e/o che non rispettino la
grammatica stabilita (punto di divergenza con linguaggi naturali)
Codifica e rappresentazione dell’informazione
La stessa informazione, nei linguaggi naturali, può essere veicolata attraverso simboli diversi
codificati correttamente (ad es., un numero arabo vs. numero romano vs. dita della mano).
Nel linguaggio formale, è necessario stabilire la struttura e la valenza assoluta dei simboli.
Step 1: creazione di un alfabeto informatico
L’alfabeto informatico più essenziale è rappresentato da due simboli antitetici fra loro, ma che
assumono valenza solo dalla loro mutua associazione ed interscambiabilità. Un alfabeto ad un solo
simbolo ridurrebbe di molto la capacità di poter costruire un linguaggio: con anche solo due simboli
questa capacità aumenta in modo esponenziale.
L’alfabeto informatico: il bit
In informatica, l’alfabeto basilare è rappresentato da due simboli, 0 e 1. Tale sequenza è definita
come bit , contrazione di BI nary digi T. Tutte le informazioni elaborate dai computer, siano queste
di puro calcolo o informazioni più elaborate come audio, video, immagini, ecc. sono la risultante
codificata di una sequenza più o meno lunga di bit.
Sistema ‘complesso’
Sistema univoco
Passaggio o non passaggio di luce in un cavo ottico
Doppia immissione: carica elettrica e passaggio di luce
Le sequenze di bit per costruire un linguaggio
Come detto, l’interscambiabilità e la combinazione in sequenze permette la costruzione di
linguaggi. In un sistema binario è possibile combinare i bit a seconda del numero di sequenze
possibili. Un numero più alto di sequenze di bit permette un’informazione sempre più complessa e
organica perché è maggiore il numero di informazioni generate.
Le sequenze di bit
Data una cifra binaria 0 e 1, un sistema a 2 bit permette 4 sequenze possibili, ossia 2
combinazioni. Quali sono?
(^) Sono 4: 00, 11, 01, 10
(^) Un sistema a 3 bit ha una sequenza di 3 numeri con 0 e 1, vale a dire 2
. Le combinazioni
sono: 000, 111, 001, 100, 010, 011, 110, 101.
Un sistema a 4 bit ha una sequenza di 4 numeri con 0 e 1, vale a dire 2
. Le combinazioni
possibili sono 16.
Calcolare le 16 combinazioni binarie di una
sequenza a 4 bit (
(Soluzione)
Le combinazioni possibili sono:
N bit: 2
n combinazioni possibili.
NB: ogni numero (0 o 1) deve essere presente nella sequenza di bit per un numero pari alla metà
delle combinazioni (ad es., in un sistema a 3 bit = 8 combinazioni il numero 0 sarà presente in
prima posizione per 4 volte, in seconda posizione per 4 volte, ecc).
Dal bit al byte
Data la complessità di informazione dei moderni sistemi informatici, si tende a non considerare i
livelli di bit più bassi. Per questo motivo, un’unità di misura di quantificazione dell’estensione di
una sequenza è chiamata byte , corrispondente ad una sequenza di 8 bit (
Quantificare lo spazio informatico
(^) Una sequenza di bit o byte ha un suo ‘peso’, vale a dire necessita di uno spazio entro cui
essere contenuta, o meglio memorizzata. Un calcolatore ha un dispositivo di archiviazione
costituito da una serie (oggi molto ingente) di dispositivi bistabili in grado di contenere e
memorizzare tali sequenze.
(^) Si definisce capacità di memorizzazione la quantità di dati che un calcolatore è in grado di
memorizzare.
Tale capacità si può misurare in bit o in byte, ma per le ragioni di cui sopra (attuali sistemi
complessi ad elevata quantità di informazione) sono necessarie grandezze superiori.
Due standard di capacità
decimale declinati sulle potenze di 10 (
, ecc.) per convenzione.
(^) Questa visione differisce dalla sequenza ‘informatica’ analizzata in precedenza, in cui le
potenze sono a base 2 (sistema binario).
(^) Tuttavia, vi sono analogie di scala che fanno sì che i numeri siano molto simili in termini di
quantificazione.
(^) Esiste dunque la capacità decimale e la capacità binaria.
Sistema binario vs Sistema Internazionale
Prefisso convenzionale Sistema binario (0/1) Sistema internazionale
Kilo (^210) (= 1024) 103 (1000)
Mega (^220) (1024 x 1024 = 1.048.576) 106 (1.000.000)
Giga 230 109
Tera 240 1012
Misurazione in sistema decimale (a sx) vs. Misurazione in sistema binario (byte)
Alcune logiche ‘commerciali’
esempio una scheda di memoria, un dispositivo di archiviazione USB o un hard disk hanno una
capacità inferiore a quella dichiarata. La discrepanza si verifica poiché il sistema operativo che
legge il dispositivo è basato su numerazione binaria, mentre il produttore del dispositivo dichiara il
dato su base decimale.
Un confronto tra sistemi
Dato in byte più vicino alla capacità reale rispetto al valore commerciale/decimale
Grandezze di bit e di byte
Trasmissione (comunicazione a distanza nello spazio) o diffusione (in caso di soggetti non
predeterminati)
(^) Processi di codifica e decodifica
precedentemente menzionate, è sottoposto ad alcune fasi:
(^) L’informazione è codificata in dati dal punto di vista fisico, ossia sono ‘impressi’ su un
qualsiasi supporto in grado di immagazzinarli;
(^) Se vi sono operazioni successiva alla conservazione, tale supporto fisico può subire una
trasformazione che genera a sua volta altri dati sotto forma di sequenza (ordinata) di
simboli;
•Tali dati sono ri-codificati e ri-decodificati e generano nuova informazione.
Operazioni statiche vs. dinamiche
La memorizzazione del dato-informazione è un processo ‘statico’. Dopo la codifica, infatti, il dato
èimmagazzinato nel supporto fisico e rimane inalterato ma comunque accessibile per altre
operazioni come la modifica o la trasmissione/diffusione.
Un processo dinamico è proprio quest’ultimo, dato che il trasferimento di un’informazione da
mittente a destinatario presuppone uno spostamento ‘fisico’ dell’informazione da un supporto ad un
altro (ad es., la copia di un file su un dispositivo mobile o l’invio di una qualsivoglia comunicazione
attraverso la Rete).
Input/Output (I/O)
L’elaborazione dunque prevede un processo di trattamento in entrata dell’informazione o in uscita.
Gli algoritmi
L’informazione in ingresso necessita di istruzioni precise da immettere per arrivare al compimento
di una determinata azione. In genere, è possibile definire questa descrizione di eventi/istruzioni
come algoritmo.
Gli algoritmi nella realtà
ben si associa a discipline scientifiche come l’algebra, la matematica e più recentemente
l’informatica («le macchine sono governate dagli algoritmi»).
(^) Tuttavia, qualsiasi processo che comporta una serie di istruzioni votate all’analisi e alla
realizzazione di un qualsiasi processo è definito come tale.
La logica (umana) è di fatto un tipo di algoritmo, e in realtà qualsiasi attività compiamo che
presuppone un numero di passi (logico- mentali e fattuali) rientra in questa definizione.
Origine del termine e nuova valenza
Origine del termine: l’algoritmo prende il nome da un astronomo e matematico persiano, Al-
Khwārizimī, il quale nel IX secolo scrisse un trattato sul calcolo (logica associazione del termine
con il calcolo ‘scientifico’).
Forte legame con il passato, ma termine già presente (si pensi al sillogismo) e ora di nuovo in auge
grazie all’informatica, disciplina che ‘crea’ e tratta l’informazione attraverso una sequenza e una
descrizione di passaggi formali.
I linguaggi di programmazione
(^) I sistemi informatici, dunque, sono la risultante di linguaggi formali combinati con e grazie
ad una serie di algoritmi. Tali linguaggi sono ad esempio i linguaggi di programmazione , i
quali sono necessari per poter effettuare il trattamento di una concatenazione di informazioni
per un determinato scopo.
(^) Essi sono necessari per poter descrivere gli algoritmi, i quali sono poi eseguiti da un
calcolatore/elaboratore/computer.
Esempi di linguaggi di programmazione: Basic, Pascal , C, C++, Java.
Dagli algoritmi ai programmi (finiti)
Un algoritmo elaborato in un determinato linguaggio di programmazione viene definito
programma. Il programmatore ècolui il quale scrive programmi.
Caratteristiche degli algoritmi
la sua trasposizione in chiave contemporanea). È sempre stata un’esigenza umana per poter
quantificare in senso concreto la realtà sociale che lo circonda (ad esempio, per scopi commerciali o
di comunicazione).
conta... manuale, ossia delle dita della mano. Non è un caso che il sistema decimale si basi proprio
su questa unità di misura di fatto universale.
I sistemi di elaborazione nel tempo
La presenza di dieci dita, tuttavia, presuppone anche sistemi di calcolo differenti poiché è
possibile stabilire un criterio computazionale differente. Occorre, in questo caso, uscire dalla logica
‘classica’ secondo cui il dito equivale a soltanto una singola unità. Ad esempio, il sistema
Babilonese permetteva di contare fino a 24 con due mani grazie all’uso delle tre falangi per ogni
dito, usando il pollice come ‘leva di indicazione’.
L’importante è condividere la stessa unità di misura o rappresentazione del dato – informazione.
L’abaco diventa il primo strumento riconosciuto di calcolo non manuale , ossia un dispositivo di
calcolo. Replicando alcuni dei principi visti in precedenza, la stessa cifra assume un valore
differente a seconda della sua posizione (unità, decine, centinaia, ecc.). Il sistema prevedeva l’uso di
guide parallele, sulle quali si spostavano dei sassolini (detti calculus in Latino) che indicavano
appunto il valore della posizione su ogni guida. Anche in questo caso è necessaria uniformità di
definizione delle variabili di calcolo (la guida dell’unità è in basso o in alto? Il valore indicato è da
dx verso sx o viceversa?)
Uno strumento molto importante per calcoli complessi è rappresentato dal regolo calcolatore ,
realizzato da William Oughtred nel XVII secolo. Esso permetteva calcoli non comuni come
elevamenti a potenza o logaritmi, pur essendo uno strumento analogico. Esso era composto da una
parte fissa con delle scale, un’asta scorrevole con scale mobili da una parte e dall’altra della parte
fissa; e un cursore con linee di riferimento. Scorrendo l’asta lungo la parte fissa e centrandola nella
funzione desiderata era possibile ottenere un valore di riferimento che andava interpretato secondo
la grandezza desiderata (ad esempio, il valore 1,9 poteva essere interpretato come 19, 190 o anche
0,019).
Nello stesso secolo Blaise Pascal realizzò una macchina che porta il suo nome, la Pascalina. Si
trattava di una calcolatrice meccanica a ruote dentate (ingranaggi) che permetteva calcoli basilari.
Un’evoluzione in questo senso è rappresentata dallo Stepped Reckoner di Wilhelm von Leibniz. Si
trattava di uno strumento simile ma in grado di effettuare tutte e 4 le operazioni aritmetiche,
selezionando l’input di volta in volta e utilizzando una manovella per far scorrere gli ingranaggi
relativi all’immissione della cifra e dell’operazione da calcolare.
Tali macchine erano per lo più calcolatori meccanici. Una svolta verso dispositivi più complessi è
rappresentata dalla macchina di Charles Babbage (XIX secolo) basata su schede perforate e dunque
in grado di compiere operazioni I/O. Un sistema del genere apre la strada al concetto di
programmazione data l’immissione di una serie di istruzioni analizzate dalla macchina (il cosiddetto
analytical engine ). Un vero e proprio programma in questo senso è realizzato per la prima volta da
Ada Lovelace che nel 1843 teorizza un modo per far funzionare la macchina di Babbage. Lovelace
èconsiderata la prima programmatrice della storia legata al calcolo, anche se si ha traccia di schede
perforate per programmare i telai tessili in un periodo antecedente.
Sviluppi nel XX secolo: filoni di ricerca differenti in varie zone del mondo (Germania, Inghilterra,
USA), vale a dire nazioni impegnate nel controllo internazionale anche e soprattutto dal punto di
vista militare.
Èimportante notare come l’avvento e la diffusione dell’elettricità abbia permesso anche
l’implementazione sulle macchine. Questa tecnologia apre la strada alla creazione di calcolatori
automatici su base elettromagnetica (la macchina di Konrad Zuse basata sui relè) o addirittura
elettronico, in cui segnali (elettrici) contenevano anche informazione che veniva di fatto trasmessa
da un luogo fisico ad un altro (circuito). Colossus, realizzato da Tommy Flowers nel 1943, è il
primo esempio di calcolatore elettronico.
Negli Stati Uniti, Mauchly e Eckert svilupparono ENIAC ( Electronic Numerical Integrator and
Computer ) e il suo successore, EDVAC (Electronic Discrete Variable Automatic Computer). Il
primo, un calcolatore elettronico a valvole del peso di 30 tonnellate poteva arrivare ad effettuare
5000 operazioni algebriche al secondo. La programmazione di calcolo era effettuata manualmente
attraverso l’apertura/chiusura di interruttori e inserimento di cavetti. Il calcolatore occupava una
superficie di 180m
e pesava 30 tonnellate.
Un sistema di questo tipo, per quanto evoluto per il tempo, celava margini di miglioramento. Per
questo viene sviluppato EDVAC ancor prima del completamento di ENIAC. Si trattava di un
calcolatore elettronico programmabile (dunque non cablato) basato su elaborazione binaria
anziché decimale e per la presenza di una singola unità di memoria per immagazzinare istruzioni e
dati (memoria di scrittura e lettura). Un sistema di questo tipo si avvicina al concetto moderno di
elaboratore.
La struttura di un elaboratore: Von Neumann
Un contributo fondamentale nello sviluppo di macchine digitali e programmabili fu dato da un
grande matematico (e informatico) ungherese naturalizzato statunitense, John von Neumann. Nel
1944 von Neumann contribuì allo sviluppo di ENIAC e soprattutto EDVAC teorizzando
l’architettura di un calcolatore, ossia le componenti principali che gli elaboratori dovessero
prevedere.
L’architettura di Von Neumann, valida ancora oggi prevede la presenza di alcune caratteristiche
come:
Il bus , vale a dire un canale di comunicazione ‘fisico’ che gestisce il passaggio, lo scambio e la
condivisione delle informazioni elaborate.
Una struttura composta da questi elementi rappresenta la base di qualsiasi elaboratore moderno, o
computer nell’accezione più commerciale del termine. La CPU è il ‘cuore’ dell’intera macchina e
deve essere progettata in modo da poter effettuare tutte le operazioni legate a dati e informazioni
(scrittura, lettura, calcolo). Per farla funzionare, occorre programmare le istruzioni (in binario, da
allocare nella memoria centrale) che la CPU eseguirà.
Le istruzioni specifiche per la CPU sono definite linguaggio macchina.
Strutturalmente (e commercialmente) linguaggi formali hanno determinate caratteristiche ma
possono essere realizzati con alfabeti o sintassi diversi (al pari della differenza tra lingue naturali
diverse). Per questo motivo, occorre che due dispositivi ‘parlino lo stesso linguaggio’ in termini di
linguaggio macchina per poter parlare di prima compatibilità tra sistemi.
Bisogna sempre tenere in mente la distinzione tra processi astratti come il calcolo e processi
prettamente fisici come il trasferimento o la memorizzazione dell’informazione. Questa diversità di
stato porta al cosiddetto Von Neumann bottleneck, o collo di bottiglia di Von Neumann. Tale
condizione si verifica nel momento in cui la velocità e capacità di calcolo delle CPU supera la
possibilità ‘fisica’ di trasferimento della mole di dati attraverso il bus (principio di conduzione). Per
questo motivo l’informazione si ‘intasa’ e la mole generata rimane in attesa di essere letta, scritta o
allocata in una memoria ‘fisica’.
Tecnologie per l’elaborazione
Altra evoluzione sostanziale nel miglioramento delle capacità di performance degli elaboratori è
rappresentata dall’invenzione dei transistor (semiconduttori) che rimpiazzarono le valvole
termoioniche con notevoli benefici in termini di velocità e affidabilità (si pensi al calore generato
dalle valvole vs la velocità di passaggio di stato 0-1 dei transistor).
Ma è con lo sviluppo dei circuiti integrati, anche noti come microchip , che l’informatica assume
la svolta contemporanea di fatto presente ancora oggi. Questi circuiti elettronici basati su transistor
in cui il dato passa attraverso il silicio sono in grado di ridurre in maniera considerevole gli spazi di
immagazzinamento delle informazioni (celle entro cui scrivere e richiamare l’informazione) con
maggiore affidabilità e velocità.
Un paradigma evolutivo: la legge di Moore
L’evoluzione delle tecnologie informatiche legate all’elaborazione risente dunque dei progressi in
campo ‘fisico’ in termini di dispositivi in grado di elaborare l’informazione. Nel 1965 un chimico
statunitense, Gordon Moore, teorizzò che data l’evoluzione in senso positivo delle tecnologie di
conduzione e di elaborazione delle informazioni, ogni anno (poi corretto in 18 mesi) il numero di
transistor applicabili su un circuito stampato sarebbe raddoppiato, generando una variabile