Averest


CmdType Type

The following are instructions of the virtual intermediate machine (cmd language) with variables y,x1,x2,y1,y2:

  • CmdAssert(x) asserts that x!=0 should hold at this place.
  • CmdCopy(y,x) denotes the assignment y := x.
  • CmdSglAssign(y,x1,op2,x2) denotes the assignment y := x1 op2 x2 with a binary operator op2.
  • CmdDblAssign(y1,y2,x1,op2,x2) denotes the assignment y1,y2 := x1 op2 x2 with a binary operator op2. The rhs is evaluated in full precision and y1@y2 is seen as a double machine word.
  • CmdAccessArr(y,x1,x2) denotes y = x1[x2].
  • CmdAssignArr(y,x1,x2) denotes y[x1] = x2.
  • CmdAssignCnd(y,c,x1,x0) is a conditional assignment y = (c?x1:x0).
  • CmdGoto(i) denotes goto(i).
  • CmdIfGoto(x,i) denotes if(x) goto(i).
  • CmdReturn(x) denotes return(x).
  • CmdSync instructs the tread to wait until its writes to the shared variables have been made visible to the other threads.
Hence, all expressions make use of at most one operator, and therefore, we have to abbreviate intermediate expressions by temporary variables. Moreover, function calls have to be inlined since there is no means for the latter. Still, there can be threads of cmd language instructions, with the same shared variables.

Union cases

Union case Description

CmdAccessArr(string, string, string)

Full Usage: CmdAccessArr(string, string, string)

Parameters:
    Item1 : string
    Item2 : string
    Item3 : string

Item1 : string
Item2 : string
Item3 : string

CmdAssert string

Full Usage: CmdAssert string

Parameters:
    Item : string

Item : string

CmdAssignArr(string, string, string)

Full Usage: CmdAssignArr(string, string, string)

Parameters:
    Item1 : string
    Item2 : string
    Item3 : string

Item1 : string
Item2 : string
Item3 : string

CmdAssignCnd(string, string, string, string)

Full Usage: CmdAssignCnd(string, string, string, string)

Parameters:
    Item1 : string
    Item2 : string
    Item3 : string
    Item4 : string

Item1 : string
Item2 : string
Item3 : string
Item4 : string

CmdCopy(string, string)

Full Usage: CmdCopy(string, string)

Parameters:
    Item1 : string
    Item2 : string

Item1 : string
Item2 : string

CmdDblAssign(string, string, string, Ops2, string)

Full Usage: CmdDblAssign(string, string, string, Ops2, string)

Parameters:
    Item1 : string
    Item2 : string
    Item3 : string
    Item4 : Ops2
    Item5 : string

Item1 : string
Item2 : string
Item3 : string
Item4 : Ops2
Item5 : string

CmdGoto int

Full Usage: CmdGoto int

Parameters:
    Item : int

Item : int

CmdIfGoto(string, int)

Full Usage: CmdIfGoto(string, int)

Parameters:
    Item1 : string
    Item2 : int

Item1 : string
Item2 : int

CmdReturn string

Full Usage: CmdReturn string

Parameters:
    Item : string

Item : string

CmdSglAssign(string, string, Ops2, string)

Full Usage: CmdSglAssign(string, string, Ops2, string)

Parameters:
    Item1 : string
    Item2 : string
    Item3 : Ops2
    Item4 : string

Item1 : string
Item2 : string
Item3 : Ops2
Item4 : string

CmdSync

Full Usage: CmdSync