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.