Archive for the 'Books' Category

The Engines of Logic

Sunday, June 8th, 2008

It is interesting to contrast von Neumann’s views of computer programming as an activity with Turing’s. Von Neumann called it “coding” and made it clear that he thought of it as a clerical task requiring little intellect. A revealing anecdote tells of a practice at the Institute for Advanced Study computer facility of using students to translate by hand computer instructions written using human-readable mnemonics into machine language. A young hot-shot programmer proposed to write an assembler that would do this conversion automatically. Von Neumann is said to have responded angrily that it would be wasteful to use a valuable scientific tool to do a mere clerical job. In his ACE report, Turing said that the process of computer programming “should be very fascinating. There need be no real danger of it ever becoming a drudge, for any processes that are quite mechanical can be be turned over to the machine itself.”
The Engines of Logic, p. 192

Ho appena finito di leggere The Engines of Logic di Martin Davis, un saggio sulle vite e il lavoro dei logici che possono essere considerati i papà dell’elaboratore elettronico. E sono, secondo Davis:

  • Leibniz, perché è stato il primo a concepire l’idea di meccanizzare il ragionamento
  • Boole, perché ha inventato quella che oggi chiamiamo logica proposizionale o Booleana
  • Frege, perché ha esteso la logica proposizionale con la quantificazione (per ogni… esiste…)
  • Cantor, perché ha inventato il metodo di dimostrazione “diagonale”, che è stato poi messo a frutto da Goedel e da Turing
  • Hilbert, perché ha dato nuova linfa al progetto di Leibniz di ottenere un metodo per ottenere la risposta a qualsiasi domanda tramite il calcolo
  • Goedel, perché ha dimostrato che il progetto di Hilbert è irrealizzabile
  • Turing, perché ha definito con precisione il concetto di “problema computabile” (favolosi quegli anni… più o meno nello stesso periodo Hamming definiva con precisione il concetto di “informazione”. Bello che si possa dare una definizione precisa a concetti apparentemente sfuggenti.) Non solo: Turing ha anche concepito l’idea dell’algoritmo universale, ovvero di una singola macchina che è in grado di risolvere qualsiasi problema computabile. Da quest’idea nasce l’elaboratore di uso generale che conosciamo oggi: con il mio computer posso risolvere problemi di analisi matematica, archiviare indirizzi, editare immagini… non c’è limite.
  • Von Neumann, perché ha progettato l’architettura generale degli elaboratori che usiamo ancora oggi, e continueremo ad usare per un bel pezzo, visto che non ci sono all’orizzonte alternative plausibili.

L’argomento fondamentale del libro è che sì, gli ingegneri che hanno progettato l’hardware hanno la loro parte di merito, ma è l’idea logica a monte che è più importante e ha portato più lontano. Per fare un paio di esempi dal libro: Eckert e Mauchly, gli ingegneri che hanno costruito ENIAC, sono stati geniali per come sono riusciti a rendere affidabile una macchina costruita con 15000 tubi elettronici, componenti notoriamente inaffidabili. Però era basata sulla notazione decimale: pensate che spreco! La notazione binaria è molto più economica. Non solo, ENIAC comprendeva meccanismi specializzati per calcolare funzioni trascendenti, analogamente a quanto avveniva nei differenziatori analogici che erano le macchine di calcolo più avanzate dell’epoca. Ma in un calcolatore digitale non c’è bisogno di questi aggeggi, perché le funzioni trascendenti si approssimano con serie che possono essere calcolate con le ordinarie operazioni aritmetiche. I logici, invece, la sapevano più lunga. Già Leibniz era un sostenitore della notazione binaria. E Turing, nel suo ACE report, sosteneva l’idea che il calcolatore doveva implementare direttamente solo le operazioni più elementari, perché quelle più complesse (come quelle aritmetiche) potevano essere ottenute mediante quella che oggi si chiamerebbe “microprogrammazione”.

Ben scritto, avvincente e conciso.

Ci sono altri libri più approfonditi su questi argomenti; i seguenti sono sempre di divulgazione, tutti e tre veramente belli.

  • Turing: the Enigma, di Andrew Hodges. Grandissima biografia.
  • Goedel, Escher, Bach: an Eternal Golden Braid, di Douglas Hofstaedter. Labirintico e illuminante viaggio nella logica e nell’intelligenza artificiale.
  • Mechanizing Proof, di Donald MacKenzie. Grande compendio sugli sforzi di dimostrare automaticamente la correttezza dei programmi.

Letto “Rainbow’s End”. Buon libro.

Sunday, May 4th, 2008

Vernor Vinge è uno dei miei autori preferiti. Il suo romanzo che preferisco è A Deepness in the Sky, che è fantascienza molto classica, scientifica, a base di astronavi del lontano futuro e alieni.

Questo Rainbow’s End è molto più vicino a noi; parla di un futuro prossimo. Ci sono echi di Neuromante per come la Rete è pervasiva nella vita dei personaggi. Ma mentre Gibson immaginava un “ciberspazio” separato dalla realtà reale, tanto che chi ci navigava stava praticamente inebetito di fronte al proprio “deck”, in questo romanzo la Rete compenetra la realtà; i personaggi percepiscono una “realtà aumentata” piuttosto che una realtà virtuale.

Ci sento anche un eco di La Luna è una severa maestra, per via di uno dei personaggi che probabilmente non è un essere umano; ma qui non voglio entrare per non rivelare troppo della trama.

Vinge è un positivista; è uno dei pochi scrittori o sceneggiatori contemporanei che non descrive un futuro triste e oscuro, anche se nel mondo di Rainbow’s End problemi ce ne sono: il più grave è il pericolo del terrorismo su vasta scala, che è un rischio tanto più concreto in un mondo in cui uno può fare ingegneria genetica a casa sua. Nei libri di Vinge non ci sono aspetti orrorifici né soprannaturali; l’unica “magia” è nella capacità delle persone di scegliere fra il male e il bene.

Insomma, un buon cyberpunk moderno.