

VIII
Indice
www.
edises
.it
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