Home * People * Andrew Koenig
andy1t.jpg

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++ [1] . 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 [2] .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 [3] [4] .
Andrew Koenig [5]

Photos

Trollstigen.jpg
Trollstigen in Rauma, Møre og Romsdal, Norway, Accelerated C++ [6] [7] [8] [9] [10]

Selected Publications

[11] [12]

Andrew Koenig at Dr Dobbs

  1. Introducing C++ Order Relations, January 18, 2013
  2. If C++ Objects Are Unrelated, Are They Equal?, January 24, 2013
  3. A Strategy for Defining Order Relations, February 01, 2013
  4. How Dictionaries Work, February 06, 2013
  5. Concrete Examples of Orderings, February 15, 2013
  6. Comparison and Inheritance, February 22, 2013
  7. It's Hard To Compare Floating-Point Numbers, March 01, 2013
  8. Comparing an Integer With a Floating-Point Number, Part 1: Strategy, March 08, 2013
  9. Comparing an Integer with a Floating-Point Number, Part 2: Tactics, March 15, 2013
  10. If Order Relations are Such a Pain, Why Bother?, March 22, 2013
  11. Is Optimization Immoral?, March 28, 2013
  12. Optimization Versus Flexibility — An Example, April 04, 2013
  13. Optimizing a Program Means Making It Run Faster, Right?, April 10, 2013
  14. Sometimes Optimizations Cancel Each Other, April 17, 2013
  15. Some Optimizations Are No-Brainers, April 26, 2013
  16. Sometimes, Making a Program Clearer Makes It Faster, May 02, 2013
  17. Some Subtleties of Aliasing, May 09, 2013
  18. Aliasing Is Particularly Troublesome With Vector Elements, May 17, 2013
  19. The Hazards of Remembering Positions in Vectors, May 24, 2013
  20. Copying Container Elements From The C++ Library: It's Trickier Than It Looks, May 30, 2013
  21. Moving Is Not Copying, June 06, 2013
  22. When Is It Safe to Move an Object Instead of Copying It?, June 12, 2013
  23. More Thoughts About Moving Objects Safely, June 21, 2013
  24. Moving and Rvalue References, June 27, 2013
  25. Moving an Object Does Not Destroy The Original, July 04, 2013
  26. How the C++ Compiler Decides to Move Objects, July 10, 2013
  27. Sometimes You Must Violate an Abstraction to Maintain It, July 17, 2013
  28. Is Moving Objects Worth the Hassle?, July 26, 2013
  29. Why Would You Ever Pass a Container By Value?, July 31, 2013
  30. Some Optimizations Are More Important Than Others, August 08, 2013
  31. An Important Move Optimization Is Nearly Invisible, August 15, 2013
  32. Moving Data and Address Arithmetic, August 21, 2013
  33. Addresses and Nodes: Two Ways To Get Around, August 29, 2013
  34. Theory Versus Practice: The Great Divide in Programming Languages, September 06, 2013
  35. Programming Without Variables, September 12, 2013
  36. Containers That Never Change, September 19, 2013
  37. What Does It Mean To Change An Object?, September 26, 2013
  38. A Simple, Immutable, Node-Based Data Structure, October 02, 2013
  39. Introduction to Programming with Lists, October 09, 2013
  40. Reversing an Immutable List, October 17, 2013
  41. How Do You Decide On Intermediate States?, October 23, 2013
  42. Sorting An Immutable List, October 31, 2013
  43. Practical Advantages of Immutable Values, November 07, 2013
  44. When Is An Optimization More Than Just An Optimization?, November 14, 2013
  45. Abstraction and Performance Bugs, November 21, 2013
  46. Performance Bugs Can Be Hard to Detect, November 27, 2013
  47. Performance Bugs: Not Just Hard To Detect, But Hard To Define, December 05, 2013
  48. How Can One Test a Program's Average Performance? December 12, 2013
  49. Testing Behavior, Not Just Results, December 19, 2013
  50. Not All Bugs Are Random, December 27, 2013
  51. Testing Is Not Verification and Vice Versa, January 02, 2014
  52. Social Processes and the Design of Programming Languages, January 08, 2014
  53. Why Language Designers Tolerate Undefined Behavior, January 16, 2014
  54. Even Simple Floating-Point Output Is Complicated, January 23, 2014
  55. Why Is Exact Floating-Point Output So Hard? January 30, 2014
  56. Floating-Point Input and Output Are Not Symmetric, February 06, 2014

External Links


References

  1. ^ Andrew Koenig
  2. ^ The Early Music Players | Andrew Koenig
  3. ^ Computing at Columbia Timeline - Aug 3-5, 1971
  4. ^ Recollections of CUCC 1968-70 -The CCCP Chess Program
  5. ^ The Early Music Players | Andrew Koenig
  6. ^ Coverphoto of Accelerated C++: Practical Programming by Example | InformIT, by Andrew Koenig, 1995
  7. ^ Troll Wall from Wikipedia
  8. ^ Troll from Wikipedia
  9. ^ Troll (Internet) from Wikipedia
  10. ^ Troll (disambiguation) from Wikipedia
  11. ^ Andrew Koenig | Other articles
  12. ^ DBLP: Andrew Koenig

What links here?


Up one level