Dr. Carlo Pescio
Recensione: Algoritmi + Strutture Dati = Programmi


Scheda Libro
Autore: Niklaus Wirth Titolo: Algoritmi + Strutture Dati = Programmi
Editore: Tecniche Nuove ISBN: 88-7801-259-6
Lingua: Italiano Anno: 1987 Pagine: 360 Allegati: nessuno

Commenti
Un ottimo testo basato su un giusto equilibrio fra rigore formale e scorrevolezza, tra approccio sistematico ed applicabilità dei contenuti. Wirth non solo discute gli algoritmi fondamentali, ma introduce il lettore ai problemi della complessità computazionale (pur senza eccedere in formalismo) e all’importanza delle strutture dati nella progettazione degli algoritmi. Con il suo stile incisivo, privo di inutili fronzoli e che non cade mai nella vacuità di certi testi accademici, l’autore assume solo una conoscenza piuttosto elementare dei fondamenti matematici e della programmazione; il risultato è un libro eccellente non solo per gli appassionati, ma anche per gli studenti delle superiori o dei primi anni di università (cui la collana del libro è dedicata).

Pro
L’autore è uno degli uomini che hanno plasmato l’informatica moderna: non a caso è stato insignito del Premio Turing. Si tratta di un libro molto leggibile, che descrive con grande proprietà alcune delle strutture dati e degli algoritmi più importanti: alberi, BTree, hash tables, algoritmi ricorsivi, ordinamenti in memoria e su disco.
L’ultimo capitolo, dove viene descritta la struttura di un compilatore, è una delle migliori introduzioni all’argomento che abbia mai letto, e mette in grado ogni lettore con un minimo di background ed un pò di buona volontà di scrivere un mini-compilatore per un semplice linguaggio.
La traduzione è ottima, estesa anche a livello dei commenti nei listati (e dei nomi di tipo e variabile). Il prezzo è assolutamente conveniente, e ne fa un testo indispensabile anche per gli studenti, da sempre squattrinati per definizione.

Contro
Un numero non trascurabile di pagine è dedicato all’introduzione dei tipi di dato del Pascal ed ai diagrammi sintattici del linguaggio, argomenti non necessariamente di interesse per il lettore. Peraltro, in molti casi una descrizione in pseudocodice sarebbe più interessante del listato in Pascal; il codice proposto è scritto nello stile classico di Wirth, ovvero con grande enfasi sui nomi dei tipi ma con nomi di variabili incomprensibili; ad esempio, la descrizione degli alberi ottimi di ricerca usa come variabili u, u1, u2, u3, u4.
Molti argomenti interessanti non vengono considerati: insiemi, grafi, greedy algorithms, gestione della memoria, eccetera. Purtroppo la bibliografia presentata, veramente ridotta all’osso, non aiuta il lettore a trovare eventuali approfondimenti degli argomenti trattati, o riferimenti a quelli esclusi dal testo.