Дуглас Макилрой - Douglas McIlroy
Малкольм Дуглас Макилрой | |
---|---|
Макилрой в Japan Prize Foundation в 2011 году | |
Родился | 1932 (87–88 лет) |
Альма-матер | Корнелл Университет (Б.С., 1954) Массачусетский Институт Технологий (Доктор философии, 1959) |
Известен | Макросы, Конвейеры Unix, Философия Unix, программные компоненты, эхо, разница, Сортировать, присоединиться, roff, tr, Руководство по Unix |
Научная карьера | |
Поля | Информатика, математика, инженерное дело |
Тезис | О решении дифференциальных уравнений конических оболочек. (1959) |
Докторанты | Эрик Рейсснер |
Интернет сайт | www |
Малкольм Дуглас Макилрой (родился в 1932 г.) математик, инженер, и программист. По состоянию на 2019 год он является адъюнкт-профессором кафедры Информатика в Дартмутский колледж.McIlroy наиболее известен тем, что первоначально предложил Конвейеры Unix и разработал несколько Unix инструменты, такие как орфографии, разница, Сортировать, присоединиться, график, разговаривать, и tr.[1] Он также был одним из первых исследователей макропроцессоры и расширяемость языка программирования. Он участвовал в разработке нескольких влиятельных языков программирования, в частности PL / I, СНОБОЛ, АЛЬТРАН, 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]
Ранее он служил Ассоциация вычислительной техники как национальный лектор, Премия Тьюринга председатель, член комитета по планированию публикаций и заместитель редактора Коммуникации ACM, то Журнал ACM, и Транзакции ACM по языкам и системам программирования. Он также работал в исполнительном комитете CSNET.[5]
Исследования и вклад
Макро процессоры
Макилрой считается пионером макропроцессоры.[7][8][9] В 1959 году вместе с Дугласом Иствудом из Bell Labs он ввел условные и рекурсивные макросы в популярные SAP ассемблер[10] создание того, что известно как Macro SAP.[11] Его статья 1960 года также была плодотворной в области расширения любых (включая высокий уровень ) языков программирования через макропроцессоры.[7][10] Эти вклады положили начало традиции макроязыка в Bell Labs («все, от L6 и AMBIT до C»).[12] Идеи Макилроя по обработке макросов также послужили основным источником вдохновения для ПРОФ макропроцессор.[13]
Он также был соавтором макропроцессора M6 в FORTRAN IV,[14] который использовался в АЛЬТРАН[15] а позже был перенесен и включен в ранние версии Unix.[16]
Вклад в Unix
На протяжении 1960-х и 1970-х годов Макилрой создавал программы для Мультики (такие как сток[17]) и Unix операционные системы (такие как разница, эхо, tr, присоединиться и смотрю[16]), версии которых широко распространены по сей день благодаря принятию POSIX стандарт и Unix-подобный операционные системы. Он представил идею конвейеров Unix.[17] Он также реализовал TMG компилятор-компилятор в PDP-7 и PDP-11 ассемблер, который стал первым языком программирования высокого уровня, работающим в Unix, что стимулировало разработку и повлияло на Кен Томпсон с Язык программирования B[17] и Стивена Джонсона Yacc парсер-генератор.[18]
Макилрой также сменил Деннис Ричи составление Руководство по Unix «как труд любви». В частности, он редактировал том 1 справочных страниц для версии 7 Unix.[19] Согласно с Сэнди Фрейзер: «Тот факт, что было руководство, что он [Макилрой] настаивал на высоких стандартах для руководства, означал, что он настаивал на высоких стандартах для каждой из программ, которые были задокументированы».[20]
Дизайн компьютерного языка
Макилрой оказал влияние на разработку и реализацию СНОБОЛ язык программирования. Его макросы для обработки строк широко использовались в первоначальной реализации SNOBOL в 1962 году и занимали видное место в последующей работе, что в конечном итоге привело к созданию машинно-независимого языка реализации SIL. Тип таблицы (ассоциативный массив ) был добавлен в СНОБОЛ4 по настоянию Макилроя в 1969 году.[21]
В 1960-х участвовал в разработке PL / I язык программирования.[4][22] Он был членом IBM –ДОЛЯ комитет, который разработал язык[23] и вместе с Роберт Моррис написал Ранний PL / I (EPL) компилятор в TMG для Мультики проект.[24][25]
Примерно в 1965 году Макилрой вместе с У. Стэнли Брауном реализовали оригинальную версию АЛЬТРАН язык программирования для IBM 7094 компьютеры.[15][10]
Макилрой также оказал значительное влияние на дизайн языка программирования. C ++ (например, он предложил оператор вывода потока <<
).[26]
Алгоритмы
В 1990-х Макилрой работал над улучшением методов сортировки, в частности, он был соавтором оптимизированной qsort с Джон Бентли.[27]
В 1969 году он разработал эффективный алгоритм для генерации всех остовные деревья в график (впервые обнаружен Джорджем Минти в 1965 году).[10][28]
Награды и признание
В 1995 году он был избран членом Американская ассоциация развития науки.[29] В 2004 году он выиграл обе USENIX Премия за заслуги в жизни («Пламя»)[30] и награду группы пользователей программных средств (STUG).[1] В 2006 году он был избран членом Национальная инженерная академия.[31]
Взгляды на вычисления
Макилрою приписывают цитату: «Настоящий герой программирования - тот, кто пишет отрицательный код»,[32] где смысл отрицательный код считается похожим на знаменитый яблоко анекдот команды разработчиков[33] (то есть, когда изменение в программе источник делает количество строки кода уменьшается («отрицательный» код), при этом улучшается его общее качество, читаемость или скорость).
Смотрите также
Рекомендации
- ^ а б "Премия STUG". USENIX. Получено 5 февраля, 2020.
- ^ Баун, Родни Л., изд. (2–5 июня 1986 г.). "Первая международная конференция по приложениям языка программирования Ada (R) для космической станции НАСА, том 2 - NASA-TM-101202" (PDF).
- ^ Макилрой, Малкольм Дуглас (январь 1969). «Программные компоненты массового производства» (PDF). Программная инженерия: отчет о конференции, организованной Научным комитетом НАТО, Гармиш, Германия, 7–11 октября 1968 г.. Отдел по научным вопросам, НАТО. п. 79.
- ^ а б Эндрес, Альберт; Ромбах, Х. Дитер (2003). Справочник по программному обеспечению и системной инженерии: эмпирические наблюдения, законы и теории. Pearson Education. п. 327.
- ^ а б c d е ж "Дуглас Макилрой". HOPL: Интернет-историческая энциклопедия языков программирования.
- ^ "М. Дуглас (Малкольм) Макилрой". Проект "Математическая генеалогия". Получено 7 февраля, 2020.
- ^ а б Лейзелл, П. (1985). «История использования макросов в расширяемости языков программирования». Компьютерный журнал. 28 (1): 29–33. Дои:10.1093 / comjnl / 28.1.29.
- ^ Дэвид Уолден (2014). «Макро воспоминания, 1964–2013» (PDF). ТУГбоат. 35 (1).
- ^ Кришнамурти, Шрирам; Фелляйзен, Матиас; Дуба, Брюс Ф. (2000). Чарнецкий, Кшиштоф; Эйзенекер, Ульрих В. (ред.). «От макросов к многоразовому генеративному программированию» (PDF). Генеративная и компонентная разработка программного обеспечения. Конспект лекций по информатике. Берлин, Гейдельберг: Springer. 1799: 105–120. Дои:10.1007/3-540-40048-6_9. ISBN 978-3-540-40048-6. Архивировано из оригинал (PDF) 25 ноября 2004 г.
- ^ а б c d Холбрук, Бернард Д.; Браун, У. Стэнли. "Технический отчет по компьютерным наукам № 99 - История компьютерных исследований в Bell Laboratories (1937–1975)". Bell Labs. Архивировано из оригинал 2 сентября 2014 г.. Получено 2 февраля, 2020.
- ^ «Macro SAP - Модификация макроса компилятора SAP». HOPL: Интернет-историческая энциклопедия языков программирования. Архивировано из оригинал 13 августа 2008 г.
- ^ «Bell SAP - SAP с условными и рекурсивными макросами». HOPL: Интернет-историческая энциклопедия языков программирования. Архивировано из оригинал 21 августа 2007 г.
- ^ Муерс, К.; Дойч, Л. (1965). "TRAC, язык обработки текста". Proceeding ACM '65 Proceedings 20-й национальной конференции 1965 г.. С. 229–246. Дои:10.1145/800197.806048. S2CID 40013081.
- ^ Коул, А. Дж. (1981). Макро процессоры (2-е, перераб.). CUP Архив. п. 254.
- ^ а б Холл, А.Д., "Система ALTRAN для рационального управления функциями - обзор". Коммуникации ACM, 14 (8): 517–521 (август 1971).
- ^ а б Макилрой, М.Д. (1987). Читатель Research Unix: аннотированные выдержки из Руководства программиста, 1971–1986 (PDF) (Технический отчет). Вычислительная наука. AT&T Bell Laboratories. 139.
- ^ а б c Ричи, Деннис М. (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 Manpages». Практические руководства UNIX.
- ^ «Создание операционной системы UNIX». Bell Labs. Архивировано из оригинал 14 сентября 2004 г.
- ^ Грисволд, Ральф (1978). «История языков программирования СНОБОЛ». Уведомления ACM SIGPLAN. ACM. 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". MultICAL.org.
- ^ Том Ван Влек (ред.). «Выбор PL / I». MultICAL.org.
- ^ Страуструп, Бьярне. «История C ++: 1979–1991» (PDF).
- ^ Джон Л. Бентли; М. Дуглас Макилрой (Ноябрь 1993 г.). «Разработка функции сортировки». Программное обеспечение - практика и опыт. 23 (11).
- ^ Нарсинг Део (1974). Теория графов с приложениями в инженерии и информатике. Прентис-Холл. п. 480.
- ^ «Избранные стипендиаты: список стипендиатов, которые являются нынешними членами». aaas.org. Американская ассоциация развития науки.
- ^ «Награда пламени». USENIX. Получено 5 февраля, 2020.
- ^ "Доктор М. Дуглас Макилрой". nae.edu. Национальная инженерная академия. Получено 5 февраля, 2020.
- ^ Эти цитаты были услышаны во время выступления на DLSLUG 12/3/09.
- ^ «Исходный код MacPaint и QuickDraw». Музей истории компьютеров.
внешняя ссылка
- Домашняя страница Дуга Макилроя (архив домашняя страница на сайте Bell Labs)
- биография
- Факты о Дуге Макилрое
- История языка Unix Макилроя (аудио), включает множество автобиографических заметок, а также обсуждение многих основных авторов Unix.
- Происхождение Linux - как начиналось веселье, презентация ноябрь 2005 г .: (презентация) (аудио) (видео)
- Оригинальный исходный код заклинаний для UNIX, написанный Дугом Макилроем
- Публикации М. Д. Макилроя - https://www.cs.dartmouth.edu