Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Малкольм Дуглас Макилрой (родился в 1932 г.) - математик , инженер и программист . По состоянию на 2019 год он является адъюнкт-профессором компьютерных наук в Дартмутском колледже . Макилрой наиболее известен тем, что первоначально предложил конвейеры Unix и разработал несколько инструментов Unix , таких как заклинание , сравнение , сортировка , соединение , граф , говорение и tr . [1] Он также был одним из первых исследователей макропроцессоров.и расширяемость языка программирования. Он участвовал в разработке нескольких влиятельных языков программирования, в частности, PL / I , SNOBOL , ALTRAN , TMG и C ++ .

Его основополагающая работа по компонентности программного обеспечения [2] и повторному использованию кода [3] [4] делает его пионером в разработке программного обеспечения на основе компонентов и разработке линейки программных продуктов .

Биография [ править ]

McIlroy получил свою степень бакалавра в области инженерных физики из Корнелльского университета , [5] и Ph.D. В 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] Идеи Макилроя по обработке макросов также послужили основным источником вдохновения для TRAC.макропроцессор. [13]

Он также соавтор процессора M6 макросъемки в FORTRAN IV , [14] , который был использован в Альтране [15] , а затем был перенесен на и включен в более ранние версии Unix . [16]

Вклад в Unix [ править ]

На протяжении 1960-х и 1970-х годов Макилрой создавал программы для Multics (например, RUNOFF [17] ) и операционных систем Unix (таких как diff , echo , tr , join and look [16] ), версии которых широко распространены по сей день благодаря принятию POSIX стандарт и Unix-подобных операционных систем. Он представил идею конвейеров Unix. [17] Он также реализовал компилятор-компилятор TMG в PDP-7 и PDP-11.монтаж, который стал первым язык программирования высокого уровня , работающим на Unix, побуждая развитие и влияние на Ken Thompson «s языка программирования B [17] и Стивен Джонсон Yacc парсер-генератор. [18]

Макилрой также принял от Денниса Ричи компиляцию руководства по Unix «в качестве любовного труда». В частности, он редактировал том 1 страниц руководства для версии 7 Unix. [19] По словам Сэнди Фрейзера : «Тот факт, что было руководство, в котором он [Макилрой] настаивал на высоких стандартах для руководства, означал, что он настаивал на высоких стандартах для каждой из программ, которые были задокументированы». [20]

Дизайн компьютерного языка [ править ]

Макилрой оказал влияние на разработку и реализацию языка программирования SNOBOL . Его макросы обработки строк широко использовались в первоначальной реализации SNOBOL в 1962 году и занимали видное место в последующей работе, что в конечном итоге привело к созданию машинно-независимого языка реализации SIL. Тип таблицы ( ассоциативный массив ) был добавлен в SNOBOL4 по настоянию Макилроя в 1969 году [21].

В 1960 году он участвовал в разработке PL / I язык программирования. [4] [22] Он был членом IBM - ДОЛЯ комитет , который разработал язык [23] и, вместе с Робертом Моррисом , написал Early PL / I (EPL) компилятор в TMG для Multics проекта. [24] [25]

Примерно в 1965 году Макилрой вместе с У. Стэнли Брауном реализовали оригинальную версию языка программирования ALTRAN для компьютеров IBM 7094 . [15] [10]

Макилрой также оказал значительное влияние на разработку языка программирования C ++ (например, он предложил оператор потокового вывода <<). [26]

Алгоритмы [ править ]

В 1990 - х годах, McIlroy работал над улучшением методов сортировки, в частности , он является соавтором оптимизированной QSort с Джоном Бентли . [27]

В 1969 году он представил эффективный алгоритм для генерации всех остовных деревьев в графе (впервые обнаруженный Джорджем Минти в 1965 году). [10] [28]

Награды и признание [ править ]

В 1995 году он был избран членом Американской ассоциации развития науки . [29] В 2004 году он получил награду USENIX Lifetime Achievement Award («Пламя») [30] и награду группы пользователей программных средств (STUG). [1] В 2006 году он был избран членом Национальной инженерной академии . [31]

Взгляды на вычисления [ править ]

Макилрою приписывают цитату «Настоящий герой программирования - тот, кто пишет отрицательный код» [32], где значение отрицательного кода аналогично известному анекдоту команды разработчиков Apple [33] (т.е. когда изменение в исходном коде программы уменьшает количество строк кода («отрицательный» код), в то время как его общее качество, удобочитаемость или скорость улучшаются).

См. Также [ править ]

  • Дарвин (игра по программированию)
  • Гомоиконность
  • Философия Unix

Ссылки [ править ]

  1. ^ a b "Премия STUG" . USENIX . Проверено 5 февраля 2020 года .
  2. ^ Баун, Родни Л., изд. (2–5 июня 1986 г.). «Первая международная конференция по приложениям языка программирования Ada (R) для космической станции НАСА, том 2 - NASA-TM-101202» (PDF) .
  3. ^ Макилрой, Малкольм Дуглас (январь 1969). «Серийные программные компоненты» (PDF) . Software Engineering: Отчет о конференции , организованной Научного комитета НАТО, Гармиш, Германия, 7-11 октября 1968 года . Отдел по научным вопросам, НАТО. п. 79.
  4. ^ а б Эндрес, Альберт; Ромбах, Х. Дитер (2003). Справочник по программному обеспечению и системной инженерии: эмпирические наблюдения, законы и теории . Pearson Education. п. 327.
  5. ^ a b c d e е "Дуглас Макилрой" . HOPL: Интернет-историческая энциклопедия языков программирования .
  6. ^ "М. Дуглас (Малкольм) Макилрой" . Проект «Математическая генеалогия» . Проверено 7 февраля 2020 года .
  7. ^ a b Лейзелл, П. (1985). «История использования макросов в расширяемости языков программирования» . Компьютерный журнал . 28 (1): 29–33. DOI : 10.1093 / comjnl / 28.1.29 .
  8. ^ Дэвид Уолден (2014). «Макро-воспоминания, 1964–2013» (PDF) . ТУГбоат . 35 (1).
  9. ^ Кришнамурти, Шрирам; Фелляйзен, Матиас; Дуба, Брюс Ф. (2000). Чарнецкий, Кшиштоф; Эйзенекер, Ульрих В. (ред.). «От макросов к многоразовому генеративному программированию» (PDF) . Генеративная и компонентная разработка программного обеспечения . Конспект лекций по информатике. Берлин, Гейдельберг: Springer. 1799 : 105–120. DOI : 10.1007 / 3-540-40048-6_9 . ISBN  978-3-540-40048-6. Архивировано из оригинального (PDF) 25 ноября 2004 года.
  10. ^ a b c d Холбрук, Бернард Д.; Браун, У. Стэнли. "Технический отчет по вычислительной науке № 99 - История компьютерных исследований в Bell Laboratories (1937–1975)" . Bell Labs . Архивировано из оригинала на 2 сентября 2014 года . Проверено 2 февраля 2020 года .
  11. ^ «Macro SAP - Модификация компилятора макросов SAP» . HOPL: Интернет-историческая энциклопедия языков программирования . Архивировано из оригинального 13 августа 2008 года.
  12. ^ "Bell SAP - SAP с условными и рекурсивными макросами" . HOPL: Интернет-историческая энциклопедия языков программирования . Архивировано из оригинального 21 августа 2007 года.
  13. ^ Муерс, CN ; Дойч, LP (1965). "TRAC, язык обработки текста". Материалы ACM '65 Материалы 20-й национальной конференции 1965 года . С. 229–246. DOI : 10,1145 / 800197.806048 . S2CID 40013081 . 
  14. Перейти ↑ Cole, AJ (1981). Макро процессоры (2-е, исправленное изд.). КУБОК Архив. п. 254.
  15. ^ а б Холл, AD, "Система ALTRAN для рационального управления функциями - обзор". Сообщения ACM , 14 (8): 517–521 (август 1971).
  16. ^ а б Макилрой, доктор медицины (1987). Читатель Research Unix: аннотированные выдержки из Руководства программиста, 1971–1986 (PDF) (технический отчет). Вычислительная наука. AT&T Bell Laboratories. 139.
  17. ^ a b c Ричи, Деннис М. (1984). «Эволюция системы разделения времени Unix» . Технический журнал AT&T Bell Laboratories . 63 (6 часть 2): 1577–93. DOI : 10.1002 / j.1538-7305.1984.tb00054.x . Архивировано из оригинала 6 мая 2010 года.В формате PDF
  18. ^ Джонсон, Стивен С. (1975). Yacc: Еще один компилятор-компилятор (Технический отчет). Мюррей Хилл, Нью-Джерси: AT&T Bell Laboratories. 32 . Проверено 31 января 2020 года .
  19. ^ Дзонсонс, Кристапс; Шварце, Инго. "История UNIX Manpages" . Практические руководства UNIX .
  20. ^ «Создание операционной системы UNIX» . Bell Labs. Архивировано из оригинального 14 сентября 2004 года.
  21. ^ Грисволд, Ральф (1978). «История языков программирования СНОБОЛ». Уведомления ACM SIGPLAN . ACM. 13 (8): 275–308. DOI : 10.1145 / 960118.808393 . ISSN 0362-1340 . S2CID 5413577 .  
  22. ^ Лоусон, Гарольд ; Бромберг, Ховард (12 июня 1997 г.). «Первые в мире компиляторы COBOL» . Архивировано из оригинала на 4 июня 2004 года.
  23. Майкл С. Махони (18 августа 1989 г.). «Интервью с доктором медицины Макилроем» . Princeton.edu . Мюррей Хилл.
  24. ^ RA Frieburghouse. "Компилятор Multics PL / 1" . MultICAL.org .
  25. Том Ван Флек (ред.). «Выбор PL / I» . MultICAL.org .
  26. ^ Страуструп, Бьярн . «История C ++: 1979–1991» (PDF) .
  27. ^ Джон Л. Бентли; М. Дуглас Макилрой (ноябрь 1993 г.). «Разработка функции сортировки». Программное обеспечение - практика и опыт . 23 (11).
  28. ^ Нарсингх Deo (1974). Теория графов с приложениями к технике и информатике . Прентис-Холл. п. 480.
  29. ^ «Избранные стипендиаты: список стипендиатов, которые являются текущими членами» . aaas.org . Американская ассоциация развития науки.
  30. ^ «Премия пламени» . USENIX . Проверено 5 февраля 2020 года .
  31. ^ "Доктор М. Дуглас Макилрой" . nae.edu . Национальная инженерная академия . Проверено 5 февраля 2020 года .
  32. ^ Эти цитаты были услышаны во время разговора он дал DLSLUG 12/3/09
  33. ^ «Исходный код MacPaint и QuickDraw» . Музей истории компьютеров .

Внешние ссылки [ править ]

  • Главная Дуг Макилрой ( архив страницу на веб - сайте Bell Labs)
  • биография
  • Дуг Макилрой Факты
  • История речи (аудио) Макилроя в Unix включает множество автобиографических заметок, а также обсуждение многих основных авторов Unix.
  • Ancestry of Linux - How the Fun Began , презентация, ноябрь 2005 г .: (презентация) (аудио) (видео)
  • Оригинальный исходный код заклинаний для UNIX, написанный Дугом Макилроем
  • Публикации доктора медицины Макилроя - https://www.cs.dartmouth.edu