HMMM.js

Javascript Library and Web App

A simulated 16-bit, 24 instruction computer

Harvey-Mudd Miniature Machine (HMMM) is a simulated 16-bit, 24-instruction computer with an associated assembly language. HMMM was developed for Harvey Mudd College’s Introduction to Computer Science course and a full explanation of the machine can be found in the CS For All online text. Documentation for the language can be found on Harvey Mudd’s website.

HMMM.js is a Javascript implementation of the assembler and simulator for this machine. The primary goals behind this implementation were to lower the barriers to entry in the language and to provide a useful visual interface for the machine. Additionally, the implementation was structured as simple as possible (i.e., single file, no dependencies) so that students who were interested could read and build additional functionality on top of the code.

In addition to my own classes, the HMMM.js online simulator has been used in computer science courses at Harvey-Mudd College, Castilleja School, and University of Massachusetts Boston.

Screenshots



Online Simulator

Source Code

Technical Info


HMMM.js is written in pure Javascript with zero dependencies.

The HMMM online simulator uses HMMM.js to power the assembler and simulator and is also built with AngularJS, Bootstrap, Ace Editor, and FileSaver.js.