

MMIX 2009 - chipsy
http://www-cs-faculty.stanford.edu/~uno/mmix.html

======
jeffdavis
I almost never see this as a justification, but machine languages make it a
lot easier to understand all kinds of computing topics.

Things like assignment, pointers, variable/value confusion, etc., that trip up
novices in any high-level language are fairly trivial to understand if you
teach them with machine language.

People talk about a bimodal distribution in CS classes, and suggest that some
people just can't learn these topics well. Perhaps I'm naive, but I have a
hard time believing that they are incapable of learning these fundamentals if
presented using machine language.

~~~
jonsen
Yes. Contemporary software engineering education is like jumping right into
organic chemistry without knowing any inorganic chemistry.

~~~
panic
On the other hand, you could also say it's like jumping into physics without
knowing any quantum mechanics. You can learn a lot before you need to start
covering implementation details.

------
FWeinb
We have been using this in one class. I compiled it to run in a web browser:
[http://mmix.rwth.weinberg.me](http://mmix.rwth.weinberg.me) It is faster than
I would have thought. It even runs on iOS8.

(Disclaimer: this was created in 1-2h and the JS is like 3Mb)

~~~
razorsese
thanks .looks nice

------
brudgers
What I found interesting in _TAoCP volume 4a_ is that Knuth pretty much
abandons the idea of writing code altogether and just focuses on describing
the problems and algorithms...and the book is still thick and dense. I think
it has to do largely with the changes in programming tools over the 50+ years
he's been writing. MMIX doesn't really capture the complexity of contemporary
assembly on what ordinary people ordinarily think of as ordinary computers.

Pedagogically, I'm not sure the complexity of MMIX over MIX makes _TAoCP_ more
accessible to the general reader...but then that has never been its focus.

~~~
taeric
While he certainly doesn't have as much code in the content sections, I
believe there are quite a few assignments with code.

A lot of this just comes down to what is being taught. Earlier volumes were
teaching how to analyze code. To do that, you needed code. This volume is
focusing on the algorithms.

~~~
brudgers
Good point, thanks.

------
chipsy
I like thinking about idealized practical computers, and projects like MMIX
are particularly special, even if they don't hold any popularity, since
they're not just a random hacker's design, but one as envisioned by some of
the biggest names of a certain generation of computing. The companion Virtual
Motherboard suggests a future era where it might be realized as a "real"
application platform.

