Fondamenti di programmazione dei calcolatori elettronici

Carlo Batini, Luigia Carlucci Aiello, Maurizio Lenzerini, Alberto Marchetti Spaccamela, Alfonso Miola

Fondamenti di programmazione dei calcolatori elettronici

Edizione a stampa

37,50

Pagine: 464

ISBN: 9788820438197

Edizione: 12a edizione 2002

Codice editore: 1385.6

Disponibilità: Esaurito

Questo libro affronta lo studio dei concetti fondamentali relativi alla programmazione dei calcolatori elettronici. Il testo presenta un insieme di argomenti riguardanti i linguaggi programmativi, le strutture di dati, le metodologie di programmazione, con una impostazione che integra in modo opportuno fondamenti teorici e metodologie di base.

Il libro è diviso in quattro parti.

Nella prima vengono presentate le nozioni teoriche sui linguaggi di programmazione e le tecniche di implementazione, con particolare riguardo ai linguaggi imperativi.

Nella seconda parte vengono introdotte le problematiche connesse alla rappresentazione dei dati: partendo dalla definizione astratta dei diversi tipi di dato, si illustrano e si confrontano varie tecniche per la loro rappresentazione.

La terza parte è dedicata alle metodologie di progetto e di analisi dei programmi. In particolare, vengono presentati i metodi per la costruzione di programmi e vengono illustrate le tecniche utilizzate per dimostrare la correttezza dei programmi e per valutarne l'efficienza.

Nella quarta parte, vengono presentate le caratteristiche fondamentali di un sistema di calcolo: vengono descritti i diversi componenti dell'architettura di un elaboratore elettronico e i diversi componenti del software di base. Vengono inoltre presentate le caratteristiche principali di alcuni linguaggi di programmazione.

Concepito come testo universitario, il volume contiene gli elementi di base per essere compreso anche da altri lettori, a cui fornisce un agile ed aggiornato compendio su diversi argomenti riguardanti la programmazione.

Carlo Batini, laureato in ingegneria elettronica a Roma, è professore ordinario presso il Dipartimento di informatica e sistemistica dell'Università di Roma "La Sapienza", dove insegna Impianti di elaborazione alla Facoltà di ingegneria e dirige la Scuola a fini speciali di informatica.

Luigia Carlucci Aiello, laureata in matematica a Pisa, diplomata alla Scuola Normale Superiore, è professore ordinario presso il Dipartimento di informatica e sistemistica dell'Università di Roma "La Sapienza" dove insegna Intelligenza artificiale alla Facoltà di ingegneria.

Maurizio Lenzerini, laureato in ingegneria elettronica a Roma, è professore ordinario presso il Dipartimento di informatica e sistemistica dell'Università di Roma "La Sapienza", dove insegna Fondamenti di Informatica nella Facoltà di Ingegneria e Introduzione agli algoritmi e alla programmazione nella Scuola a fini speciali di informatica.

Alberto Marchetti Spaccamela, laureato in ingegneria elettronica a Roma, è professore ordinario presso il Dipartimento di informatica e sistemistica dell'Università di Roma "La Sapienza", dove insegna fondamenti di informatica nella Facoltà di ingegneria.

Alfonso Miola, laureato in matematica a Roma, è professore ordinario presso il Dipartimento di informatica e sistemistica dell'Università di Roma "La Sapienza", dove insegna Fondamenti di Informatica alla Facoltà di ingegneria e Linguaggi e metodi di programmazione nella Scuola a fini speciali di informatica.

Introduzione: algoritmi e programmi
* Elaborazione automatica dell'informazione
* Algoritmi e programmi
* Una notazione grafica per esprimere algoritmi
* Un linguaggio di programmazione
* Il progetto di programmi
* Struttura di un elaboratore
LINGUAGGI DI PROGRAMMAZIONE
Linguaggi di programmazione: sintassi semantica
* Sintassi
* Semantica
Linguaggi di programmazione: dati e controllo
* Tipi di dato e rappresentazioni
* Tipi di dato in Pascal
* Compatibilità ed equivalenza tra tipi di dato
* Controllo
STRUTTURE DI DATI
Strutture di dati
* Tipi astratti di dato
* I vettori e le matrici
* Le liste
* Gli insiemi
* Pile e code
* Gli alberi
* I grafi
* Le tavole
METODOLOGIE DI PROGRAMMAZIONE
Metodologie di progetto di programmi
* Le qualità di un programma
* Principi di progetto
* Metodologie di progetto
* Criteri di modularizzazione
* La programmazione strutturata
* La documentazione
* Una metodologia di progetto
* Analisi dei requisiti
* Raffinamento iterativo dell'algoritmo
* Analisi dell'algoritmo
* Ristrutturazione
Analisi di programmi: la correttezza
* Correttezza ed errori di un programma
* Prove formali di correttezza
* Test di un programma
* Il test dei moduli
* La correzione degli errori
Analisi di programmi: la complessità
* Efficienza dei programmi
* La complessità di un programma e di un problema
* Le notazioni 0 e W
* Valutazione della complessità di un programma
* Istruzione dominante
* Delimitazioni alla complessità di un problema
* La gestione di una tavola
* Gestione sequenziale
* Alberi binari di ricerca
* Tavole Hash
* Il problema dell'ordinamento
Elementi di calcolabilità
* Funzioni calcolabili e modelli di calcolo
* Un modello di calcolo basato sul Pascal
* Funzioni non calcolabili
* Cenni storici
SISTEMA DI ELABORAZIONE
Sistema di elaborazione: architettura
* La struttura dell'elaboratore
* Il sistema di elaborazione
* Rappresentazione dell'informazione
Sistema di elaborazione: software di base
* Traduzione ed esecuzione di programmi
* Compilatori ed interpreti
* Correlazione e caricamento
* Sistema operativo
* Ambiente di programmazione
* L'editore di testi
* Il debugger
Linguaggi di programmazione
* I linguaggi imperativi
* I linguaggi funzionali
* I linguaggi dichiarativi basati sulla logica
Appendice
* Insiemi, relazioni e funzioni
* Elementi di algebra
* Grafi e alberi
* Induzione matematica
* Logica matematica

Collana: Scienze e tecnologie informatiche

Livello: Textbook, strumenti didattici