Κεν Τόμσον

Από τη Βικιπαίδεια, την ελεύθερη εγκυκλοπαίδεια
Κένεθ Τόμσον
Όνομα στη
μητρική γλώσσα
Kenneth Lane Thompson (Αγγλικά)
Γέννηση4 Φεβρουαρίου 1943
Νέα Ορλεάνη, Λουϊζιάνα
ΥπηκοότηταΗνωμένες Πολιτείες Αμερικής
ΣπουδέςΠανεπιστήμιο της Καλιφόρνια, Μπέρκλεϋ
Γνωστός γιαUnix

UTF-8

Γλώσσα προγραμματισμού B

Γλώσσα προγραμματιστμού Go
ΒραβεύσειςΒραβείο Τούρινγκ (1983), Εθνικό Μετάλλιο Τεχνολογίας (1998), βραβείο Χάρολντ Πέντερ (2003), IEEE Emanuel R. Piore Award (1982), Tsutomu Kanai Award (1999), Computer History Museum fellow (1997), Βραβείο Πρωτοπόρου Υπολογιστών (1994), ACM Software System Award (1983), IEEE Richard W. Hamming Medal (1990), βραβείο της Ιαπωνίας (2011) και Αίθουσα Φήμης των Εθνικών Εφευρετών (2019)
Ιστοσελίδα
https://9p.io/cm/cs/who/ken/ και http://cs.bell-labs.co/who/ken/
Επιστημονική σταδιοδρομία
Ερευνητικός τομέαςΕπιστήμη των Υπολογιστών
Ιδιότηταπρογραμματιστής και επιστήμονας υπολογιστών
ΕργοδότηςΕργαστήρια Μπελ Google

Ο Κένεθ Λέιν "Κεν" Τόμσον (αγγλικά: Kenneth Lane "Ken" Thompson, 4 Φεβρουαρίου 1943), συχνά αναφερόμενος ως ken στους κύκλους των χάκερ[1], είναι Αμερικανός πρωτοπόρος της επιστήμης των υπολογιστών. Έχοντας δουλέψει στα Εργαστήρια Μπελ (Bell Labs) το μεγαλύτερο μέρος της καριέρας του, ο Τόμσον σχεδίασε και υλοποίησε το αρχικό λειτουργικό σύστημα Unix. Επίσης, εφηύρε τη γλώσσα προγραμματισμού B, τον άμεσο πρόγονο της γλώσσας προγραμματισμού C και ήταν ένας από τους δημιουργούς και πρώτους προγραμματιστές του λειτουργικού συστήματος Plan 9. Από το 2006 και μετά, ο Τόμσον εργάστηκε στην Google, όπου συν-εφήυρε τη γλώσσα προγραμματισμού Go.

Άλλες αξιοσημείωτες συνεισφορές του συμπεριλαμβάνουν την δουλειά του πάνω στις κανονικές εκφράσεις και στους πρώτους ηλεκτρονικούς επεξεργαστές κειμένου QED και ed, τον ορισμό της κωδικοποίησης UTF-8, το ηλεκτρονικό σκάκι που συμπεριλαμβάνει τη δημιουργία βάσεων πινάκων τελειωμένων παιχνιδιών (endgame tablebases) και τη δημιουργία της σκακιστικής μηχανής Belle.

Βιογραφία[Επεξεργασία | επεξεργασία κώδικα]

Πρώτα χρόνια[Επεξεργασία | επεξεργασία κώδικα]

Ο Τόμσον γεννήθηκε στη Νέα Ορλεάνη. Όταν ερωτήθηκε πως έμαθε προγραμματισμό, ο Τόμσον απάντησε "Πάντα με γοήτευε  η λογική και ακόμα και από το δημοτικό δούλευα σε αριθμητικά προβλήματα σε δυαδικό σύστημα, και σε πράγματα όπως αυτό. Απλά και μόνο επειδή με γοήτευε.".[2]

Δεκαετία 1960[Επεξεργασία | επεξεργασία κώδικα]

Ο Τόμσον έλαβε το πτυχίο του το 1965 και το μεταπτυχιακό του το 1966, και τα δύο στο τομέα των Ηλεκτρολόγων Μηχανικών και Επιστήμης των Υπολογιστών, από το πανεπιστήμιο Μπέρκλεϋ της Καλιφόρνια (University of California, Berkeley). Τη μεταπτυχιακή του εργασία επιτήρησε ο καθηγητής Έλγουιν Μπέρλεκαμπ (Elwyn Berlekamp).[3]

Ο Τόμσον προσελήφθη στα Εργαστήρια Μπελ το 1966.[4] Τη δεκαετία του 1960 στα Εργαστήρια Μπελ, ο Τόμσον με τον Ντένις Ρίτσι (Dennis Ritchie) εργαστήκανε στο λειτουργικό σύστημα Multics. Γράφοντας το Multics, ο Τόμσον δημιούργησε τη γλώσσα προγραμματισμού Bon.[5] Επίσης, δημιούργησε ένα βιντεοπαιχνίδι με το τίτλο Space Travel. Αργότερα, τα Εργαστήρια Μπελ αποσύρθηκαν από τη συμμετοχή στο Multics.[6] Προκειμένου ο Τόμσον να παίζει το παιχνίδι του βρήκε ένα παλιό μηχάνημα PDP-7 και έγραψε εκ νέου το Space Travel σε αυτό.[7] Τελικώς, από τα εργαλεία που ανέπτυξε προέκυψε ο λειτουργικό σύστημα Unix. Εργαζόμενη σε ένα PDP-7, μία ομάδα ερευνητών των Εργαστηρίων Μπελ, συμπεριλαμβανομένου και του Ραντ Κνάντεϊ (Rudd Cnaday), κάτω από τη καθοδήγηση του Τόμσον και του Ρίτσι, ανέπτυξαν ένα ιεραρχικό σύστημα αρχείων, την έννοια των διεργασιών του υπολογιστή και των αρχείων συσκευών, έναν διερμηνέα γραμμής εντολών και μερικά άλλα μικρά εργαλεία. Το 1970, ο Μπράιαν Κέρνιχαν (Brian Kernighan) πρότεινε το όνομα "Unix", ως ένα λογοπαίγνιο με αφορμή το όνομα "Multics".[8] Μετά από αρχική εργασία στο Unix, ο Τόμσον αποφάσισε ότι το Unix χρειαζόταν μία γλώσσα προγραμματισμού και δημιούργησε την B, πρόγονο της C του Ρίτσι.[5]

Τη δεκαετία του 1960, ο Τόμσον ξεκίνησε επίσης να εργάζεται πάνω στις κανονικές εκφράσεις. Ο Τόμσον ανέπτυξε την έκδοση του κειμενογράφου QED για το λειτουργικό σύστημα CTSS, που συμπεριλάμβανε τη χρήση κανονικών εκφράσεων για αναζήτηση κείμενου. Το QED και ο μεταγενέστερος επεξεργαστής κειμένου του Τόμσον ed (ο προκαθορισμένος επεξεργαστής κειμένου στο Unix) συνεισέφεραν σημαντικά στη δημοφιλία των κανονικών εκφράσεων και τελικά αυτές καθιερώθηκαν στα περισσότερα προγράμματα επεξεργασίας κειμένου του Unix. Σχεδόν όλα τα προγράμματα που χρησιμοποιούν κανονικές εκφράσεις σήμερα χρησιμοποιούν κάποια εκδοχή της σημειογραφίας του Τόμσον. Επίσης, ο Τόμσον εφηύρε τον "αλγόριθμο κατασκευής Τόμσον" για τη μετατροπή κανονικών εκφράσεων σε μη ντετερμινιστικά πεπερασμένα αυτόματα, με σκοπό να κάνει το ταίριασμα εκφράσεων πιο γρήγορο.[9]

Δεκαετία 1970[Επεξεργασία | επεξεργασία κώδικα]

Κατά τη δεκαετία του 1970, ο Τόμσον και ο Ρίτσι συνεργάστηκαν πάνω στο λειτουργικό σύστημα Unix. Επηρέασαν τόσο το Research Unix που αργότερα ο Νταγκ Μακιλρόι (Doug McIlroy) έγραψε: "Τα ονόματα των Ρίτσι και Τόμσον μπορούν ασφαλώς να θεωρηθούν ότι συνδέονται με σχεδόν οτιδήποτε δεν αποδίδεται με άλλο τρόπο".[10] Σε μία συνέντευξη το 2011, ο Τόμσον δήλωσε ότι οι πρώτες εκδόσεις του Unix είχαν γραφεί μόνο από αυτόν και ότι ο Ρίτσι αργότερα ξεκίνησε να διαδίδει το σύστημα και να βοηθάει στην ανάπτυξη του:[11]

Ένα DEC PDP-7. όπως χρησιμοποιήθηκε για την αρχική εργασία στο Unix

Έκανα τις πρώτες δύο ή τρεις εκδόσεις του UNIX τελείως μόνος. Και ο Ντένις έγινε ευαγγελιστής. Ύστερα υπήρξε μία επανεγγραφή  σε μία γλώσσα υψηλότερου επιπέδου που αργότερα θα ονομαζόταν C. Εκείνος εργάστηκε κυρίως στη γλώσσα και το σύστημα εισόδου/εξόδου και εγώ εργάστηκα σε όλο το υπόλοιπο λειτουργικό σύστημα. Αυτό ήταν για το PDP-11, το οποίο συμπτωματικά ήταν ευνοϊκό, επειδή αυτός ήταν ο υπολογιστής που χρησιμοποιήθηκε ευρέως από την ακαδημαϊκή κοινότητα.

Η ανατροφοδότηση από την ανάπτυξη του Unix από το Τόμσον ήταν επίσης σημαντική για την ανάπτυξη της γλώσσας προγραμματισμού C. Αργότερα ο Τόμσον είπε ότι η γλώσσα C "ωρίμασε με κάθε επανεγγραφή του συστήματος και ως εκ τούτου έγινε ιδανική για να γράφεις συστήματα".[11]

Το 1975, o Τόμσον πήρε άδεια άνευ αποδοχών από τα Εργαστήρια Μπελ και πήγε πίσω στο πανεπιστήμιο του, το Μπέρκλεϋ. Εκεί, βοήθησε με την εγκατάσταση της 6ης έκδοσης του Unix σε ένα PDP-11/70. Αργότερα, το Μπέρκλεϊ θα συντηρούσε τη δικιά του αυτόνομη εκδοχή του Unix γνωστή και ως Berkeley Software Distribution (BSD).[12]

Μαζί με τον Τζόσεφ Κόντον (Joseph Condon), ο Τόμσον δημιούργησε το υλισμικό και λογισμικό για το Belle, έναν παγκόσμιο πρωταθλητή υπολογιστή σκακιού.[13] Επίσης έγραψε προγράμματα για την πλήρη απαρίθμηση όλων των τελειωμένων παιχνιδιών σκακιού, γνωστά και ως endgame tablebases, για όλες τις τελικές καταστάσεις με 4,5 ή 6 πιόνια, επιτρέποντας σε κάποιο πρόγραμμα να επιλέγει τις "τέλειες" κινήσεις εφόσον το παιχνίδι έφτανε σε μία αποθηκευμένη κατάσταση. Αργότερα, με τη βοήθεια του ειδικού σε τελικές καταστάσεις σκακιού Τζον Ρόικροφτ (John Roycroft), ο Τόμσον διένειμε τα πρώτα του αποτελέσματα σε CD-ROM.

Δεκαετία 1980[Επεξεργασία | επεξεργασία κώδικα]

Κατά τη δεκαετία του 1980, ο Τόμσον και ο Ρίτσι συνέχισαν να αναθεωρούν το Research Unix, το οποίο είχε υιοθετήσει το κώδικα του BSD για την 8η, 9η και 10η έκδοση του. Στα μέσα της δεκαετίας του 1980, στα Εργαστήρια Μπελ ξεκίνησαν να εργάζονται σε ένα νέο λειτουργικό σύστημα ως αντικαταστάτη του Unix. Ο Τόμσον ήταν συντελεστικός στο σχεδιασμό και υλοποίηση του Plan 9 από τα Εργαστήρια Μπελ, ένα νέο λειτουργικό σύστημα που χρησιμοποιούσε τις αρχές του Unix, αλλά τις εφάρμοζε περισσότερο ευρέως σε όλα τις μεγάλες συστημικές υποδομές. Μερικά προγράμματα που ήταν μέρος μεταγενέστερων εκδόσεων του Research Unix, όπως το mk και το rc, αργότερα επίσης ενσωματώθηκαν στο Plan 9.

Ο Τόμσον δοκίμασε πρώιμες εκδόσεις της γλώσσας προγραμματισμού C++ του Μπιάρνε Στρούστρουπ (Bjarne Stroustrup) γράφοντας προγράμματα σε αυτή, αργότερα όμως αρνήθηκε να εργαστεί με αυτή λόγω συχνών ασυμβατοτήτων μεταξύ των εκδόσεων της. Το 2009 σε μία συνέντευξη, ο Τόμσον εξέφρασε μία αρνητική στάση απέναντι στην C++, δηλώνοντας "Κάνει πολλά πράγματα μερικώς καλά και είναι ένας σωρός σκουπιδιών από ιδέες που αποκλείονται αμοιβαία".[14]

Δεκαετία 1990[Επεξεργασία | επεξεργασία κώδικα]

Το 1992, ο Τόμσον ανέπτυξε τη κωδικοποίηση UTF-8 μαζί με το Ρομπ Πάικ (Rob Pike).[15] Η κωδικοποίηση UTF-8 στη συνέχεια έγινε η κυρίαρχη κωδικοποίηση για το Παγκόσμιο Ιστό, μετρώντας περισσότερες από τις μισές σελίδες του συνόλου του ιστού.[16]

Τη δεκαετία του 1990, εργάστηκε στο λειτουργικό σύστημα Inferno, ένα άλλο ερευνητικό λειτουργικό σύστημα που βασίστηκε γύρο από μία μεταφέρσιμη εικονική μηχανή. Ο Τόμσον και ο Ρίτσι συνέχισαν τη συνεργασία τους στο Inferno, μαζί με άλλους ερευνητές από τα Εργαστήρια Μπελ.[17]

Δεκαετία 2000[Επεξεργασία | επεξεργασία κώδικα]

Στα τέλη της δεκαετίας του 2000, ο Τόμσον αποσύρθηκε από τα Εργαστήρια Μπελ. Εργάστηκε στην εταιρία Entrisphere ως συνεργάτης μέχρι το 2006 και τώρα εργάζεται στην Google ως διακεκριμένος μηχανικός. Η πιο πρόσφατη δουλειά του συμπεριλαμβάνει τη συν-δημιουργία της γλώσσας προγραμματισμού Go. Αναφερόμενος στον εαυτό του μαζί με τους υπόλοιπους αρχικούς συγγραφείς της, αναφέρει:[11]

Ο Τόμσον (αριστερά) με το Ντένις Ρίτσι

Όταν οι τρεις μας [Τόμσον, Ρομπ Πάικ και Ρόμπερτ Γκρίσεμερ (Robert Griesemer)] ξεκινήσαμε, ήταν καθαρή έρευνα. Οι τρεις μας αποφασίσαμε ότι μισούμε τη C++ [γέλιο]... [Επιστρέφοντας στη Go] ξεκινήσαμε με την ιδέα ότι και οι τρεις μας έπρεπε να έχουμε λόγω σε κάθε χαρακτηριστικό της γλώσσας, ώστε να μην έμπαιναν περιττά σκουπίδια στη γλώσσα για κανένα λόγο.

Σύμφωνα με μία συνέντευξη το 2009, ο Τόμσον πλέον χρησιμοποιεί ένα λειτουργικό σύστημα βασισμένο στο Linux.[18]

Βραβεία[Επεξεργασία | επεξεργασία κώδικα]

Εθνική Ακαδημία Μηχανικών[Επεξεργασία | επεξεργασία κώδικα]

Το 1980, ο Τόμσον εκλέχτηκε από την Εθνική Ακαδημία Μηχανικών για το "σχεδιασμό του UNIX, ένα λειτουργικό σύστημα του οποίου η αποδοτικότητα, το εύρος, η δύναμη και το στυλ οδήγησαν την εξερεύνηση των μικροϋπολογιστών μίας γενιάς".[19]

Βραβείο Τούρινγκ[Επεξεργασία | επεξεργασία κώδικα]

Το 1983, ο Τόμσον και ο Ρίτσι από κοινού έλαβαν το βραβείο Τούρινγκ "για την ανάπτυξη της θεωρίας λειτουργικών συστημάτων γενικής χρήσης και συγκεκριμένα για την υλοποίηση του λειτουργικού συστήματος UNIX". Κατά την ομιλία της αποδοχής του με τίτλο "Reflections on Trusting Trust", παρουσίασε την επίθεση κερκόπορτας πλέον γνωστή ως το χακ του Τόμσον ή επίθεση της αξιόπιστης εμπιστοσύνης, η οποία θεωρείται ευρέως ως μία πολύ σημαντική και πρωτότυπη δουλειά πάνω στην ασφάλεια υπολογιστών.[20]

Mετάλλιο IEEE Richard W. Hamming[Επεξεργασία | επεξεργασία κώδικα]

Το 1990, ο Τόμσον και ο Ντένις Ρίτσι δέχτηκαν το μετάλλιο IEEE Richard W. Hamming για "τη συν-δημιουργία του λειτουργικού συστήματος UNIX και την ανάπτυξη της γλώσσας προγραμματισμού C".

Μέλος του Μουσείου της Ιστορίας των Υπολογιστών[Επεξεργασία | επεξεργασία κώδικα]

Το 1997, ο Τόμσον και ο Ρίτσι έγιναν μέλη του Μουσείου Ιστορίας των Υπολογιστών για "τη συν-δημιουργία του UNIX και την ανάπτυξη της γλώσσας προγραμματισμού C".[21]

Εθνικό Μετάλλιο Τεχνολογίας[Επεξεργασία | επεξεργασία κώδικα]

Στις 27 Απριλίου του 1999, ο Τόμσον και ο Ρίτσι από κοινού έλαβαν το Εθνικό Μετάλλιο Τεχνολογίας για το 1998 από τον πρόεδρο Μπιλ Κλίντον, για τη συν-δημιουργία του λειτουργικού συστήματος UNIX και την ανάπτυξη της γλώσσας προγραμματισμού C που οδήγησαν σε σημαντικές εξελίξεις στο υλικό και λογισμικό υπολογιστών, σε δικτυακά συστήματα, και ώθησαν την ανάπτυξη μιας ολόκληρης βιομηχανίας, ενισχύοντας την αμερικανική πρωτοκαθεδρία στην Εποχή της Πληροφορίας.[22]

Βραβείο Tsutomu Kanai[Επεξεργασία | επεξεργασία κώδικα]

Το 1999, το Ινστιτούτο Ηλεκτρολόγων και Ηλεκτρονικών Μηχανικών επέλεξε το Τόμσον να λάβει το πρώτο βραβείο Tsutomu Kanai για "το ρόλο του στη δημιουργία του λειτουργικού συστήματος UNIX, το οποίο για δεκαετίες υπήρξε πλατφόρμα κλειδί στο χώρο των κατανεμημένων συστημάτων".

Βραβείο της Ιαπωνίας[Επεξεργασία | επεξεργασία κώδικα]

Το 2011, ο Τόμσον μαζί με το Ρίτσι, βραβεύτηκαν με το βραβείο της Ιαπωνίας για την Πληροφορική και τις Τηλεπικοινωνίες για την πρωτότυπη δουλειά τους πάνω στην ανάπτυξη του λειτουργικού συστήματος Unix.[23]

Παραπομπές[Επεξεργασία | επεξεργασία κώδικα]

  1. «ken». www.catb.org. Ανακτήθηκε στις 29 Απριλίου 2018. 
  2. Peter Seibel (2009). Coders at work : reflections on the craft of programming. New York: Apress. σελ. 450. ISBN 9781430219491. 535024762. 
  3. Berlekamp, berlek@math.berkeley.edu - Elwyn. «Thesis Students». math.berkeley.edu. Ανακτήθηκε στις 29 Απριλίου 2018. 
  4. «Ken Thompson: developed UNIX at Bell Labs». www.linfo.org. Ανακτήθηκε στις 29 Απριλίου 2018. 
  5. 5,0 5,1 «Chistory». www.bell-labs.com. Ανακτήθηκε στις 29 Απριλίου 2018. 
  6. J. Stanley Warford (2009). Computer systems (4η έκδοση). Sudbury, Mass.: Jones and Bartlett Publishers. σελ. 460. ISBN 9780763771447. 699811833. 
  7. «The Space Travel game». www.bell-labs.com. Ανακτήθηκε στις 29 Απριλίου 2018. 
  8. «Early Unix history and evolution». www.bell-labs.com. Ανακτήθηκε στις 29 Απριλίου 2018. 
  9. «Regular Expression Matching Can Be Simple And Fast». swtch.com. Ανακτήθηκε στις 29 Απριλίου 2018. 
  10. McIlroy, M. D. (1987). A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 (PDF) (Technical report). CSTR. Bell Labs. 139.
  11. 11,0 11,1 11,2 «Interview with Ken Thompson». Dr. Dobb's. Αρχειοθετήθηκε από το πρωτότυπο στις 2014-03-13. https://web.archive.org/web/20140313072938/http://www.drdobbs.com/open-source/interview-with-ken-thompson/229502480. Ανακτήθηκε στις 2018-04-29. 
  12. «Groklaw - The Daemon, the GNU, and the Penguin - Ch. 7 ~ by Dr. Peter H. Salus». www.groklaw.net. Ανακτήθηκε στις 29 Απριλίου 2018. 
  13. «Joe Condon (obituary)». Physics Today. Ανακτήθηκε στις 5 Νοεμβρίου 2015. 
  14. Peter Seibel (2009). Coders at work : reflections on the craft of programming. New York: Apress. σελ. 475. ISBN 9781430219491. 535024762. 
  15. Pike, Rob (30 Απριλίου 2003). «UTF-8 history». 
  16. «Unicode nearing 50% of the web» (στα αγγλικά). Official Google Blog. https://googleblog.blogspot.gr/2010/01/unicode-nearing-50-of-web.html. Ανακτήθηκε στις 2018-04-29. 
  17. «Ken Thompson UNIX systems father | Unixmen». www.unixmen.com (στα Αγγλικά). Ανακτήθηκε στις 29 Απριλίου 2018. 
  18. Peter Seibel (2009). Coders at work : reflections on the craft of programming. New York: Apress. σελ. 479. ISBN 9781430219491. 535024762. 
  19. «Dr. Kenneth Thompson». NAE Website. Ανακτήθηκε στις 29 Απριλίου 2018. 
  20. Thompson, Ken (1984-08-01). «Reflections on trusting trust». Communications of the ACM 27 (8): 761–763. doi:10.1145/358198.358210. ISSN 0001-0782. http://dl.acm.org/citation.cfm?id=358198.358210. 
  21. «Ken Thompson | Computer History Museum». www.computerhistory.org (στα Αγγλικά). Ανακτήθηκε στις 29 Απριλίου 2018. 
  22. «Bell Labs Luminaries Dennis Ritchie And Ken Thompson To Receive National Medal Of Technology» (στα αγγλικά). ScienceDaily. https://www.sciencedaily.com/releases/1998/12/981208172703.htm. Ανακτήθηκε στις 2018-04-29. 
  23. «Ken Thompson, Dennis Ritchie win Japan Prize». SFGate. https://www.sfgate.com/business/article/Ken-Thompson-Dennis-Ritchie-win-Japan-Prize-2478569.php#ixzz1C5LtXdf3. Ανακτήθηκε στις 2018-04-29.