Эндрю Кениг (программист) - Andrew Koenig (programmer)

Эндрю Р. Кениг
РодившийсяИюнь 1952 г. (1952-06) (возраст68)
НациональностьАмериканец
Альма-матерКолумбийский университет (Бакалавр математики; Магистр компьютерных наук, 1977)
Род занятийСпециалист в области информатики
ИзвестенC ++, программирование, написание "Поиск по Кенигу ", "антипаттерн "
Известная работа
C Ловушки и подводные камни (1988)
Размышления о C ++ (1997)
Ускоренный C ++ (2000)
Супруг (а)Барбара Э. Му
Родители)Сеймур Х. Кениг
Харриет Кениг [1]
Интернет сайтwww.acceleratedcpp.com/авторы/ koenig

Эндрю Ричард Кениг (IPA: [ˈKøːnɪç]; родился в июне 1952 г.) AT&T и Bell Labs исследователь и программист.[2] Он автор C Ловушки и подводные камни и соавтор (с Барбара Му ) из Ускоренный C ++ и Размышления о C ++, а его имя связано с поиск имени в зависимости от аргумента, также известный как «поиск по Кенигу».[3] Он работал редактором проекта комитета стандартов ISO / ANSI для C ++,[4] автор более 150 работ по C ++, и внесен в список изобретателей по четырем патентам.[5]

Ранняя жизнь и карьера

Кениг родился в Нью-Йорк и является сыном физика доктора Сеймура Х. Кенига,[6] бывший директор Лаборатория IBM Watson и Харриет Кениг, автор и коллекционер произведений искусства американских индейцев.[7]

Он окончил Высшая школа науки Бронкса в 1968 г. [8] и получил степень бакалавра наук и степень магистра наук от Колумбийский университет в Нью-Йорке. Он был видным членом Центра вычислительной деятельности Колумбийского университета (CUCCA) в конце 1960-х и 1970-х годах. Он написал первую программу электронной почты, используемую в университете.[9]

В 1977 году он присоединился к техническому персоналу Bell Labs в Мюррей Хилл, Нью-Джерси, из которой он позже ушел на пенсию.

Первая книга, которую он написал в 1987 году, C Ловушки и подводные камни, был мотивирован его предыдущей бумагой и работой, в основном в качестве сотрудника Колумбийского университета, на другом компьютерном языке, PL / I. В 1977 году, будучи недавно нанятым сотрудником Bell Labs, он представил доклад под названием «Ловушки и ловушки PL / I» на ПОДЕЛИТЬСЯ встреча в Вашингтоне, округ Колумбия[10]

Патенты

  • Система аутентификации пользователей, использующая функции шифрования, №4 590 470. «Сочетает в себе случайную аутентификацию с открытым ключом« вызов-ответ »с сокрытием алгоритма аутентификации в устройстве, которое делает доступными только входы и выходы алгоритма. Это защищает сеанс от перехвата и воспроизведения и не требует секретной информации на хосте».
  • Хранение деревьев в судоходном виде, № 5 530 957. «Метод хранения деревьев (например, представлений исходных программ в среде программирования), который полностью устраняет накладные расходы на пространство, обычно связанные с хранением указателей, но при этом разрешает общие операции навигации с разумной эффективностью по времени».
  • Метод и устройство для синтаксического анализа исходного кода с использованием префиксного анализа, № 5,812,853, «Методика ускорения предварительной обработки, такой как предварительная обработка макросов, в компиляторе путем запоминания полезных строк префикса входной программы в древовидной структуре данных и их ввода с помощью ключей. строки в запоминаемые состояния компилятора ".
  • Способ и устройство для пейджинга альтернативных пользователей, № 6,057,782, «Идея разрешить системам пейджинга, которые поддерживают подтверждения, переупорядочивать их список адресатов для будущих страниц на основе подтверждения или отсутствия такового на предыдущих страницах».

Избранная библиография

Книги

  • Кениг, Эндрю, C Ловушки и подводные камни, Ридинг, Массачусетс: Аддисон-Уэсли, 1988, c1989. ISBN  0-201-17928-8
  • Кениг, Эндрю; Му, Барбара, Размышления о C ++, Аддисон-Уэсли, 1997. ISBN  0-201-42339-1
  • Кениг, Эндрю; Му, Барбара, Ускоренный C ++, Аддисон-Уэсли, 2000.ISBN  0-201-70353-X

Статьи

1999

  • Эндрю Кениг, Барбара Му: обучение стандартному C ++, часть 2. Журнал объектно-ориентированного программирования (JOOP) 11 (8): 64-67 (1999)
  • Эндрю Кениг, Барбара Му: Обучение стандартному C ++, часть 3. JOOP 11 (9): 59-63 (1999)

1998

  • Тихая революция. JOOP 10 (8): 10–13, 16 (1998)
  • Репортаж из Морристауна. JOOP 10 (9): 5-8 (1998)
  • Революция программирования в языках, основанных на объектной логике. JOOP 11 (1): 13-16 (1998)
  • Абстракция - это хорошо? JOOP 11 (2): 66-69 (1998).
  • Моделирование динамических типов в C ++, часть 1. JOOP 11 (3): 76–78, 80 (1998)
  • Моделирование динамических типов в C ++, часть 2. JOOP 11 (4): 63-67 (1998)
  • Почему векторы эффективны? JOOP 11 (5): 71-75 (1998).
  • Стандартная закуска C ++. JOOP 11 (6): 85-87 (1998).
  • Эндрю Кениг, Барбара Му: преподавание стандартного C ++. JOOP 11 (7): 11-17 (1998)

1997

  • C ++ в классе: взгляд в будущее. JOOP 10 (1): 59-61 (1997).
  • Вывернув интерфейс наизнанку. JOOP 10 (2): 56-58 (1997)
  • Какому контейнеру мы должны учить в первую очередь? JOOP 10 (3): 10-12 (1997)
  • А ++ десятилетие C ++. JOOP 10 (4): 20–23, 34 (1997)
  • Наследование и сокращения. JOOP 10 (5): 6–9, 21 (1997)
  • Репортаж из Лондона. JOOP 10 (6): 11-16 (1997)
  • Вычисление типа во время компиляции. JOOP 10 (7): 11-14 (1997)
  • Важность - и опасности - измерения эффективности. JOOP 9 (8): 58-60 (1997).
  • Итераторы Итераторы и временные последовательности. JOOP 9 (9): 66–67, 71 (1997).

1996

  • Идиоматический дизайн - приглашенный доклад на ACM OOPSLA '95; опубликовано в материалах после конференции и переиздано в сокращенной форме в CACM Vol. 39, No. 11, ноябрь 1996 г.
  • Функциональные адаптеры. JOOP 8 (8): 51-53 (1996).
  • Совместимость против прогресса. JOOP 8 (9): 48-50 (1996).
  • Общие итераторы ввода. JOOP 9 (1): 72-75 (1996).
  • Распределение памяти и совместимость с C. JOOP 9 (2): 42–43, 54 (1996).
  • C ++ как первый язык. JOOP 9 (3): 47-49 (1996).
  • Дизайн, поведение и ожидания. JOOP 9 (4): 79-81 (1996).
  • Интерфейс и инициатива. JOOP 9 (5): 64-67 (1996).
  • Итераторы арифметической последовательности. JOOP 9 (6): 38–39, 92 (1996).
  • Сборник на C ++: нет панацеи, но полезно. JOOP 9 (7): 55-57 (1996).

1995

  • Введение в адаптеры итераторов. JOOP 7 (8): 66-68 (1995).
  • Полиморфные отражения. JOOP 7 (9): 65–67, 80 (1995).
  • Паттерны и антипаттерны. JOOP 8 (1): 46-48 (1995).
  • Программирование похоже на фотографию? JOOP 8 (2): 73-75 (1995).
  • Завершение стандарта. JOOP 8 (3): 60-62 (1995).
  • Пример дизайна с учетом языка. JOOP 8 (4): 56–58, 61 (1995).
  • Функциональные объекты, шаблоны и наследование. JOOP 8 (5): 65–68, 84 (1995).
  • Вариации на тему ручки. JOOP 8 (6): 77-80 (1995).
  • Другой вариант ручки. JOOP 8 (7): 61-63 (1995).
  • Идиоматический дизайн. Посланник OOPS 6 (4): 14-19 (1995)
  • Эндрю Кениг, Бьярн Страуструп: основы программного обеспечения для нативных стилей C ++, Практик. Exper. 25 (S4): S4 / 45-S4 / 86 (1995)

1994

  • Анекдот о выводе типов машинного обучения, Симпозиум USENIX по языкам очень высокого уровня, октябрь 1994 г., Санта-Фе
  • Когда писать программы с ошибками. JOOP 7 (1): 80-82 (1994).
  • Библиотеки в повседневном использовании. JOOP 7 (2): 68–72, 80 (1994).
  • Шаблоны и общие алгоритмы. JOOP 7 (3): 45-47 (1994).
  • Суррогатные классы в C ++. JOOP 7 (4): 71–72, 80 (1994).
  • Универсальные итераторы. JOOP 7 (5): 69-72 (1994).
  • Мысли об абстракции. JOOP 7 (6): 68-70 (1994).

1992

  • Компактные деревья в C ++. Конференция C ++ 1992: 117-130

1991

  • Эндрю Кениг, Томас А. Каргилл, Кейт Э. Горлен, Роберт Б. Мюррей, Майкл Вилот: Насколько полезно множественное наследование в C ++? C ++ Conference 1991: 81-84

1990

  • Эндрю Кениг, Бьярн Страуструп: Обработка исключений для C ++. C ++ Conference 1990: 149-176.

1988

  • Ассоциативные массивы в C ++, конференция Usenix летом 1988 г. (стр. 173–186), Сан-Франциско

1986

1984

  • Автоматическое распространение программного обеспечения,[11] Лето 1984 г. Конференция Usenix (стр. 87–106), Портленд, Орегон

1977

  • «Ловушки и ловушки PL / I», представленные на ПОДЕЛИТЬСЯ конференция, 1977.

Рекомендации

  1. ^ "Сеймур Кениг, доктор философии, 16 июля 1927 - 19 февраля 2018", Международное общество магнитного резонанса в медицине, 2018.
  2. ^ Наир, Р. Б (2013) 'АНДРЕЙ Р. КЕНИГ | LBS kuttipedia '. https://lbsitbytes2010.wordpress.com/2013/04/07/andrew-r-koenig/
  3. ^ Саттер, Херб (Март 1998 г.). «Что в классе? - Принцип интерфейса». Отчет C ++. Получено 21 февраля 2010.
  4. ^ Саттер, Херб (22 октября 2000 г.). «Протокол заседания ISO WG21, 22 октября 2000 г.» (PDF). Рабочая группа ISO 21. Получено 21 февраля 2010.
  5. ^ "ACCU представляет: семинары по Java и C / C ++ (15–18 сентября 1999 г.)". АККУ. 23 сентября 1999 г. Архивировано с оригинал 11 августа 2011 г.. Получено 21 февраля 2010.
  6. ^ "Сеймур Х. Кениг", Колумбийский университет истории вычислительной техники
  7. ^ Кениг, Харриет; Кениг, Сеймур Х., Ткачество навахо, способы навахо, Катона, Нью-Йорк: Галерея Катона, 1986. ISBN  0-915171-03-1
  8. ^ "Известные выпускники", Веб-сайт Средней школы наук Бронкса
  9. ^ да Круз, Франк (6 февраля 2010 г.). "История вычислительной техники Колумбийского университета". Информационные технологии Колумбийского университета. В архиве из оригинала 11 марта 2010 г.. Получено 21 февраля 2010.
  10. ^ Ср. Кениг, предисловие к "Ловушкам и подводным камням".
  11. ^ Макилрой, М.Д. (1987). Читатель Research Unix: аннотированные выдержки из Руководства программиста, 1971–1986 (PDF) (Технический отчет). CSTR. Bell Labs. 139.

внешняя ссылка