Кеннет Лейн Томпсон (родился 4 февраля 1943 г.) - американский пионер информатики и развития компьютерных шахмат. Большую часть своей карьеры Томпсон проработал в Bell Labs , где разработал и внедрил оригинальную операционную систему Unix . Он также изобрел язык программирования B , прямой предшественник языка программирования C , и был одним из создателей и первых разработчиков операционной системы Plan 9 . С 2006 года Томпсон работал в Google , где был соавтором языка программирования Go .
Другие заметные вклады включали его работу над регулярными выражениями и ранними компьютерными текстовыми редакторами QED и ed , определением кодировки UTF-8 , а также его работу над компьютерными шахматами, которая включала создание баз таблиц эндшпиля и шахматной машины Belle . Он выиграл премию Тьюринга в 1983 году вместе со своим давним коллегой Деннисом Ритчи .
Томпсон родился в Новом Орлеане, штат Луизиана . Когда его спросили, как он научился программировать, Томпсон ответил: «Меня всегда увлекала логика, и даже в начальной школе я решал арифметические задачи в двоичном формате и тому подобное. Просто потому, что я был очарован». [3]
Томпсон получил степень бакалавра наук в 1965 году и степень магистра в 1966 году в области электротехники и компьютерных наук в Калифорнийском университете в Беркли , где руководителем его магистерской диссертации был Элвин Берлекамп . [4]
Томпсон был принят на работу в Bell Labs в 1966 году. [5] В 1960-х годах в Bell Labs Томпсон и Деннис Ритчи работали над операционной системой Multics . Во время написания Multics Томпсон создал язык программирования Bon. [6] [7] Он также создал видеоигру под названием Space Travel . Позже Bell Labs вышла из проекта MULTICS. [8] Чтобы продолжить игру, Томпсон нашел старую машину PDP-7 и переписал на ней «Космическое путешествие» . [9] В конце концов, инструменты, разработанные Томпсоном, стали операционной системой Unix : Работая над PDP-7 , группа исследователей Bell Labs под руководством Томпсона и Ритчи, в которую входил Радд Канадай , разработала иерархическую файловую систему , концепции компьютера. процессы и файлы устройств , интерпретатор командной строки , каналы для простого взаимодействия между процессами и некоторые небольшие служебные программы. В 1970 году Брайан Керниган предложил название «Unix», игра слов на название «Multics». [10] После первоначальной работы над Unix Томпсон решил, что Unix нужен язык системного программирования, и создал B , предшественник языка Ричи C. [11]
В 1960-х годах Томпсон также начал работу над регулярными выражениями . Томпсон разработал CTSS- версию редактора QED , включавшую регулярные выражения для поиска текста. QED и более поздний редактор Томпсона (стандартный текстовый редактор для Unix) внесли большой вклад в возможную популярность регулярных выражений, и регулярные выражения стали широко распространены в программах обработки текста Unix. Почти все программы, работающие сегодня с регулярными выражениями, используют тот или иной вариант нотации Томпсона. Он также изобрел алгоритм построения Томпсона , используемый для преобразования регулярных выражений в недетерминированные конечные автоматы , чтобы ускорить сопоставление выражений. [12]
На протяжении 1970-х годов Томпсон и Ритчи совместно работали над операционной системой Unix; они были настолько плодовиты в Research Unix , что Дуг Макилрой позже написал: «Имена Ричи и Томпсона можно с уверенностью предположить, что они связаны почти со всем, что не связано иным образом». [13] В интервью 2011 года Томпсон заявил, что первые версии Unix были написаны им, и что Ричи начал защищать систему и помогал ее развивать: [14]
Первую из двух или трех версий UNIX я создал в одиночку. И Деннис стал евангелистом. Затем была переписана версия на языке более высокого уровня, который впоследствии стал называться C. Он работал в основном над языком и системой ввода-вывода, а я работал над всей остальной частью операционной системы. Это было для PDP-11 , и это было счастливой случайностью, потому что именно этот компьютер завоевал академическое сообщество.
Отзывы о разработке Томпсоном Unix также сыграли важную роль в разработке языка программирования C. Позже Томпсон скажет, что язык C «вырос в результате одной из переписываний системы и, как таковой, стал идеальным для систем письменности ». [14]
В 1975 году Томпсон взял творческий отпуск в Bell Labs и отправился в свою альма-матер, Калифорнийский университет в Беркли. Там он помог установить Unix версии 6 на PDP-11/70 . Позднее Unix в Беркли стала поддерживаться как отдельная система, известная как Berkeley Software Distribution (BSD). [15]
В начале 1976 года Томпсон написал первоначальную версию Беркли Паскаля на факультете компьютерных наук факультета электротехники и компьютерных наук Калифорнийского университета в Беркли (с обширными изменениями и дополнениями, внесенными позже в том же году Уильямом Джоем , Чарльзом Б. Хейли [16] [16] . 17] [18] и руководитель факультета Сьюзен Грэм ).
Томпсон написал программу игры в шахматы под названием «шахматы» для первой версии Unix (1971). [19] Позже, вместе с Джозефом Кондоном , Томпсон создал аппаратную программу Belle , чемпион мира по шахматам на компьютере . [20] Он также написал программы для создания полного перечня шахматных окончаний, известные как базы таблиц эндшпиля , для всех окончаний из 4, 5 и 6 фигур, что позволяет компьютерным программам, играющим в шахматы, делать «идеальные» ходы после того, как позиция сохранена в их достигается. Позже, с помощью эксперта по шахматным эндшпилям Джона Ройкрофта , Томпсон распространил свои первые результаты на компакт-диске . В 2001 году журнал ICGA Journal посвятил почти целый выпуск различным вкладам Томпсона в компьютерные шахматы. [19]
В 1983 году Томпсон и Ричи совместно получили Премию Тьюринга «за разработку общей теории операционных систем и, в частности, за реализацию операционной системы UNIX». Его вступительная речь «Размышления о доверии к доверию» представила постоянную бэкдор- атаку компилятора, теперь известную как « взлом Томпсона » или атака доверия, и сама по себе широко считается плодотворной работой в области компьютерной безопасности . [21] В 2023 году аннотированный исходный код бэкдора был опубликован в Интернете. [22]
На протяжении 1980-х годов Томпсон и Ритчи продолжали пересматривать Research Unix, которая приняла кодовую базу BSD для 8-го, 9-го и 10-го изданий. В середине 1980-х годов в Bell Labs началась работа над новой операционной системой, призванной заменить Unix. Томпсон сыграл важную роль в разработке и внедрении Plan 9 от Bell Labs , новой операционной системы, использующей принципы Unix, но применяющей их более широко ко всем основным системным средствам. Некоторые программы, которые были частью более поздних версий Research Unix, такие как mk и rc , также были включены в Plan 9.
Томпсон тестировал ранние версии языка программирования C++ для Бьярна Страуструпа , написав на нем программы, но позже отказался работать на C++ из-за частой несовместимости между версиями. В интервью 2009 года Томпсон выразил негативное мнение о C++, заявив: «Он делает многие вещи наполовину хорошо, и это просто куча мусора взаимоисключающих идей». [23]
В 1992 году Томпсон совместно с Робом Пайком разработал схему кодировки UTF-8 . [24] С тех пор кодировка UTF-8 стала доминирующей кодировкой символов во Всемирной паутине , на которую в 2019 году приходилось более 90% всех веб-страниц. [25]
В 1990-х годах началась работа над операционной системой Inferno , еще одной исследовательской операционной системой, основанной на портативной виртуальной машине . Томпсон и Ричи продолжили сотрудничество с Inferno вместе с другими исследователями из Bell Labs. [26]
В 1995 году Томпсон сотрудничал с Шоном Дорвардом в области сжатия музыки на основе оригинальной исследовательской работы, проведенной Джимом Джонстоном под руководством Джо Холла и Джонта Аллена. [27] [28]
В конце 2000 года Томпсон ушел из Bell Labs.
В 2004 году он участвовал во внедрении Turochamp , шахматной программы , разработанной Аланом Тьюрингом в 1948 году, еще до того, как появились компьютеры, способные ее выполнять. [29]
До 2006 года он работал в Entrisphere, Inc. в качестве научного сотрудника . С 2024 года [обновлять]он работает в Google , сначала в качестве заслуженного инженера, а затем в качестве консультанта Google. [30] Недавняя работа включала совместную разработку языка программирования Go . Ссылаясь на себя и других первоначальных авторов Го, он заявляет: [14]
Когда мы трое [Томпсон, Роб Пайк и Роберт Гриземер ] приступили к работе, это было чистое исследование. Мы втроем собрались и решили, что ненавидим C++. [смех] ... [Вернувшись к Go,] мы начали с идеи, что со всеми нами троими нужно поговорить о каждой функции языка, чтобы ни по какой причине в язык не добавлялось постороннего мусора.
Согласно интервью 2009 года, Томпсон использовал операционную систему на базе Linux . [31] В статье 2023 года говорилось о его давней привязанности к компьютерам Apple , но отмечалось, что недавно он перешел на устройство Raspbian . [32]
В 1980 году Томпсон был избран членом Национальной инженерной академии за «разработку UNIX, операционной системы, эффективность, широта, мощь и стиль которой определили эксплуатацию миникомпьютеров целым поколением » . [33] В 1985 году он был избран членом Национальной академии наук . [2]
В 1983 году Томпсон и Ричи совместно получили Премию Тьюринга «за разработку общей теории операционных систем и, в частности, за реализацию операционной системы UNIX». В своей благодарственной речи «Размышления о доверительном доверии» Томпсон обрисовал атаку в форме бэкдора компилятора , которая получила название « взлом Томпсона » или атака доверительного доверия и сама по себе широко считается плодотворной работой в области компьютерной безопасности. верно. [34]
В 1990 году Томпсон и Деннис Ритчи получили медаль IEEE Ричарда В. Хэмминга от Института инженеров по электротехнике и электронике (IEEE) «за создание операционной системы UNIX и языка программирования C». [35]
В 1997 году Томпсон и Ричи были удостоены звания членов Музея истории компьютеров за «совместное создание операционной системы UNIX и разработку языка программирования C». [36]
27 апреля 1999 года Томпсон и Ричи совместно получили Национальную медаль технологий 1998 года от президента Билла Клинтона за совместное изобретение операционной системы UNIX и языка программирования C, которые вместе «привели к огромному прогрессу в области компьютерного оборудования, программного обеспечения и сетевых технологий». систем и стимулировал рост всей отрасли, тем самым усилив лидерство Америки в век информации». [37]
В 1999 году Институт инженеров по электротехнике и электронике выбрал Томпсона для получения первой премии Цутому Канаи «за его роль в создании операционной системы UNIX, которая на протяжении десятилетий была ключевой платформой для работы распределенных систем». [38]
В 2011 году Томпсон вместе с Деннисом Ритчи был удостоен Японской премии в области информации и коммуникаций за новаторскую работу в разработке операционной системы Unix. [39]
Кен Томпсон женат, у него есть сын. [40] [19]
Источники