Vai al contenuto principale
BiografiaStoria dell’informaticaPrincipiante

Brian Kernighan: AWK, Unix e l'arte di spiegare il codice

Scopri come Brian Kernighan ha contribuito ad AWK, diffuso C e Unix, creato strumenti specializzati e stabilito una pedagogia duratura della programmazione.

Pubblicato 24 agosto 2026Lettura : 5 minDi Yann Bastien
Ritratto di Brian Kernighan in un ambiente che richiama Unix, C e l'elaborazione del testo
Mostra indice
  1. Da Toronto ai Bell Labs
  2. Unix come officina di piccoli strumenti
  3. Ratfor: migliorare l’espressione senza sostituire l’infrastruttura
  4. AWK: trasformare pattern in azioni
  5. K&R: il libro che ha reso C accessibile
  6. Spiegare la filosofia Unix con la pratica
  7. Piccoli linguaggi per problemi precisi
  8. Pratica della programmazione e insegnamento
  9. Perché Brian Kernighan conta ancora
  10. Cronologia
  11. Domande frequenti
  12. Brian Kernighan ha inventato C?
  13. Chi ha creato AWK?
  14. Perché K&R è così importante?
  15. Qual è l’idea centrale degli strumenti di Kernighan?
  16. AWK è ancora usato?

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.

AWK: trasformare pattern in azioni

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.

Questo articolo ti è stato utile?

Raccolta

Linguaggi di programmazione

22 / 26

  1. 01Grace Hopper: dai primi compilatori a COBOL
  2. 02John Backus: FORTRAN, la notazione BNF e il rifiuto del codice macchina
  3. 03Dennis Ritchie: il linguaggio C al cuore di Unix
  4. 04FORTRAN: dimostrare che un compilatore può competere con l'assembly
  5. 05Il linguaggio C: rendere portabili i sistemi senza nascondere la macchina
  6. 06Niklaus Wirth: da Pascal a Oberon, progettare con la semplicità
  7. 07Bjarne Stroustrup: progettare C++ senza rinunciare alle prestazioni
  8. 08Pascal: imparare a programmare rendendo visibile la struttura
  9. 09C++: da C with Classes al C++ moderno
  10. 10Programmazione orientata agli oggetti: oggetti, messaggi e astrazioni riutilizzabili
  11. 11Guido van Rossum: creare Python per rendere il codice leggibile
  12. 12Brendan Eich: JavaScript, dal prototipo Netscape allo standard del Web
  13. 13James Gosling: l'ingegnere all'origine di Java
  14. 14Python: leggibilità, batterie incluse e un ecosistema globale
  15. 15Java: scrivere una volta, eseguire ovunque
  16. 16JavaScript: il linguaggio che ha reso interattivo il Web
  17. 17Ken Thompson: da Unix a Go, la semplicità come metodo
  18. 18John McCarthy: Lisp e l'idea di programmare con i simboli
  19. 19Alan Kay: Smalltalk e il computer come medium personale
  20. 20Barbara Liskov: l'astrazione che ha reso modulare il software
  21. 21Robin Milner: ML, dimostrazione assistita e linguaggi dell'interazione
  22. 22Brian Kernighan: AWK, Unix e l'arte di spiegare il codice
  23. 23Anders Hejlsberg: da Turbo Pascal a C# e TypeScript
  24. 24Larry Wall: Perl, il linguaggio che ha collegato gli strumenti di Internet
  25. 25Yukihiro Matsumoto: Ruby e la felicità del programmatore
  26. 26Rasmus Lerdorf: PHP e la democratizzazione del Web dinamico
BiografiaStoria dell’informaticaPrincipiante

Dennis Ritchie: il linguaggio C al cuore di Unix

Come Dennis Ritchie progettò il linguaggio C e contribuì a Unix, due fondamenta che resero il software di sistema più portabile.

3 agosto 20267 min