There and Back Again


Last fall it became clear to me that it was “now or never” time for completing Practical Foundations for Programming Languages, so I put just about everything else aside and made the big push to completion.  The copy editing phase is now complete, the cover design (by Scott Draves) is finished, and its now in the final stages of publication.  You can even pre-order a copy on Amazon; it’s expected to be out in November.

I can already think of ways to improve it, but at some point I had to declare victory and save some powder for future editions.  My goal in writing the book is to organize as wide a body of material as I could manage in a single unifying framework based on structural operational semantics and structural type systems.  At over 600 pages the manuscript is at the upper limit of what one can reasonably consider a single book, even though I strived for concision throughout.

Quite a lot of the technical development does not follow along traditional lines.  For example, I completely decouple the concepts of assignment, reference, and storage class (heap or stack) from one another, which makes clear that one may have references to stack-allocated assignables, or make use of heap-allocated assignables without having references to them.  As another example, my treatment of concurrency, while grounded in the process calculus tradition, coheres with my treatment of assignables, but differs sharply from standard accounts (and avoids some of the complications in the treatment of process equivalences).

An explicit goal was to avoid the computational cladistics that characterizes many treatments of PL concepts.  For example, there are not chapters on “paradigms” such as “functional programming” or “object-oriented programming”, although many of their underlying concepts are treated in the text.  So there are chapters on higher-order functions and dynamic dispatch, for example, but these are not elevated to language design principles, but rather are analyses of computational phenomena “found in nature”.

With the first edition behind me, I intend to resume blogging.  I have a few topics lined up in my head, including an update on our new undergraduate curriculum at Carnegie Mellon (going smashingly), and more posts on fundamentals of logic and PL’s.  So stay tuned!

 

Update: word-smithing.

About these ads

12 Responses to There and Back Again

  1. Congrats! The various drafts were already a great resource — I am looking forward to the complete book.

  2. Congratulations! Pre-ordered it from Amazon.

  3. Nick Barnes says:

    I see the UK pub date is the same. Looking forward to it.

  4. Congrats on finishing the book! It was useful in its early stages during 15-312 and continues to be useful to me to this day. This book and the ideas it contains have changed the way I think about programming.

  5. Just downloaded the PDF version and eager to read it. Thanks.

  6. Amazon recommends to me this related reading:

    COVERGIRL® Clean Make Up – Bring out Your True Beauty with a COVERGIRL Legendary Face Foundation

    ;)

  7. Yay! Have been waiting a long time….

  8. Awesome! I’ve already found parts of your earlier drafts useful as an introduction to students new to PL. I look forward to the full book…

  9. This looks like an amazingly thorough book, and it reads like a math book rather than a programming book (that is a very good thing.) Thank you for the effort, and for openly releasing this book. My kindle is going to be quite busy for a while.

  10. Hi Robert. Do you plan on releasing a kindle version of your book? Cheers.

    • Under discussion with the publisher. The problem is that the Kindle, which I love for reading novels, is really bad for technical books. You basically have to treat it like a magnifying glass, and it’s no fun to use.

  11. Congrats! Seriously!! Really looking forward to reading it.

    And I know *exactly* what that “finally done!” feeling feels like, and it’s great. I’m looking forward to it myself. Jenny and I are working on our next (fifth! jeez!) book, on agile development.

    BTW — if my experience is a guide, that feeling that you get when you think of ways you can improve it will probably never go away. :)

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 1,032 other followers

%d bloggers like this: