Эндрю Кениг (программист)
Эндрю Кениг | |
---|---|
Рожденный | Эндрю Ричард Кениг июнь 1952 г. года ) ( 72 Нью-Йорк , США |
Альма-матер | Колумбийский университет (бакалавр математики; магистр компьютерных наук, 1977) |
Занятие | Ученый-компьютерщик |
Известный | C++ , программирование, письмо, « поиск Кенига », « антишаблон » |
Заметная работа | C Ловушки и ловушки (1988) Размышления о C++ (1997) Ускоренный C++ (2000) |
Супруг | Барбара Э. Му |
Родители) | Сеймур Х. Кениг Гарриет Кениг [1] |
Веб-сайт | www |
Эндрю Ричард Кениг (англ. 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» на встрече SHARE в Вашингтоне, округ Колумбия. [10]
Патенты [ править ]
- Система аутентификации пользователей, использующая функции шифрования, № 4,590,470. «Сочетает аутентификацию случайного запроса-ответа с открытым ключом с сокрытием алгоритма аутентификации в устройстве, которое делает доступными только входы и выходы алгоритма. Это защищает сеанс от подслушивания и повторения и не требует никакой секретной информации на хосте».
- Сохранение деревьев в судоходном виде, №5 530 957. «Техника хранения деревьев (например, представлений исходных программ в среде программирования), которая полностью устраняет накладные расходы на пространство, обычно связанные с хранением указателей, но при этом позволяет выполнять общие навигационные операции с разумной эффективностью времени».
- Метод и устройство для анализа исходного кода с использованием префиксного анализа, № 5,812,853, «Методика ускорения предварительной обработки, такой как предварительная обработка макросов, в компиляторе путем запоминания полезных строк префиксов входной программы в древовидной структуре данных и их кодирования. строки в запомненные состояния компилятора».
- Способ и устройство для пейджинговой связи альтернативных пользователей, № 6,057,782, «Идея разрешить системам пейджинговой связи, поддерживающим подтверждения, изменять порядок списка мест назначения для будущих страниц на основе подтверждения или отсутствия такового на предыдущих страницах».
Избранная библиография [ править ]
Книги [ править ]
- Кениг, Эндрю, К. Ловушки и ловушки , Ридинг, Массачусетс: Аддисон-Уэсли, 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 [ править ]
- Тихая революция. ЮОП 10 (8): 10–13, 16 (1998)
- Репортаж из Морристауна. ДЖООП 10(9): 5-8 (1998)
- Революция программирования в языках, основанных на объектной логике. ЮОП 11(1): 13-16 (1998)
- Абстракция — это хорошо? ДЖООП 11(2): 66-69 (1998)
- Моделирование динамических типов в C++, часть 1. JOOP 11(3): 76–78, 80 (1998).
- Моделирование динамических типов в C++, часть 2. JOOP 11(4): 63-67 (1998).
- Почему векторы эффективны? ДЖООП 11(5): 71-75 (1998)
- Стандартная закуска C++. ЮОП 11(6): 85-87 (1998)
- Эндрю Кениг, Барбара Му: преподавание стандарта C++. ДЖООП 11(7): 11-17 (1998)
1997 [ править ]
- C++ в классе: взгляд вперед. ДЖООП 10(1): 59-61 (1997)
- Выворачиваем интерфейс наизнанку. ЮОП 10(2): 56-58 (1997)
- Какой контейнер нам следует преподавать в первую очередь? ДЖООП 10(3): 10-12 (1997)
- C ++Десятилетие ++. ДЖООП 10 (4): 20–23, 34 (1997).
- Наследование и сокращения. ЮОП 10 (5): 6–9, 21 (1997)
- Репортаж из Лондона. ЮОП 10(6): 11-16 (1997)
- Вычисление типов во время компиляции. ЮОП 10(7): 11-14 (1997)
- Важность и опасности измерения производительности. ЮОП 9(8): 58-60 (1997)
- Итератор Итераторы и временные последовательности. ЮОП 9 (9): 66–67, 71 (1997).
1996 [ править ]
- Идиоматический дизайн — приглашенный доклад на ACM OOPSLA '95; опубликовано в журнале Post-conference Proceedings и переиздано в сокращенном виде в CACM Vol. 39, № 11, ноябрь 1996 г.
- Функциональные адаптеры. ЮОП 8(8): 51-53 (1996)
- Совместимость против прогресса. ЮОП 8(9): 48-50 (1996)
- Общие итераторы ввода. ЮОП 9(1): 72-75 (1996)
- Распределение памяти и совместимость с C. ДЖООП 9 (2): 42–43, 54 (1996).
- C++ как первый язык. ЮОП 9(3): 47-49 (1996)
- Дизайн, поведение и ожидания. ЮОП 9(4): 79-81 (1996)
- Интерфейс и инициатива. ЮОП 9(5): 64-67 (1996)
- Итераторы арифметических последовательностей. ДЖООП 9 (6): 38–39, 92 (1996).
- Коллекция на C++: не панацея, но полезно. ЮОП 9(7): 55-57 (1996)
1995 [ править ]
- Введение в адаптеры итераторов. ЮОП 7(8): 66-68 (1995)
- Полиморфные отражения. ЮОП 7 (9): 65–67, 80 (1995)
- Паттерны и антипаттерны. ЮОП 8(1): 46-48 (1995)
- Программирование похоже на фотографию? ЮОП 8(2): 73-75 (1995)
- Подведение итогов Стандарта. ЮОП 8(3): 60-62 (1995)
- Пример языково-чувствительного дизайна. ЮОП 8 (4): 56–58, 61 (1995)
- Функциональные объекты, шаблоны и наследование. ЮОП 8 (5): 65–68, 84 (1995)
- Вариации на тему ручки. ЮОП 8(6): 77-80 (1995)
- Еще один вариант ручки. ЮОП 8(7): 61-63 (1995)
- Идиоматический дизайн. УПС Вестник 6 (4): 14–19 (1995)
- Эндрю Кениг, Бьерн Страуструп: Основы программного обеспечения для собственных стилей C++, Практика. Экспер. 25(С4): С4/45-С4/86 (1995)
1994 [ править ]
- Анекдот о выводе типа ML, Симпозиум USENIX по языкам очень высокого уровня, октябрь 1994 г., Санта-Фе.
- Когда писать программы с ошибками. ЮОП 7(1): 80-82 (1994)
- Библиотеки в повседневном использовании. ЮОП 7 (2): 68–72, 80 (1994).
- Шаблоны и общие алгоритмы. ЮОП 7(3): 45-47 (1994)
- Суррогатные классы в C++. ЮОП 7 (4): 71–72, 80 (1994).
- Общие итераторы. ЮОП 7(5): 69-72 (1994)
- Мысли об абстракции. ЮОП 7(6): 68-70 (1994)
1992 [ править ]
- Компактные деревья в C++. Конференция С++ 1992: 117-130
1991 [ править ]
- Эндрю Кениг, Томас А. Каргилл, Кейт Э. Горлен, Роберт Б. Мюррей, Майкл Вилот: Насколько полезно множественное наследование в 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». https://lbsitbytes2010.wordpress.com/2013/04/07/andrew-r-koenig/
- ^ Саттер, Херб (март 1998 г.). «Что находится в классе? — Принцип интерфейса» . Отчет С++ . Проверено 21 февраля 2010 г.
- ^ «Личное замечание о поиске по аргументам» . 03.05.2012. Архивировано из оригинала 17 марта 2018 года . Проверено 7 февраля 2014 г.
- ^ Саттер, Херб (22 октября 2000 г.). «Протокол заседания ISO WG21, 22 октября 2000 г.» (PDF) . Рабочая группа ИСО 21 . Проверено 21 февраля 2010 г.
- ^ «Сеймур Х. Кениг» , История вычислений Колумбийского университета
- ^ Кениг, Харриет; Кениг, Сеймур Х., Ткачество навахо, Пути навахо , Катона, Нью-Йорк: Галерея Катона, 1986. ISBN 0-915171-03-1
- ^ «Известные выпускники» , веб-сайт Высшей школы наук Бронкса.
- ^ да Круз, Франк (6 февраля 2010 г.). «История вычислительной техники Колумбийского университета» . Информационные технологии Колумбийского университета. Архивировано из оригинала 11 марта 2010 года . Проверено 21 февраля 2010 г.
- ^ См. Кениг, предисловие к книге «C Ловушки и ловушки» .
- ^ Макилрой, доктор медицины (1987). Читатель Research Unix: аннотированные выдержки из Руководства программиста, 1971–1986 (PDF) (Технический отчет). CSTR. Лаборатории Белла. 139.