This implements a fully formalized virtual machine for the (Harvard) TinyRam architecture.
Future plans are to extend it with an assembler and compiler from some more abstract imperative language, and C, eventually.
TinyRam description: papers/TinyRAM-spec-2.000.pdf
- Install
nix nix develop .#emacsornix develop .#vscodium- Run
emacsorcodiumfrom your terminal, either will now be available in your environment, for the duration of the shell.
nix develop
dune buildNote that this can take in excess of 30 minutes, depending on your system. This will also create a new copy of Tinyram_VM.hs, extracted from the Coq files, within the _build directory, a copy of which can be found in the src folder.
cabal new-buildand they can be run with
cabal new-runOpen up one of theories/*.v and type C-c C-ENTER to start the interactive session. Recall that C- is emacs-speak for holding the CTRL key.
Explore nix/doom.d/* to get a feel for what tools you've been given and things you might want to change, disable, or add.