8.10
4.1.3 v2 Register Allocation Languages
| (require cpsc411/langs/v2-reg-alloc) | package: cpsc411-lib |
asm-lang-v2/undead : grammar?
| p | ::= | (module info tail) | ||
| info | ::= | (#:from-contract (info/c (locals (aloc ...)) (undead-out undead-set-tree?))) | ||
| tail | ::= | (halt triv) | ||
| | | (begin effect ... tail) | |||
| effect | ::= | (set! aloc triv) | ||
| | | (set! aloc_1 (binop aloc_1 triv)) | |||
| | | (begin effect ... effect) | |||
| triv | ::= | aloc | ||
| | | int64 | |||
| binop | ::= | * | ||
| | | + | |||
| aloc | ::= | aloc? | ||
| int64 | ::= | int64? |
procedure
(asm-lang-v2/undead? a) → boolean?
a : any/c
Decides whether a is a valid program in the asm-lang-v2/undead grammar, represented as a quoted datum. The first non-terminal in the grammar defines valid programs.
procedure
a : asm-lang-v2/undead?
Evaluates a asm-lang-v2/undead program to a value.
asm-lang-v2/conflicts : grammar?
| p | ::= | (module info tail) | ||
| info | ::= | (#:from-contract (info/c (locals (aloc ...)) (conflicts ((aloc (aloc ...)) ...)))) | ||
| tail | ::= | (halt triv) | ||
| | | (begin effect ... tail) | |||
| effect | ::= | (set! aloc triv) | ||
| | | (set! aloc_1 (binop aloc_1 triv)) | |||
| | | (begin effect ... effect) | |||
| triv | ::= | aloc | ||
| | | int64 | |||
| binop | ::= | * | ||
| | | + | |||
| aloc | ::= | aloc? | ||
| int64 | ::= | int64? |
procedure
a : any/c
Decides whether a is a valid program in the asm-lang-v2/conflicts grammar, represented as a quoted datum. The first non-terminal in the grammar defines valid programs.
procedure
a : asm-lang-v2/conflicts?
Evaluates a asm-lang-v2/conflicts program to a value.