Дуглас Макилрой
Малкольм Дуглас Макилрой | |
---|---|
Рожденный | Ньюбург, Нью-Йорк | 24 апреля 1932 г.
Альма-матер | Корнелльский университет (бакалавр наук, 1954 г.) Массачусетский технологический институт (доктор философии, 1959 г.) |
Известный | Макросы , Конвейеры Unix , Философия Unix , программные компоненты , echo , diff , sort , join , RUNOFF , tr , Руководство по Unix |
Научная карьера | |
Поля | Информатика , математика , инженерия |
Диссертация | О решении дифференциальных уравнений конических оболочек (1959) |
Докторские консультанты | Эрик Рейсснер |
Веб-сайт | www |
Малкольм Дуглас Макилрой (род. 1932) — американский математик , инженер и программист . По состоянию на 2019 год он является адъюнкт-профессором компьютерных наук в Дартмутском колледже . Макилрой наиболее известен тем, что первоначально предложил конвейеры Unix и разработал несколько инструментов Unix , таких как Spell , diff , sort , join , Graph , Speak и tr . [ 1 ] Он также был одним из первых исследователей макропроцессоров и расширяемости языков программирования. Он участвовал в разработке нескольких влиятельных языков программирования, в частности PL/I , SNOBOL , ALTRAN , TMG и C++ .
Его плодотворная работа по компонентизации программного обеспечения. [ 2 ] и повторное использование кода [ 3 ] [ 4 ] делает его пионером в области компонентной разработки программного обеспечения и разработки линеек программных продуктов .
Биография
[ редактировать ]Макилрой получил степень бакалавра инженерной физики в Корнелльском университете . [ 5 ] и доктор философии. получил степень бакалавра прикладной математики в Массачусетском технологическом институте в 1959 году за диссертацию «О решении дифференциальных уравнений конических оболочек» (руководитель Эрик Рейсснер ). [ 6 ] Он преподавал в Массачусетском технологическом институте с 1954 по 1958 год. [ 5 ]
Макилрой присоединился к Bell Laboratories в 1958 году; с 1965 по 1986 год был главой исследовательского отдела вычислительной техники (место рождения операционной системы Unix), а затем был почетным членом технического персонала. [ 5 ]
С 1967 по 1968 год Макилрой также работал приглашенным лектором в Оксфордском университете . [ 5 ]
В 1997 году Макилрой ушел из Bell Labs и занял должность адъюнкт-профессора на факультете компьютерных наук Дартмутского колледжа . [ 5 ]
Ранее он работал в Ассоциации вычислительной техники в качестве национального лектора, председателя Премии Тьюринга , члена комитета по планированию публикаций и заместителя редактора Communications of the ACM , Journal of the ACM и ACM Transactions on Programming Languages and Systems . Он также входил в состав исполнительного комитета CSNET . [ 5 ]
Исследования и вклад
[ редактировать ]Макропроцессоры
[ редактировать ]Макилрой считается пионером макропроцессоров . [ 7 ] [ 8 ] [ 9 ] В 1959 году вместе с Дугласом Иствудом из Bell Labs он представил условные и рекурсивные макросы в популярный SAP . ассемблер [ 10 ] создание так называемого Macro SAP. [ 11 ] Его статья 1960 года также была плодотворной в области расширения любых языков программирования (включая языки высокого уровня ) с помощью макропроцессоров. [ 7 ] [ 10 ] Эти вклады положили начало традиции макроязыков в Bell Labs («все, от L6 и AMBIT до C»). [ 12 ] Идеи Макилроя по обработке макросов также послужили основным источником вдохновения для TRAC . макропроцессора [ 13 ]
Он также является соавтором макропроцессора M6 на FORTRAN IV . [ 14 ] который использовался в ALTRAN [ 15 ] а позже был портирован и включен в ранние версии Unix . [ 16 ]
Вклад в Unix
[ редактировать ]На протяжении 1960-х и 1970-х годов Макилрой участвовал в программах для Multics (таких как RUNOFF [ 17 ] ) и операционные системы Unix (такие как diff , echo , tr , join и посмотрите [ 16 ] ), версии которого широко распространены по сей день благодаря принятию стандарта POSIX и Unix-подобных операционных систем. Он представил идею конвейеров Unix. [ 17 ] Он также реализовал TMG компилятор-компилятор в ассемблерах PDP-7 и PDP-11 , которые стали первым языком программирования высокого уровня, работающим в Unix, что стимулировало разработку и повлияло на Кена Томпсона B. язык программирования [ 17 ] Стивена Джонсона и синтаксический анализатор-генератор Yacc . [ 18 ]
Макилрой также взял на себя обязанности Денниса Ритчи по составлению руководства по Unix «как любимому труду». В частности, он редактировал первый том страниц руководства для версии 7 Unix. [ 19 ] По словам Сэнди Фрейзера : «Тот факт, что существовало руководство, и что он [Макилрой] настаивал на высоких стандартах для руководства, означал, что он настаивал на высоких стандартах для каждой из документированных программ». [ 20 ]
Компьютерный языковой дизайн
[ редактировать ]Макилрой повлиял на разработку и реализацию языка программирования SNOBOL . Его макросы для манипуляций со строками широко использовались в первоначальной реализации SNOBOL 1962 года и занимали видное место в последующих работах, что в конечном итоге привело к созданию машинно-независимого языка реализации SIL. Тип таблицы ( ассоциативный массив ) был добавлен в SNOBOL4 по настоянию Макилроя в 1969 году. [ 21 ]
В 1960-х годах он участвовал в разработке языка программирования PL/I . [ 4 ] [ 22 ] Он был членом комитета IBM – SHARE , который разработал язык. [ 23 ] и вместе с Робертом Моррисом написал компилятор Early PL/I (EPL) в TMG для проекта Multics . [ 24 ] [ 25 ]
Примерно в 1965 году Макилрой вместе с У. Стэнли Брауном реализовал оригинальную версию языка программирования ALTRAN для компьютеров IBM 7094 . [ 15 ] [ 10 ]
Макилрой также оказал значительное влияние на разработку языка программирования C++ (например, он предложил оператор потокового вывода <<
). [ 26 ]
Алгоритмы
[ редактировать ]написал оптимизированную qsort В 1990-х годах Макилрой работал над улучшением методов сортировки, в частности, он вместе с Джоном Бентли . [ 27 ]
В 1969 году он разработал эффективный алгоритм для создания всех остовных деревьев в графе (впервые обнаруженный Джорджем Минти в 1965 году). [ 10 ] [ 28 ]
Награды и признание
[ редактировать ]В 1995 году он был избран членом Американской ассоциации содействия развитию науки . [ 29 ] В 2004 году он выиграл премию USENIX за заслуги перед жанром («Пламя»). [ 30 ] и награда группы пользователей программных средств (STUG). [ 1 ] В 2006 году он был избран членом Национальной инженерной академии . [ 31 ]
Взгляды на компьютеры
[ редактировать ]Макилрою приписывают цитату: «Настоящий герой программирования — тот, кто пишет негативный код». [ 32 ] где смысл отрицательного кода аналогичен знаменитому Apple разработчику Биллу Аткинсону , командному анекдоту [ 33 ] (т. е. когда изменение исходного кода программы приводит к уменьшению количества строк кода («негативный» код), в то время как его общее качество, читаемость или скорость улучшаются).
См. также
[ редактировать ]Литература
[ редактировать ]- Брок, Дэвид С.; Макилрой, Малкольм Д. (30 сентября 2019 г.). Макилрой, Малкольм (Дуг) Устная история Дугласа, часть 1 из 2 . Музей истории компьютеров . п. 59.
- Брок, Дэвид С.; Макилрой, Малкольм Д. (6 ноября 2019 г.). Макилрой, Малкольм (Дуг) Устная история Дугласа, часть 2 из 2 . Музей истории компьютеров. п. 52.
Ссылки
[ редактировать ]- ^ Перейти обратно: а б «Премия СТЮГ» . УСЕНИКС. 6 декабря 2011 года . Проверено 5 февраля 2020 г.
- ^ Баун, Родни Л., изд. (2–5 июня 1986 г.). «Первая международная конференция по приложениям языка программирования Ada (R) для космической станции НАСА, том 2 - NASA-TM-101202» (PDF) .
- ^ Макилрой, Малкольм Дуглас (январь 1969 г.). «Компоненты программного обеспечения массового производства» (PDF) . Программная инженерия: отчет конференции, спонсируемой Научным комитетом НАТО, Гармиш, Германия, 7–11 октября 1968 г. Отдел по научным вопросам НАТО. п. 79.
- ^ Перейти обратно: а б Эндрес, Альберт; Ромбах, Х. Дитер (2003). Справочник по программному обеспечению и системной инженерии: эмпирические наблюдения, законы и теории . Пирсон Образование. п. 327.
- ^ Перейти обратно: а б с д и ж «Дуглас Макилрой» . HOPL: Интернет-историческая энциклопедия языков программирования .
- ^ «М. Дуглас (Малкольм) Макилрой» . Проект математической генеалогии . Проверено 7 февраля 2020 г.
- ^ Перейти обратно: а б Лейзелл, П. (1985). «История макропроцессоров в расширяемости языков программирования» . Компьютерный журнал . 28 (1): 29–33. дои : 10.1093/comjnl/28.1.29 .
- ^ Дэвид Уолден (2014). «Макровоспоминания, 1964–2013» (PDF) . БУКСИР . 35 (1).
- ^ Кришнамурти, Шрирам; Феллейзен, Матиас; Дуба, Брюс Ф. (2000). «От макросов к многоразовому генеративному программированию» (PDF) . В Чарнецком, Кшиштоф; Эйзенекер, Ульрих В. (ред.). Генеративная и компонентная разработка программного обеспечения . Конспекты лекций по информатике. Том. 1799. Берлин, Гейдельберг: Springer. стр. 105–120. дои : 10.1007/3-540-40048-6_9 . ISBN 978-3-540-40048-6 . S2CID 2576063 . Архивировано из оригинала (PDF) 25 ноября 2004 г.
- ^ Перейти обратно: а б с д Холбрук, Бернард Д.; Браун, В. Стэнли. «Технический отчет по информатике № 99 - История компьютерных исследований в Bell Laboratories (1937–1975)» . Лаборатории Белла . Архивировано из оригинала 2 сентября 2014 года . Проверено 2 февраля 2020 г.
- ^ «Макро SAP – модификация макрокомпилятора SAP» . HOPL: Интернет-историческая энциклопедия языков программирования . Архивировано из оригинала 13 августа 2008 года.
- ^ «Bell SAP – SAP с условными и рекурсивными макросами» . HOPL: Интернет-историческая энциклопедия языков программирования . Архивировано из оригинала 21 августа 2007 года.
- ^ Мурс, Китай ; Дойч, LP (1965). «TRAC, язык обработки текста». Труды ACM '65 Материалы 20-й национальной конференции 1965 года . стр. 229–246. дои : 10.1145/800197.806048 . S2CID 40013081 .
- ^ Коул, Эй Джей (1981). Макропроцессоры (2-е, исправленное изд.). Архив Кубка. п. 254.
- ^ Перейти обратно: а б Холл, А.Д., «Система ALTRAN для рационального манипулирования функциями — обзор». Сообщения ACM , 14 (8): 517–521 (август 1971 г.).
- ^ Перейти обратно: а б Макилрой, доктор медицины (1987). Читатель Research Unix: аннотированные выдержки из Руководства программиста, 1971–1986 (PDF) (Технический отчет). Вычислительная наука. Лаборатории AT&T Bell. 139.
- ^ Перейти обратно: а б с Ричи, Деннис М. (1984). «Эволюция системы разделения времени Unix» . Технический журнал AT&T Bell Laboratories . 63 (6 Часть 2): 1577–93. дои : 10.1002/j.1538-7305.1984.tb00054.x . Архивировано из оригинала 6 мая 2010 года. В формате PDF.
- ^ Джонсон, Стивен С. (1975). Yacc: Еще один компилятор-компилятор (Технический отчет). Мюррей Хилл, Нью-Джерси: AT&T Bell Laboratories. 32 . Проверено 31 января 2020 г.
- ^ Дзонсонс, Кристапс; Шварце, Инго. «История страниц руководства UNIX» . Практические руководства по UNIX .
- ^ «Создание операционной системы UNIX» . Лаборатории Белла. Архивировано из оригинала 14 сентября 2004 года.
- ^ Грисволд, Ральф (1978). «История языков программирования СНОБОЛ». Уведомления ACM SIGPLAN . 13 (8). АКМ: 275–308. дои : 10.1145/960118.808393 . ISSN 0362-1340 . S2CID 5413577 .
- ^ Лоусон, Гарольд ; Бромберг, Ховард (12 июня 1997 г.). «Первые в мире компиляторы COBOL» . Архивировано из оригинала 4 июня 2004 года.
- ^ Майкл С. Махони (18 августа 1989 г.). «Интервью с доктором медицины Макилроем» . Princeton.edu . Мюррей Хилл.
- ^ РА Фрибургхаус. «Компилятор Multics PL/1» . Multicians.org .
- ^ Том Ван Флек (ред.). «Выбор ПЛ/И» . Multicians.org .
- ^ Страуструп, Бьерн . «История C++: 1979–1991» (PDF) .
- ^ Джон Л. Бентли; М. Дуглас Макилрой (ноябрь 1993 г.). «Разработка функции сортировки». Программное обеспечение — практика и опыт . 23 (11).
- ^ Нарсингх Део (1974). Теория графов с приложениями к технике и информатике . Прентис-Холл. п. 480.
- ^ «Избранные члены: список членов, которые являются действующими членами» . aaas.org . Американская ассоциация содействия развитию науки.
- ^ «Премия Пламя» . УСЕНИКС. 6 декабря 2011 года . Проверено 5 февраля 2020 г.
- ^ «Доктор М. Дуглас Макилрой» . наэ.еду . Национальная инженерная академия . Проверено 5 февраля 2020 г.
- ↑ Эти цитаты были услышаны во время выступления, которое он дал DLSLUG 3 декабря 2009 г.
- ^ «Исходный код MacPaint и QuickDraw» . Музей истории компьютеров . 18 июля 2010 г.
Внешние ссылки
[ редактировать ]- Белл Лаборатории
- архивная домашняя страница Bell Labs
- Выступление Макилроя «История Unix» (аудио) включает множество автобиографических заметок, а также обсуждение многих основных авторов Unix.
- cs.dartmouth.edu
- Домашняя страница Дуга Макилроя
- Биография
- Публикации доктора медицины Макилроя
- Факты о Дуге Макилрое
- Происхождение Linux
- Ancestry of Linux - How the Fun Began. Архивировано 3 августа 2020 г. на Wayback Machine , презентация, ноябрь 2005 г.: (презентация). Архивировано 2 августа 2020 г. на Wayback Machine (аудио). Архивировано 2 августа 2020 г. на Wayback Machine ( видео)
- code.google.com