An integrated development environment for Donald E. Knuth's
What is MixIDE?
MixIDE is an open-source standalone Java application intended to serve
(rudimentary, but effective) integrated development environment for
the MIX machine, introduced by Donald E.
Knuth in his celebrated monograph The Art of Computer Programming.
It includes a MIXAL assembler, a MIX
machine simulator, and a
comprehensive help set (for the time being in Italian only) on the MIX
The main technical aspect which causes MixIDE to differ from other
implementations of the MIX machine is that it is written in Java and,
therefore, it should run on any machine with a recent Java Runtime
Environment installed (not that it is the only one: another MIX
simulator with a very attractive graphical user interface is JMixSim).
The MIXAL assembler is a faithful implementation
Knuth's MIXAL assembly language. The only departure from the standard
is the the argument of the ALF
directive must be enclosed between double quotes ("). Local labels are now
The MIX machine simulator is complete, and includes support for the
floating-point instructions (FIX,
FLOT, FADD, FSUB, FMUL, FDIV, and FCMP). Floating-point
arithmetics, however, is performed by means of
Java's built-in floating-point capabilities, not by a faithful
implementation of the algorithms described by Knuth in "The Art of
Finally, a few non-standard characters have been added to fill the
slots of Knuth's original MIX character encoding.
MixIDE is free, open-source software, and is distributed under the GNU General Public License
You are welcome to download the latest release or check out the Java
source code of MixIDE from the MixIDE Project page on
How to Use MixIDE
There are just a couple of things one must know to be able to use
MixIDE to compile and run MIXAL programs:
The "Step" command executes just one instruction; the "Step over"
command works much like "Step", except that, if the instruction being
executed is a jump, the program is run until it terminates or it
arrives at the address after the jump instruction.
- a MIXAL program can be written by means of any text editor, and
saved into a plain text file with the ".mix" extension;
- a ".mix" source file
must be assembled into a MIX memory dump file (".dmp" extension) by choosing
the "Compile..." item in the "Assembler" menu; by the way, a MIX memory
dump file is just a plain text file so that it can be easily inspected;
- an assembled program, contained in a MIX dump file, must be
into the MIX machine by choosing the "Load..." command in the "MIX"
menu and run by choosing the "Run" command.
About the Project
The MixIDE Project was started by Andrea
G. B. Tettamanzi back in 2003 to make a platform-independent
implementation of Knuth's MIX machine available for the students of his class on
"Computer Programming" at the University of Milan, Italy, to
practice elementary programming in MIXAL.
Since April 2008, the MixIDE Project is hosted by SourceForge.net.
updated on April 28, 2008