Shriram Krishnamurthi, Benjamin S. Lerner, Joe Gibbs Politz Note: This edition is out of date. The language has improved in many ways, making some of the code in this book no longer executable. In addition, there are many revisions, improvements, and additions to the book. Please instead refer to the 2019 edition.