|
|
| << | < | > | >> |Indicep. IX Prefazione Capitolo I GLI ALGORITMI 3 1.1. Generalità sulla struttura degli algoritmi 3 1.1.1. Preliminari 3 1.1.2. Definizione e requisiti di un algoritmo 4 1.1.3. Valori, costanti, variabili ed espressioni 6 1.1.4. Tipi di istruzioni 7 1.1.5. Diagramma dinamico 8 1.1.6. Ciclo (loop) 12 1.1.7. Algoritmi finiti ed infiniti 16 1.1.8. Procedure 20 1.2. Esempi di algoritmi 26 1.3. Esempi di procedure 32 1.4. Algoritmi sulla matematica elementare 47 1.5. Algoritmi sull'ordinamento 56 1.6. Algoritmi di approssimazione 57 1.7. Metodi per la costruzione di algoritmi 66 1.8. Letture consigliate Capitolo II L'ARITMETICA DEL CALCOLATORE 69 2.1. La rappresentazione delle informazioni 70 2.2. Dal sistema numerico decimale ad un sistema numerico in altra base 72 2.3. Conversione dal sistema numerico decimale al sistema nlmerico in base b 73 2.3.1. Rappresentazione in base b di un numero intero 76 2.3.2. Rappresentazione in base b di un numero reale positivo minore di uno 78 2.3.3. Rappresentazione in base b di un qualsivoglia numero reale 78 2.4. Le operazioni aritmetiche in base b 83 2.5. Conversione da un sistema numerico in base b1 ad uno in base b2 87 2.6. Numeri finiti ed aritmetica relativa 88 2.6.1. Rappresentazione dei numeri finiti a punto fisso 89 2.6.2. Aritmetica con numeri finiti rappresentati a punto fisso 93 2.6.3. Rappresentazione dei numeri finiti a punto mobile 95 2.6.4. Aritmetica con numeri finiti rappresentati a punto mobile 100 2.7. Errori 100 2.8. Codici per la rappresentazione di dati non numerici 103 2.9. Letture consigliate Capitolo III L'HARDWARE 105 3.1. Preliminari 108 3.2. L'ingresso/uscita 108 2.1. Elementi fondamentali di un sistema di ingresso/uscita 110 3.2.2. Le schede perforate 111 3.2.3. Perforatrici di schede 111 3.2.4. Il lettore di schede 113 3.2.5. Il perforatore di schede 114 3.2.6. Il nastro perforato; il lettore/perforatore di nastro 115 3.2.7. Il tabulato; stampanti lente e stampanti veloci 116 3.2.8. I registratori X, Y 117 3.2.9. Terminali; calcolatori; terminali video 118 3.2.10.Nastro magnetico; unità a nastro magnetico 120 3.2.11.Disco magnetico; unità a disco magnetico 123 3.3. La memoria 123 3.3.1. Funzione della memoria in un calcolatore 123 3.3.2. Richiami di elettromagnetismo 124 3.3.3. Realizzazione di memorie mediante nuclei ferromagnetici 126 3.3.4. La tecnica di realizzazione della memoria 128 3.3.5. Tecnica di lettura e scrittura sui nuclei 130 3.3.6. Organizzazione della memoria 133 3.4. Il Controllo e L'Unità Aritmetico-logica 133 3.4.1. L'Unità Centrale come automa 135 3.4.2. Le istruzioni 136 3.4.3. I registri 139 3.4.4. L'Unità Aritmetico-logica 142 3.4.5. Il canale; le interruzioni (interrupts) 146 3.5. L'algebra di Boole 146 3.5.1. Variabili ed operatori booleani 148 3.5.2. Postulati e proprietà dell'algebra booleana 149 3.5.3. Funzioni booleane 150 3.5.4. Forma canonica delle funzioni booleane 151 3.5.5. Sintesi delle funzioni booleane 153 3.5.6. Sommatore binario ad 1 bit e decodificatore di parole binarie 157 3.6. Letture consigliate Capitolo IV LINGUAGGIO ASSEMBLER ED ASSEMBLATORI 159 4.1 Linguaggio base 172 4.2. I linguaggi assembler 177 4.3. La traduzione di un linguaggio assembler 177 4.3.1. Funzioni generali dell'assemblatore 181 4.3.2. Rilocabilità dei programmi 184 4.3.4. Le pseudo-istruzioni 188 4.3.5. Tecniche di assemblaggio 189 4.4. Le macro-istruzioni 190 4.5. Ingresso ed uscita di dati nel linguaggio assembler 193 4.6. Letture consigliate Capitolo V INTRODUZIONE ALLA TEORIA DEI LINGUAGGI. UN ESEMPIO DI LINGUAGGIO EVOLUTO 197 5.1. Considerazioni generali sui linguaggi di programmazione 199 5.2. Un esempio 201 5.3. Considerazioni sul concetto di linguaggio 203 5.4. Alcuni richiami 204 5.5. Notazioni e terminologia 208 5.6. La grammatica generativa 208 5.6.1. Introduzione 211 5.6.2. Forma di Chomsky 214 5.6.3. Classificazione di Chomsky 216 5.6.4. Alcuni esempi 220 5.6.5. Alcune proprietà dei linguaggi 221 5.6.6. Un modello per la definizione formale dei linquaggi evoluti di programmazione: i linguaggi non contestuali 228 5.6.7. Forma di Backus-Naur o Forma Normale di Backus (BNF) 230 5.7. Premessa ai linguaggi evoluti di programmazione 232 5.8. Concetti generali 235 5.9. Definizione del linguaggio Fortran 235 5.9.1. Definizioni base 236 5.9.2. Le costanti 237 5.9.3. Gli identificatori 238 5.9.4. Le variabili 239 5.9.5. Le funzioni 240 5.9.6. Le espressioni 243 5.9.7. Le proposizioni del Fortran (o statement o istruzioni) 254 5.9.8. Le dichiarazioni 257 5.9.9. Programmi e sottoprogrammi 258 5.10. Letture consigliate Capitolo VI I COMPILATORI 261 6.1. Preliminari 264 6.2. Schema generale di un compilatore 267 6.3. L'analizzatore lessicale 267 6.3.1. I simboli atomici 269 6.3.2. Sulla rappresentazione delle classi dei caratteri 271 6.3.3. Le tabelle dei simboli 275 6.3.4. Uno schema generale di analizzatore lessicale 260 6.4. Analisi sintattica discendente ed ascendente 280 6.4.1. Preliminari 280 6.4.2. Analisi sintattica discendente 281 6.4.3. Anaìisi sintattica ascendente 263 6.4.4. Un esempio 289 6.5. Lo stack 291 6.6. Rappresentazione in memoria di strutture di dati 291 6.6.I. Strutture di dati in memoria 293 6.6.2. Rappresentazione di stringhe 293 6.6.3. Rappresentazione di alberi 295 6.6.4. Rappresentazione di tavole 303 6.6.S. Rappresentazione di uno stack e sua gestione 304 6.6.6. Rappresentazione di matrici 307 6.7. Grammatiche di operatori a precedenza 307 6.7.I. Grammatiche di operatori 308 6.7.2. Grammatiche a precedenza 309 6.7.3. Un esempio 311 6.7.4. Frasi prime o principali 312 6.7.5. L'algoritmo di Floyd 315 6.7.6. Generazione del codice durante il processo di analisi sintattica 319 6.8. Analisi semantica 319 6.8.1. Rappresentazione del programma sorgente; la notazione polacca 321 6.8.2. Rappresentazione a quadruple e triple 324 6.8.3. Cenni ai problemi di ottimizzazione 329 6.9. Letture consigliate | << | < | |