Sunday, July 18, 2010


Soon professor Donald E. Knuth(from Stanford university) will publish fourth volume of The Art Of Computer Programming book. (To enlarge a picture click on it.)

A chapter devoted to MMIX language was already published as Fascicle 1. He wants to rewrite all programs in the series using MMIX.

Every student (or software programmer) who studies computer algorithms should know the MMIX language.

Donald E. Knuth invented the MMIX language and created an assembler, a simulator and a debugger for DOS-like operating systems.

The MMIXAL.NET project is based on the original work done by Donald E. Knuth.

MMIXAL.NET was designed to work with MMIXAL programs using the Microsoft.NET framework.

MMIXAL.NET project allows you to assemble, debug and simulate MMIXAL programs with a pleasure which MDI and GUI environments provide.

MMIXAL.NET was written in C# language. The hardware requirements are the same as for Microsoft.NET framework.

The project contains some interesting internals (besides an assembling, a simulating and a debugging as a general process ):
_ how to create Tab control from a set of Panel controls;
_ how to create advance console for Windows Forms;
_ how to number lines of RichTextBox control;
_ how to keep debugger's cursor synchronized with binary code and listing lines;
_ how to use Factory patterns and an inheritance to create different kind of Forms;
_ how to bind break points with binary code;
_ how to implement MDI interface for Windows Forms;
_ how to develop a search of regular expressions for RichTextBox control and internal structure to keep regular expressions as a collection;
_ how to implement double buffering technique to fight a flicker;
_ how to implement intellisense box for fast typing instruction's name;
_ how to use treap structure to organize virtual memory; how to keep it balance;
_ how to use a trie structure to organize symbol table;
_ how to develop a print engine to print opened files;
_ how to implement 64-bit integer arithmetic;
_ how to implement 64-bit floating point arithmetic in accordance with IEEE Standard 754;
_ how to structure the object file;
_ how to create a loader (a program which gets an object file into RAM in order to run it);
_ how to use global variables in C#;
_ how to serialize a state of MMIXAL.NET into a file and vise versa;
_ how to synchronize a simulation of the MMIX program with Windows Forms GUI.
To learn details about how to purchase the product or to report bugs or to make an enquiry send an email to