Insegnamento di Informatica – a.a. 2015-16
Macerata, 7 ottobre 2015
Fondamenti di informatica
INSEGNAMENTO DI INFORMATICA – A.A. 2015-16
Francesco Ciclosi
Insegnamento di Informatica – a.a. 2015-16
Definizione
 Da un punto di vista logico possiamo definire i
moderni computer come macchine o automi
di calcolo generale
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2015
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2015-16
Alan Mathison Turing
 È un logico matematico inglese
 Nato a Londra nel 1912
 Morto nel 1954 per avvelenamento da cianuro di
potassio
 È uno dei padri fondatori dell’informatica moderna
 Nel 1936 pubblicherà un saggio rivoluzionario sul
funzionamento di una macchina teorica
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2015
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2015-16
Algoritmo: definizione informale
 Un algoritmo è una procedura computazionale
ben definita, che viene eseguita per risolvere un
dato problema computazionale
QUINDI
 È una sequenza di passi computazionali che
partendo da valori ricevuti in input, ne produce
altri in output
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2015
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2015-16
Algoritmo: definizione (più formale)
 Un algoritmo è un procedimento di calcolo
esplicito
 descrivibile con un numero finito di regole
 che conduce al risultato dopo un numero
finito di operazioni (ovvero di applicazioni
delle regole)
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2015
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2015-16
La ricerca di Touring
 Touring voleva:
1. Formalizzare la nozione di algoritmo
2. Individuare i limiti nell’applicazione dei metodi
algoritmici per la soluzione di problemi logici
matematici
 Turing progetta una macchina teorica in grado
di simulare il comportamento di un uomo
intento a eseguire un calcolo aritmetico
(macchina di Touring)
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2015
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2015-16
La Macchina di Touring
 È costituita da:
1. Un nastro di lunghezza potenzialmente
infinita, suddiviso in sezioni o celle
2. Un’unità di lettura e scrittura
3. Una memoria interna, che può assumere un
insieme finito di stati
4. Un insieme di simboli distinti (alfabeto della
macchina)
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2015
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2015-16
MdT – La macchina di Touring
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2015
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2015-16
Cosa può fare la macchina di Touring
1. Far scorrere il nastro avanti e indietro
2. Leggere, scrivere o cancellare i simboli (uno
alla volta) nelle celle del nastro
 La macchina funziona eseguendo una
successione di passi discreti, determinato da
un insieme finito di regole
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2015
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2015-16
Le regole della MdT
 Una regola indica alla MdT come comportarsi
in corrispondenza di condizioni in ingresso
IN SINTESI
Simbolo letto
Stato interno
della macchina
Regole
MdT
Simbolo da scrivere
Stato da assumere
Verso di spostamento del
nastro nel passo successivo
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2015
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2015-16
MdT e programmazione
 Con le regole opportune una MdT può eseguire
calcoli di qualsiasi natura e complessità
 Si può costruire una MdT universale in grado di
imitare qualsiasi MdT
• Codificando regole di trasmissione e dati di una
MdT con l’alfabeto della MdT universale 
programma
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2015
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2015-16
Calcolabilità
 Una MdT può risolvere qualsiasi problema
purché questo:
1. Possa essere risolto in modo algoritmico
2. Sia espresso in forma simbolica
 Differenti approcci al problema della
calcolabilità forniscono tutti dei risultati
equivalenti a quelli ottenibili tramite una MdT
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2015
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2015-16
Tesi di Churc-Turing
 L’insieme dei problemi effettivamente risolvibili
con qualsivoglia metodo meccanico coincide con
quello dei problemi risolvibili dalla Macchina di
Turing
 Un problema non T-Calcolabile non è Calcolabile
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2015
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2015-16
La macchina a registri
a programma memorizzato
 Viene elaborata nel 1945 dal matematico John
Von Neumann
 Non è un modello concettuale come quello di
Touring
 È usata nella progettazione dell’EDVAC, il
primo computer digitale della storia
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2015
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2015-16
Componenti della macchina a registri
 Un’unità di elaborazione centrale (CPU)
 Una memoria divisa in celle dotate di indirizzi
(registri)
 Un nastro, diviso in celle, di ingresso (input)
 Un nastro, diviso in celle, di uscita (output)
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2015
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2015-16
L’architettura di Von Neumann
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2015
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2015-16
Composizione della CPU
 Un’unità logico-aritmetica (ALU)
• che si occupa dell’esecuzione delle istruzioni primitive
 Un accumulatore (un registro)
• per memorizzare i dati durante le operazioni di calcolo
 Un’unità di controllo
• che governa l’esecuzione sequenziale delle operazioni e
coordina le componenti della macchina
 Un contatore delle istruzioni
• che segnala la successiva istruzione da eseguire
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2015
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2015-16
L’architettura base di un computer
 La struttura della macchina di Von Neumann
corrisponde alla struttura fisica di un computer
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2015
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2015-16
Macchina di V.N. e operazioni logiche
 Dati e istruzioni primitive sono codificati con i
simboli della notazione binaria (linguaggio macchina)
 Le operazioni binarie sui numeri equivalgono alle
operazioni logiche del calcolo proposizionale (algebra
di Boole)
 Le operazioni possono essere semplicemente
implementate a livello fisico attraverso i
transistor (circuiti elettrici bistabili)
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2015
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2015-16
Algebra di Boole
 Opera essenzialmente con i soli valori di verità 0 e 1
 Permette di definire vari operatori logici
•
•
•
•
AND (prodotto logico)
OR (somma logica)
NOT (negazione o complementazione)
XOR, NAND, NOR, XNOR (operatori derivati)
 la cui combinazione permette di sviluppare qualsiasi
funzione booleana
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2015
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2015-16
NOT
 L'operatore NOT restituisce il valore
inverso a quello in entrata
 Una concatenazione di NOT è
semplificabile con
• un solo NOT in caso di ripetizioni
dispari
• nessun NOT in caso di ripetizioni pari
A
NOT A
0
1
1
0
 La porta logica NOT possiede una
sola variabile binaria
 Spesso è inglobato in operatori brevi
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2015
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2015-16
AND ⋀
 Gode della proprietà
associativa
 La porta logica AND è un
meccanismo comune per
avere un segnale di vero se
un certo numero di altri
segnali sono tutti veri
 Nella teoria degli insiemi
corrisponde all'intersezione
A
B
A AND B
0
0
0
0
1
0
1
0
0
1
1
1
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2015
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2015-16
OR ⋁
 Gode della proprietà
associativa
 La porta logica OR è un
meccanismo comune per
avere
A
B
A OR B
0
0
0
0
1
1
1
0
1
1
1
1
• un segnale alto se almeno un
segnale è alto
• un segnale basso se e solo se
tutti i segnali sono bassi
 Nella teoria degli insiemi corrisponde all’unione
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2015
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2015-16
XOR ⊕
 L’operatore è detto
A
anche EX-OR oppure
0
OR esclusivo
0
 Restituisce 1 se e solo se
1
il numero degli operandi
1
uguali a 1 è dispari,
mentre restituisce 0 in
tutti gli altri casi
 Nella teoria degli insiemi
corrisponde alla differenza simmetrica
B
A XOR B
0
0
1
1
0
1
1
0
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2015
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2015-16
Altri operatori (1/2)
NAND
NOR
A
B
A NAND B
0
0
1
0
1
1
1
0
1
1
1
0
A
B
A NOR B
0
0
1
0
1
0
1
0
0
1
1
0
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2015
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2015-16
Altri operatori (2/2)
XNOR
Buffer
A
B
A XNOR B
0
0
1
0
1
0
1
0
0
1
1
1
A
Buffer A
0
0
1
1
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2015
CC-BY-SA 4.0 – Common Deed – Legal Code
Insegnamento di Informatica – a.a. 2015-16
I miei contatti
linkedin
http://it.linkedin.com/pub/francesco-ciclosi/62/680/a06/
facebook
https://www.facebook.com/francesco.ciclosi
twitter
@francyciclosi
www
http://www.francescociclosi.it
Unimc - Dipartimento di Economia e Diritto - Corso di Laurea in Economia: banche, aziende e mercati
© Francesco Ciclosi – Settembre 2015
CC-BY-SA 4.0 – Common Deed – Legal Code