One Address Machine (OAM) is a simple virtual CPU architecture: intended to teach the fundamentals of an instruction set, memory, addressing, high level programming, compilation assembly, etc.. The web based compiler and assembler/emulator is called OAMulator and allows programs written in a special programming language (OAMPL) to be compiled into OAM Assembly and to interpret/execute OAM Assembly code (produced by the compiler or written directly).