Brian Kernighan occupa un posto particolare nella storia dei linguaggi. Non ha creato Unix né C: questi contributi appartengono soprattutto a Ken Thompson e Dennis Ritchie. La sua influenza nasce dall’aver costruito strumenti attorno a Unix, co-progettato linguaggi specializzati e reso comprensibili e trasmissibili le idee dei Bell Labs.
Il suo nome è legato a AWK, creato con Alfred Aho e Peter Weinberger, e a The C Programming Language, scritto con Ritchie. Ratfor, eqn, pic, AMPL e decenni di insegnamento mostrano la stessa idea: un buon strumento fa poche cose con chiarezza e si combina con altri.
Da Toronto ai Bell Labs
Brian Wilson Kernighan nasce nel 1942 a Toronto. Studia fisica ingegneristica all’Università di Toronto e consegue nel 1969 un dottorato in ingegneria elettrica a Princeton sul partizionamento dei grafi. Nello stesso anno entra ai Bell Laboratories.
Unix sta nascendo attorno a Ken Thompson e Dennis Ritchie. Kernighan partecipa all’ambiente, prova strumenti, scrive programmi e documentazione e aiuta a trasformare un prototipo locale in un ambiente utilizzabile. Gli viene generalmente attribuito anche il nome “Unix”, gioco di parole con Multics.
Unix come officina di piccoli strumenti
La forza di Unix non risiede soltanto nel kernel, ma anche in programmi piccoli che leggono e scrivono flussi semplici e vengono collegati da pipeline. Con Lorinda Cherry, Kernighan sviluppa eqn per le formule matematiche e lavora a pic per i diagrammi e agli strumenti legati a troff.
Questi programmi mostrano che una notazione specializzata può essere più espressiva di uno strumento generale. I file di testo restano leggibili, versionabili e combinabili con altri comandi, anticipando pratiche moderne di documentazione come codice.
Ratfor: migliorare l’espressione senza sostituire l’infrastruttura
Le vecchie versioni di FORTRAN erano molto diffuse ma poco strutturate. Kernighan crea Ratfor, Rational Fortran, che offre blocchi, cicli e condizioni più moderni e traduce poi il programma in Fortran accettato dai compilatori esistenti.
È una strategia pragmatica: aggiungere uno strato leggero invece di sostituire l’intera infrastruttura. Software Tools, scritto con P. J. Plauger, diffonde ulteriormente questo metodo.
Nel 1977 Alfred Aho, Peter Weinberger e Brian Kernighan progettano AWK, nome formato dalle loro iniziali. Il modello fondamentale è compatto:
condition { action }
AWK legge record, divide automaticamente le righe in campi, verifica pattern ed esegue azioni. Per sommare la seconda colonna bastano poche istruzioni:
{ total += $2 }
END { print total }
La brevità deriva dal fatto che il linguaggio gestisce il quadro ripetitivo. AWK si colloca tra un filtro e un linguaggio generale e permette estrazioni, aggregazioni, conversioni e report senza compilare un programma C completo.
K&R: il libro che ha reso C accessibile
Dennis Ritchie crea C all’inizio degli anni Settanta. Per diffonderlo oltre i Bell Labs, Kernighan scrive con lui The C Programming Language, pubblicato nel 1978 e noto come K&R.
Il libro unisce la conoscenza del creatore alla capacità didattica di Kernighan. La prima edizione diventa il riferimento di fatto del C pre-standard; la seconda del 1988 accompagna ANSI C. Kernighan non ha quindi inventato C: ha contribuito in modo decisivo a formularlo per chi non lavorava accanto a Ritchie.
Spiegare la filosofia Unix con la pratica
Con Rob Pike, Kernighan pubblica nel 1984 The Unix Programming Environment. Il libro insegna a pensare con shell, filtri, file di testo e programmi componibili, mostrando come scomporre progressivamente un compito.
Le pipeline testuali hanno limiti: possono perdere struttura e diventare difficili da mantenere. La lezione duratura non è che tutto debba essere testo, ma che interfacce semplici e composizione esplicita riducono il costo dell’integrazione.
Piccoli linguaggi per problemi precisi
Con Robert Fourer e David Gay, Kernighan sviluppa AMPL per la modellazione matematica. L’utente descrive variabili, vincoli e obiettivo, mentre il solver si occupa dell’algoritmo numerico.
Come eqn e AWK, AMPL avvicina il codice al problema. L’idea dei piccoli linguaggi specializzati sopravvive oggi nei linguaggi di query, nei file di configurazione, nei sistemi di build e nelle notazioni di visualizzazione.
Pratica della programmazione e insegnamento
The Elements of Programming Style, con P. J. Plauger, e The Practice of Programming, con Rob Pike, trattano leggibilità, progettazione, debug, test, prestazioni, portabilità e interfacce. Lo stile non è decorativo: il codice leggibile rende visibili le ipotesi e le interfacce ridotte limitano le dipendenze.
Nel 2000, dopo trent’anni ai Bell Labs, Kernighan entra a Princeton, dove insegna informatica e anche le conseguenze sociali dei sistemi digitali.
Perché Brian Kernighan conta ancora
La sua eredità unisce strumenti, linguaggi e spiegazione. Kernighan mostra che un piccolo strumento può avere un grande impatto se possiede un’interfaccia chiara e che un’idea tecnica raggiunge davvero altri programmatori solo quando viene documentata e insegnata bene.
Cronologia
- 1942: nascita a Toronto.
- 1969: dottorato a Princeton e ingresso ai Bell Labs.
- Anni 1970: strumenti Unix, Ratfor,
eqn e pic.
- 1977: creazione di AWK con Aho e Weinberger.
- 1978: prima edizione di The C Programming Language con Ritchie.
- 1984: The Unix Programming Environment con Rob Pike.
- 1988: seconda edizione K&R per ANSI C.
- 2000: ingresso a Princeton.
Domande frequenti
Brian Kernighan ha inventato C?
No. Dennis Ritchie è il principale creatore di C. Kernighan ha contribuito in modo decisivo a documentarlo, insegnarlo e diffonderlo.
Chi ha creato AWK?
Alfred Aho, Peter Weinberger e Brian Kernighan lo hanno progettato insieme; il nome deriva dalle iniziali dei loro cognomi.
Perché K&R è così importante?
Ha fornito a C una descrizione precisa, basata su esempi e ampiamente disponibile prima della standardizzazione ufficiale, diffondendo anche uno stile di programmazione chiaro.
Qual è l’idea centrale degli strumenti di Kernighan?
Scomporre problemi complessi in parti comprensibili, usare interfacce semplici e combinare strumenti specializzati.
AWK è ancora usato?
Sì. Rimane molto utile sui sistemi Unix per elaborazione rapida del testo, report, estrazione di dati e automazione.