Apoo is an environment for programming in a simple assembly
    language. It is implemented in Python and  has the following components:
  
-  the Apoo vir
tual machine is a virtual processor with a
  very simple architecture and instruction set that mimics almost all
  the essential features of a modern microprocessor. As the
aim is to teach assembly language, there is no machine code 
associated with the instruction set. 
  
-  the Apoo Interface is a graphical environment that monitors the state of the machine 
during the execution of a program and allows the writing/editing/execution 
of programs in assembly language. 
  
-  the Apoo Tutor is a module that aims the
  grading of student programs based on a description of what should be
  the execution of the program for specified input data sets.
 
A machine code translation and an assembler implemented in Haskell are
also available.
Rogério Reis,Nelma Moreira 2008-01-22