Book description
The MMIX Supplement: Supplement toThe Art of Computer ProgrammingVolumes 1, 2, 3 by Donald E. Knuth
“I encourage serious programmers everywhere to sharpen their skills by devouring this book.”
–Donald E. Knuth
In the first edition of Volume 1 of The Art of Computer Programming, Donald E. Knuth introduced the MIX computer and its machine language: a teaching tool that powerfully illuminated the inner workings of the algorithms he documents. Later, with the publication of his Fascicle 1, Knuth introduced MMIX: a modern, 64-bit RISC replacement to the now-obsolete MIX. Now, with Knuth’s guidance and approval, Martin Ruckert has rewritten all MIX example programs from Knuth’s Volumes 1-3 for MMIX, thus completing this MMIX update to the original classic.
Building on contributions from the international MMIXmasters volunteer group, Ruckert fully addresses MMIX basic concepts, information structures, random numbers, arithmetic, sorting, and searching. In the preparation of this supplement, about 15,000 lines of MMIX code were written and checked for correctness; over a thousand test cases were written and executed to ensure the code is of the highest possible quality.
The MMIX Supplement should be read side by side with The Art of Computer Programming, Volumes 1-3, and Knuth’s Fascicle 1, which introduces the MMIX computer, its design, and its machine language. Throughout, this supplement contains convenient page references to corresponding coverage in the original volumes. To further simplify the transition to MMIX, Ruckert stayed as close as possible to the original–preserving programming style, analysis techniques, and even wording, while highlighting differences where appropriate. The resulting text will serve as a bridge to the future, helping readers apply Knuth’s insights in modern environments, until his revised, “ultimate” edition of The Art of Computer Programming is available.
From Donald E. Knuth’s Foreword:
“I am thrilled to see the present book by Martin Ruckert: It is jam-packed with goodies from which an extraordinary amount can be learned. Martin has not merely transcribed my early programs for MIX and recast them in a modern idiom. He has penetrated to their essence and rendered them anew with elegance and good taste. His carefully checked code represents a significant contribution to the art of pedagogy as well as to the art of programming.”
Dr. Martin Ruckert maintains the MMIX home page at mmix.cs.hm.edu. He is professor of mathematics and computer science at Munich University of Applied Sciences in Munich, Germany.
Table of contents
- About This eBook
- Title Page
- Copyright Page
- Foreword
- Preface
- Style Guide
- Programming Techniques
- Contents
- Chapter One. Basic Concepts
-
Chapter Two. Information Structures
- 2.1. Introduction
- 2.2.2. Sequential Allocation
- 2.2.3. Linked Allocation
- 2.2.4. Circular Lists
- 2.2.5. Doubly Linked Lists
- 2.2.6. Arrays and Orthogonal Lists
- 2.3.1. Traversing Binary Trees
- 2.3.2. Binary Tree Representation of Trees
- 2.3.3. Other Representations of Trees
- 2.3.5. Lists and Garbage Collection
- 2.5. Dynamic Storage Allocation
- Chapter Three. Random Numbers
-
Chapter Four. Arithmetic
- 4.1. Positional Number Systems
- 4.2.1. Single-Precision Calculations
- 4.2.2. Accuracy of Floating Point Arithmetic
- 4.2.3. Double-Precision Calculations
- 4.3.1. The Classical Algorithms
- 4.4. Radix Conversion
- 4.5.2. The Greatest Common Divisor
- 4.5.3. Analysis of Euclid’s Algorithm
- 4.5.4. Factoring into Primes
- 4.6.3. Evaluation of Powers
- 4.6.4. Evaluation of Polynomials
- Chapter Five. Sorting
- Chapter Six. Searching
-
Answers to Exercises
- 1.3.2. The MMIX Assembly Language
- 1.3.3. Applications to Permutations
- 1.4.4. Input and Output
- 2.1. Introduction
- 2.2.2. Sequential Allocation
- 2.2.3. Linked Allocation
- 2.2.4. Circular Lists
- 2.2.5. Doubly Linked Lists
- 2.2.6. Arrays and Orthogonal Lists
- 2.3.1. Traversing Binary Trees
- 2.3.2. Binary Tree Representation of Trees
- 2.3.5. Lists and Garbage Collection
- 2.5. Dynamic Storage Allocation
- 3.2.1.1. Choice of modulus
- 3.2.1.3. Potency
- 3.2.2. Other Methods
- 3.4.1. Numerical Distributions
- 3.6. Summary
- 4.1. Positional Number Systems
- 4.2.1. Single-Precision Calculations
- 4.2.2. Accuracy of Floating Point Arithmetic
- 4.2.3. Double-Precision Calculations
- 4.3.1. The Classical Algorithms
- 4.4. Radix Conversion
- 4.5.2. The Greatest Common Divisor
- 4.5.3. Analysis of Euclid’s Algorithm
- 4.6.3. Evaluation of Powers
- 4.6.4. Evaluation of Polynomials
- 5. Sorting
- 5.5. Summary, History, and Bibliography
- 6.1. Sequential Searching
- 6.2.1. Searching an Ordered Table
- 6.2.2. Binary Tree Searching
- 6.2.3. Balanced Trees
- 6.3. Digital Searching
- 6.4. Hashing
- Acknowledgments
- Index
Product information
- Title: The MMIX Supplement: Supplement to The Art of Computer Programming Volumes 1, 2, 3 by Donald E. Knuth
- Author(s):
- Release date: February 2015
- Publisher(s): Addison-Wesley Professional
- ISBN: 9780133992892
You might also like
book
The Art of Computer Programming: Satisfiability, Volume 4, Fascicle 6
This multivolume work on the analysis of algorithms has long been recognized as the definitive description …
book
Nonvolatile Memory Design
The manufacture of flash memory, which is the dominant nonvolatile memory technology, is facing severe technical …
book
PHP Objects, Patterns, and Practice, Fifth Edition
Aided by three key elements: object fundamentals, design principles, and best practices, you'll learn how to …
book
Creative Boot Camp 30-Day Booster Pack: Major Mix
You’ve completed the Creative Boot Camp training program, surviving 30 days of creativity exercises designed to …