Kenneth Lane Thompson (născut la 4 februarie 1943) este un pionier american în informatică. Thompson a lucrat la Bell Labs în cea mai mare parte a carierei sale, unde a proiectat și implementat sistemul de operare Unix. A inventat și limbajul de programare B, predecesorul direct al limbajului de programare C și a fost unul din creatorii și dezvoltatorii timpurii ai sistemului de operare Plan 9. Din anul 2006, Thompson a lucrat la Google, unde a contribuit la inventarea limbajului de programare Go.
Alte contribuții importante pe care le-a adus includ expresiile regulate și editoarele de text timpurii QED și ed, definiția codării UTF-8 și o aplicație de șah pe calculator, care a inclus și crearea bazelor tabelare de tip end-game (final de joc) și, ulterior, mașina de șah Belle.
Copilărie și educație
Thompson s-a născut în New Orleans. Atunci când a fost întrebat cum a învățat programare, Thompson a spus „Am fost întotdeauna fascinat de logică și am lucrat la probleme de aritmetică în cod binar chiar și în școala generală, și alte astfel de lucruri. Doar pentru simplul fapt că mă fascinau.”
Thompson a obținut o Diplomă de licență în Științe în anul 1965 și o Diplomă de Master în anul 1966, ambele cu specializarea Inginerie electrică și Informatică de la Universitatea din California, Berkeley, coordonatorul tezei sale fiind Elwyn Berlekamp.
Carieră și cercetare
Thompson a fost angajat la Bell Labs în anul 1966. În anii 1960, în timp ce lucra la Bell Labs, Thompson a lucrat împreună cu Dennis Ritchie la sistemul de operare Multics. În timp ce dezvolta Multics, Thompson a creat limbajul de programare Bon. El a creat și jocul video Space Travel. Mai târziu, Bell Labs a retras proiectul MULTICS. Pentru a continua să joace jocul, Thompson a găsit un dispozitiv vechi PDP-7 și a rescris Space Travel pe el. În cele din urmă, instrumentele dezvoltate de Thompson au devenit sistemul de operare Unix. Lucrând la PDP-7, o echipă de cercetători de la Bell Labs condusă de Thompson și Ritchie, incluzându-l și pe Rudd Canaday, a dezvoltat sistemul de fișiere ierarhic, conceptele de procese computerizate și fișierele dispozitivului, un instrument de interpretare a liniei de comandă, conducte pentru comunicare inter-procesuală facilă și câteva mici utilitare. În 1970, Brian Kernighan sugera numele „Unix” într-o glumă privind denumirea „Multics”. După lucrul inițial la Unix, Thompson a decis că Unix are nevoie de un limbaj de programare de sistem și a creat B, un precursor al limbajului C, dezvoltat ulterior de Ritchie.
În anii 1960, Thompson a început să lucreze și la expresii regulate. Thompson a dezvoltat versiunea CTSS a editorului QED, care include expresiile regulate pentru căutarea în text. QED și editorul ulterior al Thompson ed (editorul de text standard al Unix) au contribuit grozav la popularitatea ulterioară a expresiilor regulate, iar acestea au devenit universale în cadrul programelor de procesare a textului din Unix. Aproape toate programele care operează cu expresii regulate azi utilizează o variantă a notației lui Thompson. El a inventat și algoritmul de construcție al lui Thompson utilizat pentru convertirea expresiilor regulate în automaton finit non-determinist pentru a face potrivirea expresiilor mult mai rapidă.
Anii 1970
În anii 1970, Thompson și Ritchie au colaborat la sistemul de operare Unix; au fost atât de influenți asupra Research Unix încât Doug McIlroy a scris mai apoi: „Se poate presupune, fără prea multe dubii, că numele Ritchie și Thompson sunt atașate tuturor lucrurilor care nu sunt atribuite altcuiva.” Într-un interviu din anul 2011, Thompson a afirmat că primele versiuni ale Unix au fost scrise de el și că Ritchie a început să susțină sistemul și a ajutat la dezvoltarea acestuia: „Am realizat primele două sau trei versiuni ale UNIX de unul singur. Iar Dennis a devenit un evanghelist. Apoi a avut loc o rescriere într-un limbaj de nivel mai înalt care urma să se numească C. A lucrat în mare la limbaj și la sistemul I/O, iar eu am lucrat la restul sistemului de operare. Asta a fost pentru PDP-11, aspect care a fost cu noroc, deoarece acela a fost calculatorul care a cucerit comunitatea academică.”
Feedback-ul primit de Thompson pentru dezvoltarea Unix a fost esențial în dezvoltarea limbajului de programare C. Thompson urma să afirme mai târziu că limbajul C „s-a dezvoltat odată cu rescrierile din sistem și, astfel, a devenit perfect pentru sistemele de scriere”.
În anul 1975, Thompson și-a luat un concediu sabatic de la Bell Labs și s-a dus la universitatea care l-a școlit, UC Berkley. Acolo, el a ajutat la instalarea Versiunii 6 a Unix pe un PDP-11/70. Unix la Berkley urma să ajungă să fie păstrat ca propriul sistem al universității, cunoscut ca Berkeley Software Distribution (BSD).
Ken Thompson a scris un program de șah denumit „chess” pentru prima versiune a Unix (1971). Mai târziu, Thompson, împreună cu Joseph Condon, a creat programul asistat de hardware Belle, un campion mondial al șahului pe calculator. El a mai scris și programele pentru generarea enumerării complete a finalurilor la șah, cunoscute ca bazele tabelare în șah, pentru toate finalurile cu 4, 5 și 6 piese, permițând programelor de șah pe calculator să facă mișcări „perfecte” odată ce poziția stocată în ele a fost atinsă. Mai târziu, cu ajutorul expertului în șah John Roycroft, Thompson a distribuit primul său rezultat pe CD-ROM. În 2001, ICGA Journal a dedicat aproape o ediție întreagă contribuțiilor lui Ken Thompson la șahul pe calculator.
Anii 1980
În anii 1980, Thompson și Ritchie au continuat să revizuiască Research Unix, care a adoptat o bază de cod BSD pentru edițiile 8, 9 și 10. La mijlocul anilor 1980, la Bell Labs a început munca la un sistem de operare care să înlocuiască Unix. Thompson a fost esențial în proiectarea și implementarea Plan 9 de la Bell Labs, un nou sistem de operare care utilizează principiile Unix, dar care le aplică mai vast asupra tuturor facilităților majore ale sistemului. Unele programele care au făcut parte dintr-o versiune ulterioară a Research Unix, ca mk și rc, au fost incluse în Plan 9.
Thompson a testat versiunile timpurii ale limbajului de programare C++ pentru Bjarne Stroustrup prin scrierea de programe în el, dar a refuzat apoi să lucreze în C++ din cauza incompatibilităților dintre versiuni. Într-un interviu din anul 2009, Thompson a exprimat o opinie negativă asupra C++, declarând că „Face o mulțime de lucruri pe jumătate bine și este pur și simplu o adunătură de idei care se exclud reciproc”.
Anii 1990
În 1992, Thompson a dezvoltat schema de codare UTF-8 împreună cu Rob Pike. Codarea UTF-8 a devenit de atunci codarea dominantă de caractere pentru World Wide Web, reprezentând mai bine de 90% din toate paginile web din anul 2019.
În anii 1990, a început să lucreze asupra sistemului de operare Inferno, un al sistem de operare de cercetare care este bazat pe o mașină virtuală portabilă. Thompson și Ritchie și-au continuat colaborarea pentru Inferno, împreună cu alți cercetători de la Bell Labs.
Anii 2000
La finalul anului 2000, Thompson s-a pensionat de la Bell Labs. A lucrat la Entrisphere, Inc. ca asociat până în anul 2006, iar în prezent, lucrează la Google ca Inginer Distins. Activitatea sa recentă include co-proiectarea limbajului de programare Go. Făcând referire la propria persoană împreună cu alți autori originali ai Go, el declară: „Când am început noi trei [Thompson, Rob Pike și Robert Griesemer], era vorba pur și simplu de cercetare. Ne-am adunat toți trei și am decis că nu suportăm C++. [râde] … [Revenind la Go], am început de la ideea că fiecare dintre noi trebuia să fie convins cu privire la fiecare funcție a limbajului, pentru a ne asigura că nu există tâmpenii redundante în limbaj”.
Conform unui interviu acordat în 2009, Thompson utilizează în prezent un sistem de operare pe bază de Linux.
Premii
- În 1980, Thompson a fost ales de către Academia Națională de Inginerie pentru „proiectarea Unix, un sistem de operare a cărui eficiență, dimensiuni, putere și stil au ghidat exploatarea unei generații întregi de minicomputere”. În anul 1985, a fost ales ca Membru al Academiei Naționale de Științe (NAS).
- În anul 1983, Thompson și Ritchie au primit împreună Premiul Turing pentru „devotamentul lor pentru teoria sistemelor de operare generice și mai ales pentru implementarea sistemului de operare UNIX”. Discursul său de acceptare, „Reflections on Trusting Trust / Reflecții asupra încrederii în încredere”, a prezentat atacul backdoor cunoscut acum ca Thompson hack sau încrederea în atacul încrederii și este considerat a fi o lucrare de securitate cibernetică fundamentală.
- În anul 1990, atât Thompson, cât și Dennis Ritchie, au primit medalia IEEE Richard W. Hamming Medal din partea Institutului de Ingineri pentru dispozitive Electrice și Electronice (IEEE), „pentru crearea sistemului de operare UNIX și limbajul de programare C”.
- În anul 1997, Thompson și Ritchie au devenit Asociați ai Muzeului de istorie cibernetică pentru „co-crearea sistemului de operare UNIX și pentru dezvoltarea limbajului de programare C.”
- Pe 27 aprilie 1999, Thompson și Ritchie primesc împreună Medalia Națională pentru Tehnologie 1998 de la Președintele Bill Clinton pentru co-inventarea sistemului de operare UNIX și a limbajului de programare C, care, împreună, au „dus la progrese uriașe în domeniul hardware, software și sisteme de networking, și la stimularea creșterii unei întregi industrii, sporind astfel conducerea americană în Era informațională”.
- În anul 1999, Institutul de ingineri pentru dispozitive electrice și electronice l-au ales pe Thompson pentru a primi primul premiu Tsutomu Kanai Award „pentru rolul său în crearea sistemului de operare UNIX, care a fost o platformă cheie timp de decenii pentru lucrările de sisteme distribuite”.
- În 2010, Thompson, împreună cu Dennis Ritchie, au primit Premiul japonez pentru informație și comunicații pentru inițierea lucrărilor pentru dezvoltarea sistemului de operare Unix.
What do you think?