Difference between revisions of "Andrew Koenig"
GerdIsenberg (talk | contribs) |
(No difference)
|
Revision as of 11:49, 25 May 2018
Andrew R. Koenig,
an American computer scientist and musician. Until his retirement from AT&T in 2003, he was project editor of the ISO/ANSI standards committee for C++, and published a lot about design and programming issues in C++ [2] . As a musician, he is mostly self-taught and started playing the recorder as a child, picked up other instruments (guitar, gemshorn, voice, percussion) along the way, and studied music theory at Columbia University [3].
Contents
CCCP
In 1970/71, while affiliated with Columbia, along with Steven M. Bellovin, Aron Eisenpress, and Ben Yalow, he co-authored the chess program CCCP, which competed at the ACM 1971, and was initially based on Hans Berliner's program J. Biit, which played one year before [4] [5] . Andrew Koenig on the individual roles of CCCP's programming team [6]:
I designed the overall structure of the program and coded much of the human interface. Steve wrote the tree searching and pruning routines, Ben did the move generation and evaluation routines, and Aron wrote the part of the human interface that made it possible to enter moves at a 2250 display with a light pen ...
Accelerated C++
Trollstigen in Rauma, Møre og Romsdal, Norway, Accelerated C++ [7] [8] [9] [10] [11]
Selected Publications
- Andrew Koenig (1978). Light-Pen used in game. Personal Computing, Vol. 2, No. 5, pp. 112 » CCCP
- Andrew Koenig (1986). The Snocone Programming Language. pdf
- Andrew Koenig (1989). C Traps and Pitfalls. Addison-Wesley, ISBN 0-201-17928-8, pdf preprint
- Bjarne Stroustrup, Andrew Koenig (1989). C++: as close as possible to C -- but no closer. C++ Report, Vol. 1, no. 7
- Andrew Koenig, Bjarne Stroustrup (1990). Exception Handling for C++. Proc USENIX C++ Conference 1990, Also, Journal of Object Oriented Programming, Vol. 3 No. 2
- Andrew Koenig, Thomas A. Cargill, Keith E. Gorlen, Robert B. Murray, Michael Vilot (1991). How Useful is Multiple Inheritance in C++? C++ Conference 1991
- Andrew Koenig (1992). Space-Efficient Trees in C++. C++ Conference 1992
- Andrew Koenig (1994). Templates and Generic Algorithms. JOOP 7 No. 3
- Andrew Koenig (1994). Generic Iterators. JOOP 7, No. 5
- Bjarne Stroustrup, Andrew Koenig, Barbara Moo (1994). The C++ Programming Language. Encyclopedia of Software Engineering, Wiley, ISBN 0-471-54004-8.
- Andrew Koenig, Bjarne Stroustrup (1995). Foundations for Native C++ Styles. Software Practice and Experience, Vol 25, special issue S4
- Andrew Koenig, Barbara Moo (1997). Ruminations on C++. Addison-Wesley, ISBN 0-201-42339-1
- Andrew Koenig, Barbara Moo (2000). Accelerated C++. Addison-Wesley, ISBN 0-201-70353-X
- Bjarne Stroustrup, Andrew Koenig, Barbara Moo (2001). The C++ Programming Language. Encyclopedia of Software Engineering. Wiley
Andrew Koenig at Dr Dobbs
- Introducing C++ Order Relations, January 18, 2013
- If C++ Objects Are Unrelated, Are They Equal?, January 24, 2013
- A Strategy for Defining Order Relations, February 01, 2013
- How Dictionaries Work, February 06, 2013
- Concrete Examples of Orderings, February 15, 2013
- Comparison and Inheritance, February 22, 2013
- It's Hard To Compare Floating-Point Numbers, March 01, 2013
- Comparing an Integer With a Floating-Point Number, Part 1: Strategy, March 08, 2013
- Comparing an Integer with a Floating-Point Number, Part 2: Tactics, March 15, 2013
- If Order Relations are Such a Pain, Why Bother?, March 22, 2013
- Is Optimization Immoral?, March 28, 2013
- Optimization Versus Flexibility — An Example, April 04, 2013
- Optimizing a Program Means Making It Run Faster, Right?, April 10, 2013
- Sometimes Optimizations Cancel Each Other, April 17, 2013
- Some Optimizations Are No-Brainers, April 26, 2013
- Sometimes, Making a Program Clearer Makes It Faster, May 02, 2013
- Some Subtleties of Aliasing, May 09, 2013
- Aliasing Is Particularly Troublesome With Vector Elements, May 17, 2013
- The Hazards of Remembering Positions in Vectors, May 24, 2013
- Copying Container Elements From The C++ Library: It's Trickier Than It Looks, May 30, 2013
- Moving Is Not Copying, June 06, 2013
- When Is It Safe to Move an Object Instead of Copying It?, June 12, 2013
- More Thoughts About Moving Objects Safely, June 21, 2013
- Moving and Rvalue References, June 27, 2013
- Moving an Object Does Not Destroy The Original, July 04, 2013
- How the C++ Compiler Decides to Move Objects, July 10, 2013
- Sometimes You Must Violate an Abstraction to Maintain It, July 17, 2013
- Is Moving Objects Worth the Hassle?, July 26, 2013
- Why Would You Ever Pass a Container By Value?, July 31, 2013
- Some Optimizations Are More Important Than Others, August 08, 2013
- An Important Move Optimization Is Nearly Invisible, August 15, 2013
- Moving Data and Address Arithmetic, August 21, 2013
- Addresses and Nodes: Two Ways To Get Around, August 29, 2013
- Theory Versus Practice: The Great Divide in Programming Languages, September 06, 2013
- Programming Without Variables, September 12, 2013
- Containers That Never Change, September 19, 2013
- What Does It Mean To Change An Object?, September 26, 2013
- A Simple, Immutable, Node-Based Data Structure, October 02, 2013
- Introduction to Programming with Lists, October 09, 2013
- Reversing an Immutable List, October 17, 2013
- How Do You Decide On Intermediate States?, October 23, 2013
- Sorting An Immutable List, October 31, 2013
- Practical Advantages of Immutable Values, November 07, 2013
- When Is An Optimization More Than Just An Optimization?, November 14, 2013
- Abstraction and Performance Bugs, November 21, 2013
- Performance Bugs Can Be Hard to Detect, November 27, 2013
- Performance Bugs: Not Just Hard To Detect, But Hard To Define, December 05, 2013
- How Can One Test a Program's Average Performance? December 12, 2013
- Testing Behavior, Not Just Results, December 19, 2013
- Not All Bugs Are Random, December 27, 2013
- Testing Is Not Verification and Vice Versa, January 02, 2014
- Social Processes and the Design of Programming Languages, January 08, 2014
- Why Language Designers Tolerate Undefined Behavior, January 16, 2014
- Even Simple Floating-Point Output Is Complicated, January 23, 2014
- Why Is Exact Floating-Point Output So Hard? January 30, 2014
- Floating-Point Input and Output Are Not Symmetric, February 06, 2014
External Links
- Andrew Koenig (programmer) from Wikipedia
- Andrew Koenig | InformIT
- The Early Music Players | Andrew Koenig
- Music Town
References
- ↑ The Early Music Players | Andrew Koenig
- ↑ Andrew Koenig
- ↑ The Early Music Players | Andrew Koenig
- ↑ Computing at Columbia Timeline - Aug 3-5, 1971
- ↑ Recollections of CUCC 1968-70 -The CCCP Chess Program
- ↑ Andrew Koenig (1978). Light-Pen used in game. Personal Computing, Vol. 2, No. 5, pp. 112
- ↑ Coverphoto of Accelerated C++: Practical Programming by Example | InformIT, by Andrew Koenig, 1995
- ↑ Troll Wall from Wikipedia
- ↑ Troll from Wikipedia
- ↑ Troll (Internet) from Wikipedia
- ↑ Troll (disambiguation) from Wikipedia
- ↑ Andrew Koenig | Other articles
- ↑ DBLP: Andrew Koenig
- ↑ Andrew Koenig's Bio | Dr Dobb's