The Z-machine is a virtual machine that runs platform-independent bytecode.

The name "Z-Machine" was coined by Graham Nelson, but the original design was by Joel Berez and Marc Blank in 1979. The folks at Infocom improved the design over time, producing 6 versions of the machine. Most Infocom games in market (in Activision collections) are made for machine specification 3 or 5; graphical games use version 6.

Later, the Z-machine was reverse-engineered and improved by Graham Nelson for "modern" needs.

Z-Machine is fairly advanced; it's fully object-oriented (due to structure of games this was the way to go), very compact and, of course, secure (can't write to files other than savegames, for example). In some respects, it's cooler than Java (because Java won't run in plain Commodore 64 or TRS-80 no matter how much you try =)

There are a couple of languages to write programs for Z-machine. Original language used for that is ZIL, but it is mostly extinct. These days, the best language is Inform, a freeware compiler by Graham Nelson.

To see the current specifications of Z-machine specifications, see Graham Nelson's web page at: http://www.gnelson.demon.co.uk/zspec/ - this text was based on the document's appendix D.

There's a new IF virtual machine in works that's technically slightly better than the Z-machine - it's called Glulx.