Code you will write or edit
asmparse.sml
You’ll supplement last week’s unparser with a real parser.
assembler.sml
You’ll put the label-elimination pass here. Added to parsing and unparsing, that’s all there is to an assembler!
Code you will continue to look at and understand
In roughly the order you’ll need:
asm.sml
The internal representation of assembly code.
producer-sig.sml
The interface to our library of parsing combinators.
error-sig.sml
The interface to our version of the error monad.
env.sml
The environment abstraction that you’ll use to store the location of every label.
object-code.sml
The internal representation of virtual object code, plus a module that unparses this representation to its on-disk form.
Other code
This week you should have little need for impossible.sml
, all.cm
, languages.sml
, uft.sml
, error-module.sml
, producer-functor.sml
, main.sml
, main.cm
, impossible.cm
, ioutil.sml
, or (in the SVM) svm-dis.c
.