Brian Kernighan

informatico canadese

Brian Wilson Kernighan (Toronto, 1º gennaio 1942) è un informatico canadese.

Brian Wilson Kernighan

È noto per aver contribuito allo sviluppo di Unix assieme ai suoi creatori Ken Thompson e Dennis Ritchie, e soprattutto per aver scritto, insieme a Ritchie, il primo libro sul linguaggio di programmazione C, intitolato Il linguaggio C (The C Programming Language). È l'autore di molti programmi Unix, come ditroff, e dei linguaggi AWK e AMPL.

Insieme a Shen Lin escogitò euristiche per due problemi di ottimizzazione NP-completi: partizione dei grafi e il problema del commesso viaggiatore. Come dimostrazione di equità, il primo è solitamente chiamato algoritmo di Kernighan–Lin, mentre il secondo è noto come l'euristica di Lin–Kernighan.

Kernighan è stato professore di informatica all'Università di Princeton dal 2000 ed è il direttore degli studi undergraduate nel dipartimento di informatica.[1][2] Nel 2015, co-scrisse il libro The Go Programming Language sul linguaggio Go

Biografia

modifica

Si laurea in fisica tecnica all'Università di Toronto nel 1964 e ottiene il dottorato di ricerca in elettrotecnica all'Università di Princeton, dove ha insegnato dal 2000. Ha lavorato nel dipartimento di ricerca informatico dei Bell Labs (conosciuti ora come Lucent Technologies).

È famoso soprattutto per aver collaborato insieme a Dennis Ritchie, creatore del linguaggio di programmazione C, alla stesura del libro The C Programming Language, noto, nell'ambiente, come "il K&R" dalle iniziali dei suoi autori, reputato un testo fondamentale per i programmatori.[3] Sebbene ne scrisse la guida, Kernighan affermò di non aver presto parte alla progettazione di C («È interamente opera di Dennis Ritchie»).[4]

È il creatore dei linguaggi AWK, insieme ad Alfred Aho e Peter Weinberger, e di AMPL, oltre di molti programmi Unix, come ad esempio troff.

Legge di Kernighan

modifica
(EN)

«Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.»

(IT)

«Il debugging è due volte più difficile rispetto alla stesura del codice. Di conseguenza, chi scrive il codice nella maniera più intelligente possibile non è, per definizione, abbastanza intelligente per eseguirne il debugging.»

  1. ^ An Oral History of Unix, su princeton.edu, 11 giugno 2007. URL consultato il 13 maggio 2020 (archiviato dall'url originale l'11 giugno 2007).
  2. ^ Brian Kernighan | Computer Science Department at Princeton University, su cs.princeton.edu. URL consultato il 13 maggio 2020.
  3. ^ (EN) Interview with Brian Kernighan, su linuxjournal.com.
  4. ^ Aleksey Dolya, Interview with Brian Kernighan, in Linux Journal, 29 luglio 2003.

Voci correlate

modifica

Altri progetti

modifica

Collegamenti esterni

modifica
Controllo di autoritàVIAF (EN108136058 · ISNI (EN0000 0000 8405 6183 · LCCN (ENn50044563 · GND (DE138447284 · BNF (FRcb120135509 (data) · J9U (ENHE987007305273805171 · NSK (HR000004825 · NDL (ENJA00445528
  NODES
debugging 3
Intern 1
Note 2
os 6