The MMIX Supplement to The Art of Computer Programming


Documentation, Sources, Binaries, Links, Examples, Contributions

Table of Content

Content

This page provides materials relating to The MMIX Supplement to The Art of Computer Programming. This Book is expected to appear late in 2014. It contains the programs from Donald Knuths famous books rewritten for the MMIX computer. It is the final result of the MMIXmasters project.

The MMIX Supplement Cover

Programms and Testcases

Tools

Several tools were designed for the programs as given above:
  • mmstotex, a utility to convert mms files to TeX files.

  • mmstort, a utility to extract instruction counts from mms files, add them up, and compare them to a given sum.

  • testgen, a utility taking a tst file (the test description) and possible several mms files producing a series of mms files as output. Each output file is a complete MMIX program that can be assembled and run to execute the test in question.

  • ftoo, a preprocessor to convert floating point numbers to their hexadecimal representation. It can be used as a preprocessor for mms files (or tst files) that need to use floating point constants.

Errata

  • page i, program line 5: replace "Programmming" by "Programming".

  • page ii, program line 18: replace "Programmming" by "Programming".

  • page 2, program line 34: This line might load a formating character as the start symbol of the permutation.
    See BUG 1.3.3 A. Further changes on
    page 3, 4, 5.

  • page 5, line 1: add a fixed space between "Eqs." and "(8).

  • page 5, line 12: replace "concerning" by "connecting".

  • page 6, program line 40: replace "B4.Change" by "B4. Change".

  • page 11, line -6: replace "red and green" by "green and red".

  • page 12, line 2: replace "SG and SR" by "GS and RS".

  • page 32, line -2: replace "function" by "functions".

  • page 39, line -11: replace "have conveniently" by "conveniently have".

  • page 43, program line 2 and 3: replace "." by "," and indent "jump if so."

  • page 44, line 8: add a space between "..." and "Therefore".

  • page 56, line -6: replace "fv" by "fv".

  • page 57, exercise 14, line 3: replace "64 bit" by "64-bit".

  • page 66, Program line 54: replace "ui+J" by "uj+i".

  • page 67, exercise 13, line 1: replace "is a" by "is".

  • page 68, line 5: replace "it" by "x.

  • page 70, Program A and Program B, line 01: add ":" before "Gcd".

  • page 78, line 2: replace "h0" by "h0".

  • page 78, program line 12: replace "Bump q, q" by "Bump p, q".

  • page 79, line -16: replace "lists heads" by "list heads".

  • page 79, Program M, line 10: remove the extra space before "M2".

  • page 80, line -10 and -9: add a comma before "it is approximately".

  • page 81, execrcise 33: replace "improve an" by "improve on".

  • page 85, line 13: remove the comma after "loop".

  • page 87, Program S, line 13: delete the extra space before S3.

  • page 90, L1, line 4: add a space beween "..." and "and".

  • page 92, exercise 9, line 2: add a space between "..." and "in".

  • page 107, line R in Table 1: The content of this line should be re-positioned one place to the right; I.e. the first entry should be empty, ‘ARE’ should be in second place, ‘FROM’ in the 4th column, ‘OR’ in the 7th column, and ‘HER’ in column 11.

  • page 108, line 9: replace "(page 446)" by "(page 440)".

  • page 113, line -12: correct quotation marks.

  • page 113, Program L, line 01, 14, and 17: replace "LDO" by "LDT" and "STO" by "STT".

  • page 114, Program D, line 01, 21, and 24: replace "LDO" by "LDT" and "STO" by "STT".

  • page 117, line 1: replace "haven" by "have".

  • page 120, Solution 7: See BUG 1.3.3 A.

  • page 124, line 5: add a space between "..." and "are".

  • page 150, Solution 4, line 2: replace "greater or equal than" by "greater than or equal to".

  • page 151, Solution 14, line 2: replace "64 bit" by "64-bit".

  • page 152, line preceeding 4.2.2: add a comma after "slower".

  • page 159, exercise 13, program line 6: replace "SL i,m,3" by "SL i,m,2".

  • page 160, exercise 19: remove the extra "F" from the constants for m2 and m3.

  • page 165, exercise 3, program line 5: replace "BNP t,1FB+2A" by "PBNP t,1FB[A]".

  • page 165, exercise 3, program line 10: replace "BNN i,2BB+3 Loop while i ≥ 0." by "PBP i,2BB+1[1] Loop while i > 0."

  • page 169, program lines 01 and 10: remove the extra space before the comment "M1." and "M2.".

  • page 170, program line 01: remove the extra space before the comment "M1.".

  • page 172, program lines 13, 15, and 16: remove the extra space before the comments "R7.", "R6.", and "R5.".

  • page 173, program line 45: remove the extra space before the comment "S1.".

  • page 174, program line 17: remove the extra space before the comment "S3.".

  • page 175, Solution 9, line 3: insert a closing parenthesis ")" before the semicolon ";".

  • page 176, program line 41: replace "ij" by "ji".

  • page 188, line 11: replace "Program 2.1A" by "Program 2.1-(5)".

  • page 188, line -5: replace the hyphen by an en-dash.

  • page 190: consolidate the entries for "Fclose", Fopen", "Fread", "Fpus", and "Fwrite".

I will gladly reward any first finder of an error, be it technical, typographical, orthographical, grammatical, or otherwise, by sending her or him a nice MMIX T-shirt (as long as supplies last).

Please help to keep this site up to date! If you want to point out important material or projects that are not listed here, if you find errors or want to suggest improvements, please send email to email