Wednesday, February 11, 2015

The third edition will be out March 11, 2015

We spent many of our 2014 hours writing and revising the book.  We feel it will bring the book up to date, and that the presentation of some of the material will be more clear.

According to Amazon, the book will be available starting March 11.

Here are some chapter-by-chapter highlights:
  • Ch. 2 (Data): After hearing many students saying ``It's too hard!'' we took a closer look and decided that the presentation could be improved by more clearly indicating which sections should be treated as informal discussion and which should be studied as formal derivations (and possibly skipped on first reading).  Hopefully, these guideposts will help the students navigate the material, without us reducing the rigor of the presentation.
  • Ch. 3 (Machine Programming): It's x86-64 all the way!  The entire presentation of machine language is based on x86-64.  Now that even cellphones run 64-bit processors, it seemed like it was time to make this change.  Eliminating IA32 also freed up space to put floating-point machine code back in (it was present in the 1st edition and moved to the web for the 2nd edition).  We generated a web aside describing IA32.  Once students know x86-64, the step (back) to IA32 is fairly simple.
  • Ch. 4 (Architecture): Welcome to Y86-64!  We made the simple change of expanding all of the data widths to 64 bits.  We also rewrote all of the machine code to use x86-64 procedure conventions.
  • Ch. 5 (Optimization): We brought the machine-dependent performance optimization up to date based on more recent versions of x86 processors.  The web aside on SIMD programming has been updated for AVX2.  This material becomes even more relevant as industry looks to the SIMD instructions to juice up performance.
  • Ch. 7 (Linking): Linking as been updated for x86-64.  We expanded the discussion of position-independent code and introduce library inter positioning.
  • Ch. 8 (Exceptional Control Flow): We have added a more rigorous treatment of signal handlers, including signal-safe functions.
  • Ch. 11 (Network Programming): We have rewritten all of the code  to use new libraries that support protocol-independent and thread-safe programming.
  • Ch. 12 (Concurrent Programming): We have increased our coverage of thread-level parallelism to make programs run faster on multi-core processors.

16 comments:

  1. I've been studying from the 1st edition of your book and have been looking forward to the 3rd edition. I have been thoroughly impressed by the book, and especially by the labs for self-study. I feel that the difficulty of the labs is perfect - easy enough to be doable in a reasonable amount of time, but difficult enough that you need to be creative to find an acceptable solution. Will you be updating them to 64 bits? Though the benefit will not be as great as the first time through (since I already know the tricks), I'd like to redo the first three labs as a quick hands-on way of introducing myself to x86-64. Thank you for the wonderful book, and for making such great labs available to all - can't wait to check out the 3rd edition!

    ReplyDelete
    Replies
    1. Yes. We're using the new edition at CMU this fall, and we'll get all of the labs updated in time for that.

      Delete
  2. Sounds great!
    Will there be an option to buy it in pdf format?

    ReplyDelete
    Replies
    1. We're still trying to decide on that. The sales of PDF versions for the second edition were so small that it's not clear that there's a market for that format.

      Delete
  3. For the 4th edition can you add some ARM material as well? I understand that the goal is to present a single architecture comprehensively, but I believe that the book would benefit from comparing and contrasting x86 with ARM. You don't need to spend a lot of pages on it, just don't ignore ARM altogether please.

    ReplyDelete
    Replies
    1. We're not ready to start thinking about a 4th edition yet, We'll take your idea under consideration, though.

      Delete
  4. Professors Bryant and O'Hallaron,

    I just wanted to say thank you very much producing such a wonderful text. I have just completed the second edition in it's entirety, although did find the small section given to GOT and PLT in chapter 7 could have been expanded on... which is why I'll be getting the third edition also!

    Cheers.

    ReplyDelete
    Replies
    1. You'll find more coverage of that in the 3rd edition.

      Delete
  5. Will there be a kindle edition available? Currently, only the hardcover copy is available on Amazon. I would love to have it on my kindle.

    ReplyDelete
    Replies
    1. I don't think so. The Kindle version of the second edition was very disappointing to us and to many people who purchased it. Kindles provide a great way to read novels, but they don't do a good job with math notation or with illustrations.

      Delete
  6. Did you make any changes in chapter 6 of the textbook? I'm current using the second edition of the textbook and our class required the third edition now but there doesn't seem to be any changes at all for chapter 6. Am I right?

    ReplyDelete
    Replies
    1. We made some updates to reflect changes in memory technology. The overall structure of the chapter remained the same.

      Delete
  7. Will this textbook be introduced to China? The 2nd edition has been sold out for a long time.

    ReplyDelete
    Replies
    1. The translator is working on the book right now. She says the publisher plans to release the book in May or June, 2016.

      Over the years, the Chinese edition has been our biggest seller. Hope the 3rd edition receives the same kind of audience as the other two.

      Delete
    2. In fact, this textbook has been one of the most significant guidance to we Chinese programmers!

      Delete
  8. Glad to hear it. The data definitely bear out this claim. Our Chinese language editions have been very successful. Both Dave & I have visited China several times and met lots of people who use CS:APP.

    ReplyDelete