La storia di GREP

Gli anni ’70 sono iniziati da poco, è il 1971. I due principali produttori di computer sono IBM e DEC. La seconda si chiama in realtà Digital, o Digital Equipment Corporation per esteso, ma tutti la chiamano DEC perché le sigle a tre lettere vanno di moda assieme ai pantaloni a zampa di elefante. I computer DEC sono diffusi soprattutto nelle università, perché i lavoratori apprezzano la maggiore apertura dell’azienda a modifiche dell’hardware e del software. Nelle università i computer sono una tecnologia in piena evoluzione, e in ogni ateneo c’è almeno un gruppo di appassionati pronto a sperimentare, anche in modo non convenzionale, per capire fin dove si possano spingere le applicazioni di un calcolatore digitale.
Persino i ricercatori di materie umanistiche pensano a come usare i computer per fare nuovi studi.
I computer che DEC fornisce alle università sono solitamente della serie PDP: nel 1971, diversi atenei hanno il PDP-11. Questi computer sono grandi armadi con tastiere simili a quelle delle macchine per scrivere, e hanno come dispositivo di output una telescrivente. Oggi è difficile immaginarlo, ma all’epoca era raro che un computer fosse collegato a un monitor e presentasse una schermata con il testo. Il testo veniva stampato su un nastro di carta, come fosse un telegrafo.
Molti anni prima, ai tempi del PDP-7, due ricercatori dei Bell Laboratories di nome Ken Thompson e Dennis Ritchie avevano sviluppato un sistema chiamato Unix, proprio per la serie PDP. All’epoca del PDP-11, Unix si è diffuso. Soprattutto, lo utilizza il PDP-11 a cui ha accesso Lee McMahon, psicologo laureato ad Harvard. McMahon è interessato all’elaborazione di testi: in particolare, vuole scoprire gli autori di una serie di testi pubblicati anonimamente. La raccolta è chiamata “Federalist papers”, scritta dai fondatori degli Stati Uniti Alexander Hamilton, James Madison e John Jay senza che però nessuno dei singoli testi fosse firmato dall’autore. Grazie alle ricerche si scoprirà che la maggioranza dei testi venne scritta da Hamilton, a cui tra l’altro è dedicato il musical che ha avuto grande successo negli ultimi anni. Un musical sulla nascita di Unix, purtroppo, non ci risulta sia ancora stato prodotto. Ma non si sa mai.
Sul sistema Unix, l’editor di testi si chiama ed. Precursore di vi, era un editor pensato per l’ambiente in cui veniva impiegato: i computer con telescrivente. I comandi dell’editor sono costituiti da una sola lettera. Per esempio il comando p (print) stampa una linea, mentre d (delete) la cancella. I caratteri non venivano davvero cancellati, non si può togliere l’inchiostro dalla carta, ma veniva stampata una linea orizzontale.
Ci sono anche i comandi g (global) e s (substitute), che permettono la ricerca e sostituzione di espressioni regolari. Per cercare le linee che contengono una parola basta scrivere g/parola/. Questi comandi brevi permettevano, nel 1971,di risparmiare tempo e carta. In realtà, ed è ancora presente su tutti i moderni sistemi GNU/Linux. Non è più l’editor di testi predefinito, ma se hai bisogno di lavorare con una telescrivente ora sai qual è il programma migliore.
McMahon ha un problema: i vari testi messi assieme occupano uno spazio di circa 1 MB. E il PDP-11 ha al massimo 64KB di memoria RAM. Quindi non è possibile caricare tutti i testi in ed per poterli leggere e analizzare. Bisogna trovare il modo di filtrarli, caricando in memoria soltanto le righe che contengano una certa espressione regolare. McMahon chiede a Ken Thompson se sia possibile implementare qualcosa del genere e, nel giro di una giornata, Thompson riadatta il codice di ed per creare grep. E lo ha chiamato grep perché di fatto il suo risultato è quello che si potrebbe ottenere con ed usando il comando g/re/p, cioè global/regularexpression/print.

Luca Tringali

Luca Tringali

Giornalista, autore per GNU/Linux Magazine Italia dal 2010, e attuale redattore della rivista. Si occupa di divulgazione scientifica e tecnologica, in particolare nel campo dell'intelligenza artificiale e la sicurezza informatica.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *