Early life and career
Koenig was born inPatents
* User Authentication System Employing Encryption Functions, #4,590,470. "Combines public-key random challenge-response authentication with hiding the authentication algorithm in a device that makes available only the algorithm's inputs and outputs. That secures the session against eavesdropping and replay and requires no secret information on the host." * Storing trees in navigable form, #5,530,957. "A technique for storing trees (such as representations of source programs in a programming environment) that completely eliminates space overhead normally associated with storing pointers, while still permitting common navigational operations with reasonable time efficiency." * Method and apparatus for parsing source code using prefix analysis, #5,812,853, "A technique for speeding up preliminary processing, such as macro preprocessing, in a compiler by remembering useful prefix strings of the input program in a tree-like data structure and keying those strings to remembered states of the compiler." * Method and apparatus for paging alternate users, #6,057,782, "The idea of allowing paging systems that support acknowledgments to reorder their list of destinations for future pages based on the acknowledgment or lack thereof on previous pages."Selected bibliography
Books
* Koenig, Andrew, '' C Traps and Pitfalls'', Reading, Mass.: Addison-Wesley, 1988, c1989. * Koenig, Andrew; Moo, Barbara, ''Ruminations on C++'', Addison-Wesley, 1997. * Koenig, Andrew; Moo, Barbara, ''Accelerated C++'', Addison-Wesley, 2000.Papers
1999
* Andrew Koenig, Barbara Moo: Teaching Standard C++, Part 2. Journal of Object Oriented Programming (JOOP) 11(8): 64-67 (1999) * Andrew Koenig, Barbara Moo: Teaching Standard C++, Part 3. JOOP 11(9): 59-63 (1999)1998
* A Quiet Revolution. JOOP 10(8): 10–13, 16 (1998) * Report from Morristown. JOOP 10(9): 5-8 (1998) * A Programming Revolution in Languages Founded on Object Logic. JOOP 11(1): 13-16 (1998) * Is Abstraction Good? JOOP 11(2): 66-69 (1998) * Simulating Dynamic Types in C++, Part 1. JOOP 11(3): 76–78, 80 (1998) * Simulating Dynamic Types in C++, Part 2. JOOP 11(4): 63-67 (1998) * Why Are Vectors Efficient? JOOP 11(5): 71-75 (1998) * A Standard C++ Appetizer. JOOP 11(6): 85-87 (1998) * Andrew Koenig, Barbara Moo: Teaching Standard C++. JOOP 11(7): 11-17 (1998)1997
* C++ in the Classroom: A Look Forward. JOOP 10(1): 59-61 (1997) * Turning an Interface Inside out. JOOP 10(2): 56-58 (1997) * Which Container Should we Teach First? JOOP 10(3): 10-12 (1997) * A ''++decade'' of C++. JOOP 10(4): 20–23, 34 (1997) * Inheritance and Abbreviations. JOOP 10(5): 6–9, 21 (1997) * Report from London. JOOP 10(6): 11-16 (1997) * Compile-Time Type Computation. JOOP 10(7): 11-14 (1997) * The Importance — and Hazards — of Performance Measurement. JOOP 9(8): 58-60 (1997) * Iterator Iterators and Temporal Sequences. JOOP 9(9): 66–67, 71 (1997)1996
* Idiomatic Design — invited talk for ACM OOPSLA '95; published in Post-conference Proceedings and reprinted in abridged form in CACM Vol. 39, No. 11, November, 1996. * Function Adaptors. JOOP 8(8): 51-53 (1996) * Compatibility vs. Progress. JOOP 8(9): 48-50 (1996) * Generic Input Iterators. JOOP 9(1): 72-75 (1996) * Memory Allocation and C Compatibility. JOOP 9(2): 42–43, 54 (1996) * C++ as a First Language. JOOP 9(3): 47-49 (1996) * Design, Behavior, and Expectation. JOOP 9(4): 79-81 (1996) * Interface and Initiative. JOOP 9(5): 64-67 (1996) * Arithmetic Sequence Iterators. JOOP 9(6): 38–39, 92 (1996) * Collection in C++: No Panacea, but Useful. JOOP 9(7): 55-57 (1996)1995
* Introduction to Iterator Adaptors. JOOP 7(8): 66-68 (1995) * Polymorphic Reflections. JOOP 7(9): 65–67, 80 (1995) * Patterns and Antipatterns. JOOP 8(1): 46-48 (1995) * Is Programming Like Photography? JOOP 8(2): 73-75 (1995) * Wrapping up the Standard. JOOP 8(3): 60-62 (1995) * An Example of Language-Sensitive Design. JOOP 8(4): 56–58, 61 (1995) * Function Objects, Templates, and Inheritance. JOOP 8(5): 65–68, 84 (1995) * Variations on a Handle Theme. JOOP 8(6): 77-80 (1995) * Another Handle Variation. JOOP 8(7): 61-63 (1995) * Idiomatic design. OOPS Messenger 6(4): 14-19 (1995) * Andrew Koenig, Bjarne Stroustrup: Foundations for Native C++ Styles Softw., Pract. Exper. 25(S4): S4/45-S4/86 (1995)1994
* An anecdote about ML type inference, USENIX Very High Level Languages Symposium, October 1994, Santa Fe * When to Write Buggy Programs. JOOP 7(1): 80-82 (1994) * Libraries in Everyday Use. JOOP 7(2): 68–72, 80 (1994) * Templates and Generic Algorithms. JOOP 7(3): 45-47 (1994) * Surrogate Classes in C++. JOOP 7(4): 71–72, 80 (1994) * Generic Iterators. JOOP 7(5): 69-72 (1994) * Thoughts on Abstraction. JOOP 7(6): 68-70 (1994)1992
* Space-Efficient Trees in C++. C++ Conference 1992: 117-1301991
* Andrew Koenig, Thomas A. Cargill, Keith E. Gorlen, Robert B. Murray, Michael Vilot: How Useful is Multiple Inheritance in C++? C++ Conference 1991: 81-841990
* Andrew Koenig, Bjarne Stroustrup: Exception Handling for C++. C++ Conference 1990: 149-1761988
* Associative arrays in C++, Summer 1988 Usenix Conference (pp. 173–186), San Francisco1986
1984
* Automatic Software Distribution, Summer 1984 Usenix Conference (pp. 87–106), Portland, Oregon1977
* "PL/I Traps and Pitfalls", presented at the SHARE conference, 1977.References
External links