tweaks to compiler doc
This commit is contained in:
parent
66a74fdb72
commit
b351ca6ed4
|
@ -31,10 +31,11 @@ body { font-family: monospace; color: #000000; background-color: #ffffd7; }
|
|||
<span class="muComment">## Mu's instructions and their table-driven translation</span>
|
||||
|
||||
See <a href="http://akkartik.name/akkartik-convivial-20200607.pdf">http://akkartik.name/akkartik-convivial-20200607.pdf</a> for the complete
|
||||
story. In brief: Mu is a statement-oriented language. Blocks consist of flat
|
||||
lists of instructions. Instructions can have inputs after the operation, and
|
||||
outputs to the left of a '<span class="Special"><-</span>'. Inputs and outputs must be variables. They can't
|
||||
include nested expressions. Variables can be literals ('n'), or live in a
|
||||
story. In brief: Mu is a memory-safe statement-oriented language where most
|
||||
statements translate to a single instruction of machine code. Blocks consist of
|
||||
flat lists of instructions. Instructions can have inputs after the operation,
|
||||
and outputs to the left of a '<span class="Special"><-</span>'. Inputs and outputs must be variables. They
|
||||
can't include nested expressions. Variables can be literals ('n'), or live in a
|
||||
register ('var/reg') or in memory ('var') at some 'stack-offset' from the 'ebp'
|
||||
register. Outputs must be registers. To modify a variable in memory, pass it in
|
||||
by reference as an input. (Inputs are more precisely called 'inouts'.)
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
## Mu's instructions and their table-driven translation
|
||||
|
||||
See http://akkartik.name/akkartik-convivial-20200607.pdf for the complete
|
||||
story. In brief: Mu is a statement-oriented language. Blocks consist of flat
|
||||
lists of instructions. Instructions can have inputs after the operation, and
|
||||
outputs to the left of a '<-'. Inputs and outputs must be variables. They can't
|
||||
include nested expressions. Variables can be literals ('n'), or live in a
|
||||
story. In brief: Mu is a memory-safe statement-oriented language where most
|
||||
statements translate to a single instruction of machine code. Blocks consist of
|
||||
flat lists of instructions. Instructions can have inputs after the operation,
|
||||
and outputs to the left of a '<-'. Inputs and outputs must be variables. They
|
||||
can't include nested expressions. Variables can be literals ('n'), or live in a
|
||||
register ('var/reg') or in memory ('var') at some 'stack-offset' from the 'ebp'
|
||||
register. Outputs must be registers. To modify a variable in memory, pass it in
|
||||
by reference as an input. (Inputs are more precisely called 'inouts'.)
|
||||
|
|
Loading…
Reference in New Issue