The OAMulator is a Web based resource to support the teaching of
instruction set architecture, assembly languages, memory, addressing,
high level programming, and compilation. The tool is based on a
simple, virtual CPU architecture called the One Address Machine. A
compiler allows to take programs written in a special programming
language, called OAMPL, and transform them into OAM assembly. An OAM
assembler/emulator allows to interpret and execute OAM assembly code
(produced by the compiler or written directly).
The OAMulator is targeted at students who
take introductory courses in information technology or information
systems. The OAMulator is designed to take the mystery out of
the CPU architecture and let students gain confidence with the concepts
of compilers and binary execution.
The OAM architecture and OAMPL language were introduced by
Alberto Maria Segre.
The Web based compiler and assembler/emulator were developed by
- Try the OAMulator!
- Download the
OAMulator; to install it on your server:
- extract the archive (e.g., in UNIX, type 'tar xzf OAM.tgz')
- read and agree to the GNU General Public License (file COPYING)
- make sure you have Perl installed
- make sure you have a Web (HTTP) server configured to allow CGI or mod_perl
- save the CGI script (oamulator.cgi) in a CGI-enabled directory on your server
- make sure the script is world-readable and world-executable
- if you are familiar with Perl you may edit a couple of localized parameters
- you may rename the script or make a symbolic link named, say, index.cgi
- point a browser to the script URL -- have fun!
- Read a paper on
OAM, OAMPL, and the OAMulator from the
ACM Journal of Educational
Resources in Computing (mostly for instructors)
- Read a presentation on OAM and OAMPL including a tutorial on the OAMulator
- PDF (recommended)
- HTML (created with PowerPoint; not friendly to some browsers)
- Sample OAM/OAMPL assignments
- Quick OAM/OAMPL reference
free software released under the terms of the
NSF/ACM CSTC official resource
Listed in CPAN scripts directory