tweaks to compiler doc

This commit is contained in:
Kartik K. Agaram 2022-04-01 06:13:20 -07:00
parent 66a74fdb72
commit b351ca6ed4
2 changed files with 10 additions and 8 deletions

View File

@ -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">&lt;-</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">&lt;-</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'.)

View File

@ -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'.)