

Capitolo 2
- Programmazione e linguaggi
2.1 Il computer e i numeri...................................................................................... 75
2.2 Rappresentazione binaria dei numeri............................................................. 76
2.2.1 Numeri interi......................................................................................... 76
2.3 Rappresentazione dei numeri reali.................................................................. 79
2.3.1 Rappresentazione in virgola fissa.......................................................... 79
2.3.2 Rappresentazione in virgola mobile..................................................... 80
2.3.3 La rappresentazione dell’informazione............................................... 83
2.4 Dati, informazioni e codici............................................................................... 84
2.4.1 I codici numerici.................................................................................... 86
2.4.2 I codici alfanumerici.............................................................................. 90
2.4.3 I codici a controllo di errore................................................................. 93
2.5 Il linguaggio: linguaggi naturali e linguaggi formali...................................... 98
2.5.1 I linguaggi naturali................................................................................ 98
2.5.2 I linguaggi formali............................................................................... 100
2.5.3 Classificazione dei linguaggi di programmazione............................. 100
2.5.4 Caratteristiche dei linguaggi............................................................... 103
2.5.5 Linguaggi imperativi. .......................................................................... 104
2.5.6 I linguaggi funzionali. ......................................................................... 107
2.5.7 I linguaggi basati sulla logica.............................................................. 110
2.5.8 I linguaggi orientati a oggetti. ............................................................ 114
2.6 Fondamenti di ingegneria del software......................................................... 116
2.6.1 L’ingegneria del software.................................................................... 116
2.6.2 Le qualità del software......................................................................... 118
2.6.3 Principi dell’ingegneria del software.................................................. 124
2.6.4 Lo sviluppo di un sistema complesso inizia dal progetto.................. 128
2.6.5 Modelli di ciclo di vita del software.................................................... 129
2.6.6 I modelli a processo evolutivo............................................................. 133
Capitolo 3
- Architettura degli elaborati
3.1 Sistemi digitali................................................................................................. 137
3.1.1 Introduzione........................................................................................ 137
3.1.2 Storia degli elaboratori da Pascal a von Neumann............................ 139
3.1.3 L’era elettronica: ENIAC, EDVAC. ..................................................... 141
3.1.4 John von Neumann e la prima generazione...................................... 142
3.1.5 Le cinque generazioni......................................................................... 142
3.2 Architettura dell’elaboratore.......................................................................... 144
3.2.1 Circuiti di temporizzazioni (clock). ................................................... 144
3.2.2 Macchina di von Neumann................................................................. 145
3.2.3 Processore............................................................................................ 147
3.2.4 Registri interni..................................................................................... 151
3.2.5 Gestione delle istruzioni...................................................................... 153
3.2.6 Floating Point Unit.............................................................................. 155
3.2.7 Cache.................................................................................................... 155
3.2.8 Pipeline. ............................................................................................... 157
3.2.9 Memory Management Unit................................................................. 158
VI
Indice