An environment for a first course in assembly language programming
Apoo 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.