американский программист
Эндрю Ричард Кёниг ( IPA: [ˈkøːnɪç] ; родился в июне 1952 года) — бывший исследователь и программист AT&T и Bell Labs . [2] Он является автором C Traps and Pitfalls и соавтором (совместно с Барбарой Му ) Accelerated C++ и Ruminations on C++ , а его имя связано с поиском имён с зависимыми от аргументов , также известным как «поиск Кёнига» [3] , хотя он не является его изобретателем. [4] Он был редактором проекта комитета по стандартам ISO/ANSI для C++ [5] и является автором более 150 статей по C++ .
Ранняя жизнь и карьера
Кёниг родился в Нью-Йорке и является сыном физика доктора Сеймура Х. Кёнига [6], бывшего директора лаборатории IBM Watson , и Харриет Кёниг, автора и коллекционера искусства американских индейцев. [7]
Он окончил Высшую школу наук Бронкса в 1968 году [8] и продолжил обучение, получив степень бакалавра наук и степень магистра наук в Колумбийском университете в Нью-Йорке. Он был видным членом Колумбийского университета Центра вычислительной деятельности (CUCCA) в конце 1960-х и 1970-х годах. Он написал первую программу электронной почты, использовавшуюся в университете. [9]
В 1977 году он присоединился к техническому персоналу Bell Labs в Мюррей-Хилл, штат Нью-Джерси , откуда впоследствии вышел на пенсию.
Первая книга, которую он написал в 1987 году, C Traps and Pitfalls , была мотивирована его предыдущей работой и работой, в основном в качестве сотрудника Колумбийского университета, над другим компьютерным языком, PL/I . В 1977 году, будучи недавно принятым на работу сотрудником Bell Labs, он представил работу под названием «PL/I Traps and Pitfalls» на встрече SHARE в Вашингтоне, округ Колумбия [10]
Патенты
- Система аутентификации пользователей с использованием функций шифрования, № 4,590,470. «Объединяет аутентификацию случайного вызова-ответа с открытым ключом со скрытием алгоритма аутентификации в устройстве, которое делает доступными только входы и выходы алгоритма. Это защищает сеанс от подслушивания и повторного использования и не требует секретной информации на хосте».
- Хранение деревьев в форме, пригодной для навигации, № 5,530,957. «Метод хранения деревьев (например, представлений исходных программ в среде программирования), который полностью устраняет издержки на пространство, обычно связанные с хранением указателей, при этом позволяя выполнять общие навигационные операции с разумной временной эффективностью».
- Метод и аппарат для анализа исходного кода с использованием префиксного анализа, № 5,812,853, «Метод ускорения предварительной обработки, такой как предварительная обработка макросов, в компиляторе путем запоминания полезных префиксных строк входной программы в древовидной структуре данных и привязки этих строк к запомненным состояниям компилятора».
- Метод и устройство для пейджинга альтернативных пользователей, № 6,057,782, «Идея разрешить системам пейджинга, поддерживающим подтверждения, переупорядочивать свой список адресатов для будущих страниц на основе подтверждений или их отсутствия на предыдущих страницах».
Избранная библиография
Книги
- Кениг, Эндрю, C Traps and Pitfalls , Рединг, Массачусетс: Addison-Wesley, 1988, c1989. ISBN 0-201-17928-8
- Кениг, Эндрю; Му, Барбара, Размышления о C++ , Addison-Wesley, 1997. ISBN 0-201-42339-1
- Кениг, Эндрю; Му, Барбара, Ускоренный C++ , Addison-Wesley, 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; опубликовано в Post-conference Proceedings и перепечатано в сокращенном виде в CACM Vol. 39, No. 11, ноябрь 1996 г.
- Функциональные адаптеры. ЮОП 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 Messenger 6(4): 14-19 (1995)
- Эндрю Кёниг, Бьярне Страуструп: Основы программного обеспечения стилей Native C++, Практический опыт 25(S4): S4/45-S4/86 (1995)
1994
- Анекдот о выводе типа ML, Симпозиум 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++ 1991: 81-84
1990
- Эндрю Кениг, Бьерн Страуструп: Обработка исключений для C++. Конференция С++ 1990: 149-176.
1988
- Ассоциативные массивы в C++, Летняя конференция Usenix 1988 г. (стр. 173–186), Сан-Франциско
1986
- Язык программирования Snocone, Технический отчет Bell Labs Computing Science № 124, 19 августа 1986 г.
1984
- Автоматическое распространение программного обеспечения, [11] Летняя конференция Usenix 1984 г. (стр. 87–106), Портленд, Орегон
1977
- «Ловушки и подводные камни PL/I», представлено на конференции SHARE , 1977 г.
Ссылки
- ^ «Сеймур Кёниг, доктор философии, 16 июля 1927 г. – 19 февраля 2018 г.», Международное общество магнитного резонанса в медицине, 2018 г.
- ^ Наир, РБ (2013) «ЭНДРЮ Р. КЁНИГ | LBS kuttipedia». https://lbsitbytes2010.wordpress.com/2013/04/07/andrew-r-koenig/
- ^ Sutter, Herb (март 1998). «Что находится в классе? — Принцип интерфейса». C++ Report . Получено 21 февраля 2010 .
- ^ "Личное примечание о поиске, зависящем от аргумента". 2012-05-03. Архивировано из оригинала 17 марта 2018 года . Получено 7 февраля 2014 года .
- ^ Sutter, Herb (22 октября 2000 г.). "Протокол заседания ISO WG21, 22 октября 2000 г." (PDF) . Рабочая группа ISO 21 . Получено 21 февраля 2010 г. .
- ^ "Сеймур Х. Кёниг", История вычислительной техники Колумбийского университета
- ^ Кениг, Харриет; Кениг, Сеймур Х., Ткачество навахо, Пути навахо , Катона, Нью-Йорк: Галерея Катона, 1986. ISBN 0-915171-03-1
- ^ "Известные выпускники", веб-сайт Bronx High School of Science
- ^ da Cruz, Frank (6 февраля 2010 г.). "История вычислений в Колумбийском университете". Columbia University Information Technology. Архивировано из оригинала 11 марта 2010 г. Получено 21 февраля 2010 г.
- ↑ См. Кениг, предисловие к «Ловушкам и подводным камням».
- ^ Макилрой, МД (1987). Исследовательский ридер Unix: аннотированные выдержки из Руководства программиста, 1971–1986 (PDF) (Технический отчет). CSTR. Bell Labs. 139.
Внешние ссылки