Packages

class RISC extends Machine

Abstract state machine simulation of a simple RISC architecture. Run the given code, reading input from console and emitting output using emitter.

Source
RISC.scala
Linear Supertypes
Machine, PrettyPrinter, PrettyPrinterBase, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. RISC
  2. Machine
  3. PrettyPrinter
  4. PrettyPrinterBase
  5. AnyRef
  6. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new RISC(code: Code, console: Console, emitter: Emitter)

Type Members

  1. class Doc extends ((output.PrettyPrinter.Indent, output.PrettyPrinter.Width)) ⇒ ((Int, Queue[(Int, (Boolean) ⇒ ((Int) ⇒ Trampoline[Seq[String]]) ⇒ Trampoline[(Int) ⇒ Trampoline[Seq[String]]])]) ⇒ Trampoline[(Int) ⇒ Trampoline[Seq[String]]]) ⇒ Trampoline[(Int, Queue[(Int, (Boolean) ⇒ ((Int) ⇒ Trampoline[Seq[String]]) ⇒ Trampoline[(Int) ⇒ Trampoline[Seq[String]]])]) ⇒ Trampoline[(Int) ⇒ Trampoline[Seq[String]]]] with output.PrettyPrinter.DocOps
    Definition Classes
    PrettyPrinter
  2. trait DocOps extends AnyRef
    Definition Classes
    PrettyPrinterBase
  3. type Indent = Int
    Definition Classes
    PrettyPrinterBase
  4. type Layout = String
    Definition Classes
    PrettyPrinterBase
  5. class ParamState[T, U] extends State[Map[T, U]]
    Definition Classes
    Machine
  6. class ParamUpdate[T, U] extends Update
    Definition Classes
    Machine
  7. class ParamUpdater[T, U] extends AnyRef
    Definition Classes
    Machine
  8. trait PrettyPrintable extends AnyRef
    Definition Classes
    PrettyPrinterBase
  9. class ScalarUpdate[T] extends Update
    Definition Classes
    Machine
  10. class State[T] extends AnyRef
    Definition Classes
    Machine
  11. abstract class Update extends AnyRef
    Definition Classes
    Machine
  12. type Width = Int
    Definition Classes
    PrettyPrinterBase
  13. type Word = Int

    Words are 32-bits long.

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. val FP: ParamUpdater[RegNo, Int]
  5. val LNK: ParamUpdater[RegNo, Int]
  6. val Mem: ParamState[Int, Int]

    Byte addressed store of words.

  7. val N: State[Boolean]

    Condition code: less than.

  8. val PC: ParamUpdater[RegNo, Int]

    Names for special registers.

  9. val R: ParamState[RegNo, Int]

    Integer register file addressed by 0-31.

  10. val SP: ParamUpdater[RegNo, Int]
  11. val Z: State[Boolean]

    Condition code: zero.

  12. def align(d: Doc): Doc
    Definition Classes
    PrettyPrinterBase
  13. def ampersand: Doc
    Definition Classes
    PrettyPrinterBase
  14. def angles(d: Doc): Doc
    Definition Classes
    PrettyPrinterBase
  15. def any(a: Any): Doc
    Definition Classes
    PrettyPrinterBase
  16. implicit def anyToPrettyPrintable(a: Any): PrettyPrintable
    Definition Classes
    PrettyPrinterBase
  17. def arithmetic(instr: Instr): Unit

    Execute arithmetic instructions.

  18. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  19. def asterisk: Doc
    Definition Classes
    PrettyPrinterBase
  20. def atsign: Doc
    Definition Classes
    PrettyPrinterBase
  21. def backquote: Doc
    Definition Classes
    PrettyPrinterBase
  22. def backslash: Doc
    Definition Classes
    PrettyPrinterBase
  23. def braces(d: Doc): Doc
    Definition Classes
    PrettyPrinterBase
  24. def brackets(d: Doc): Doc
    Definition Classes
    PrettyPrinterBase
  25. def caret: Doc
    Definition Classes
    PrettyPrinterBase
  26. def cat(ds: Seq[Doc]): Doc
    Definition Classes
    PrettyPrinterBase
  27. implicit def char(c: Char): Doc
    Definition Classes
    PrettyPrinterBase
  28. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  29. def colon: Doc
    Definition Classes
    PrettyPrinterBase
  30. def column(f: (Int) ⇒ Doc): Doc
    Definition Classes
    PrettyPrinter → PrettyPrinterBase
  31. def comma: Doc
    Definition Classes
    PrettyPrinterBase
  32. def control(instr: Instr): Unit

    Execute control instructions, including default control step.

  33. def debug: Boolean

    Debug flag.

    Debug flag. Set this to true in sub-classes or objects to obtain tracing information during execution of the machine.

    Definition Classes
    RISC → Machine
  34. val defaultIndent: Int
    Definition Classes
    PrettyPrinterBase
  35. val defaultWidth: Int
    Definition Classes
    PrettyPrinterBase
  36. def dollar: Doc
    Definition Classes
    PrettyPrinterBase
  37. def dot: Doc
    Definition Classes
    PrettyPrinterBase
  38. def dquote: Doc
    Definition Classes
    PrettyPrinterBase
  39. def dquotes(d: Doc): Doc
    Definition Classes
    PrettyPrinterBase
  40. def empty: Doc
    Definition Classes
    PrettyPrinter → PrettyPrinterBase
  41. def enclose(l: Doc, d: Doc, r: Doc): Doc
    Definition Classes
    PrettyPrinterBase
  42. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  43. def equal: Doc
    Definition Classes
    PrettyPrinterBase
  44. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  45. def exclamation: Doc
    Definition Classes
    PrettyPrinterBase
  46. def execute(instr: Instr): Unit

    Execute a single instruction.

  47. def fillcat(ds: Seq[Doc]): Doc
    Definition Classes
    PrettyPrinterBase
  48. def fillsep(ds: Seq[Doc], sep: Doc): Doc
    Definition Classes
    PrettyPrinterBase
  49. def fillsep(ds: Seq[Doc]): Doc
    Definition Classes
    PrettyPrinterBase
  50. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  51. def finit(): Unit
    Definition Classes
    Machine
  52. def folddoc(ds: Seq[Doc], f: (Doc, Doc) ⇒ Doc): Doc
    Definition Classes
    PrettyPrinterBase
  53. def forwslash: Doc
    Definition Classes
    PrettyPrinterBase
  54. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
  55. def group(d: Doc): Doc
    Definition Classes
    PrettyPrinter → PrettyPrinterBase
  56. val halt: State[Boolean]

    Halt flag.

    Halt flag. True if the machine should stop executing, false otherwise.

  57. def hang(d: Doc, i: Indent): Doc
    Definition Classes
    PrettyPrinterBase
  58. def hash: Doc
    Definition Classes
    PrettyPrinterBase
  59. def hashCode(): Int
    Definition Classes
    AnyRef → Any
  60. def hcat(ds: Seq[Doc]): Doc
    Definition Classes
    PrettyPrinterBase
  61. def hsep(ds: Seq[Doc], sep: Doc): Doc
    Definition Classes
    PrettyPrinterBase
  62. def hsep(ds: Seq[Doc]): Doc
    Definition Classes
    PrettyPrinterBase
  63. def indent(d: Doc, i: Indent): Doc
    Definition Classes
    PrettyPrinterBase
  64. def init(): Unit

    Initialise the machine.

    Initialise the machine.

    Definition Classes
    RISC → Machine
  65. def inputoutput(instr: Instr): Unit

    Execute input/output instructions.

  66. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  67. def langle: Doc
    Definition Classes
    PrettyPrinterBase
  68. def lbrace: Doc
    Definition Classes
    PrettyPrinterBase
  69. def lbracket: Doc
    Definition Classes
    PrettyPrinterBase
  70. def line: Doc
    Definition Classes
    PrettyPrinter → PrettyPrinterBase
  71. def line(repl: Layout): Doc
    Definition Classes
    PrettyPrinter → PrettyPrinterBase
  72. def linebreak: Doc
    Definition Classes
    PrettyPrinter → PrettyPrinterBase
  73. def list[T](l: Seq[T], prefix: String, elemToDoc: (T) ⇒ Doc, sep: Doc, sepfn: (Seq[Doc], Doc) ⇒ Doc): Doc
    Definition Classes
    PrettyPrinterBase
  74. def lparen: Doc
    Definition Classes
    PrettyPrinterBase
  75. def lsep(ds: Seq[Doc], sep: Doc): Doc
    Definition Classes
    PrettyPrinterBase
  76. def lsep2(ds: Seq[Doc], sep: Doc): Doc
    Definition Classes
    PrettyPrinterBase
  77. def lterm(ds: Seq[Doc], term: Doc): Doc
    Definition Classes
    PrettyPrinterBase
  78. def main(): Unit

    The main rule of this machine.

    The main rule of this machine.

    Definition Classes
    RISC → Machine
  79. def memory(instr: Instr): Unit

    Execute memory instructions.

  80. def minus: Doc
    Definition Classes
    PrettyPrinterBase
  81. val name: String
    Definition Classes
    Machine
  82. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  83. def nest(d: Doc, j: Indent): Doc
    Definition Classes
    PrettyPrinter → PrettyPrinterBase
  84. def nesting(f: (Int) ⇒ Doc): Doc
    Definition Classes
    PrettyPrinter → PrettyPrinterBase
  85. final def notify(): Unit
    Definition Classes
    AnyRef
  86. final def notifyAll(): Unit
    Definition Classes
    AnyRef
  87. def padto(p: Int, d: Doc): Doc
    Definition Classes
    PrettyPrinterBase
  88. def padtobreak(p: Int, d: Doc): Doc
    Definition Classes
    PrettyPrinterBase
  89. implicit def paramUpdaterToU[T, U, V >: U](up: ParamUpdater[T, U]): V
    Definition Classes
    Machine
  90. def parens(d: Doc): Doc
    Definition Classes
    PrettyPrinterBase
  91. def percent: Doc
    Definition Classes
    PrettyPrinterBase
  92. def performUpdates(): Boolean
    Definition Classes
    Machine
  93. def plist(l: List[PrettyPrintable], prefix: String, elemToDoc: (PrettyPrintable) ⇒ Doc, sep: Doc, sepfn: (Seq[Doc], Doc) ⇒ Doc): Doc
    Definition Classes
    PrettyPrinterBase
  94. def plus: Doc
    Definition Classes
    PrettyPrinterBase
  95. def pretty(d: Doc, w: Width): Layout
    Definition Classes
    PrettyPrinter → PrettyPrinterBase
  96. def pretty(p: PrettyPrintable): Layout
    Definition Classes
    PrettyPrinterBase
  97. def pretty_any(a: Any): Layout
    Definition Classes
    PrettyPrinterBase
  98. def pseq(l: Seq[PrettyPrintable], prefix: String, elemToDoc: (PrettyPrintable) ⇒ Doc, sep: Doc, sepfn: (Seq[Doc], Doc) ⇒ Doc): Doc
    Definition Classes
    PrettyPrinterBase
  99. def question: Doc
    Definition Classes
    PrettyPrinterBase
  100. def rangle: Doc
    Definition Classes
    PrettyPrinterBase
  101. def rbrace: Doc
    Definition Classes
    PrettyPrinterBase
  102. def rbracket: Doc
    Definition Classes
    PrettyPrinterBase
  103. def reset(): Unit
    Definition Classes
    Machine
  104. def rparen: Doc
    Definition Classes
    PrettyPrinterBase
  105. def run(): Unit
    Definition Classes
    Machine
  106. def semi: Doc
    Definition Classes
    PrettyPrinterBase
  107. def sep(ds: Seq[Doc]): Doc
    Definition Classes
    PrettyPrinterBase
  108. def seq[T](l: Seq[T], prefix: String, elemToDoc: (T) ⇒ Doc, sep: Doc, sepfn: (Seq[Doc], Doc) ⇒ Doc): Doc
    Definition Classes
    PrettyPrinterBase
  109. def softbreak: Doc
    Definition Classes
    PrettyPrinterBase
  110. def softline: Doc
    Definition Classes
    PrettyPrinterBase
  111. def space: Doc
    Definition Classes
    PrettyPrinterBase
  112. def spaces(n: Int): Doc
    Definition Classes
    PrettyPrinterBase
  113. def squote: Doc
    Definition Classes
    PrettyPrinterBase
  114. def squotes(d: Doc): Doc
    Definition Classes
    PrettyPrinterBase
  115. def ssep(ds: Seq[Doc], sep: Doc): Doc
    Definition Classes
    PrettyPrinterBase
  116. implicit def stateTToT[T, U >: T](t: State[T]): U
    Definition Classes
    Machine
  117. def step: Boolean
    Definition Classes
    Machine
  118. final def steps(nstep: Int): Unit
    Definition Classes
    Machine
    Annotations
    @tailrec()
  119. def sterm(ds: Seq[Doc], term: Doc): Doc
    Definition Classes
    PrettyPrinterBase
  120. def string(s: String): Doc
    Definition Classes
    PrettyPrinterBase
  121. def surround(d: Doc, b: Doc): Doc
    Definition Classes
    PrettyPrinterBase
  122. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  123. implicit def text(t: String): Doc
    Definition Classes
    PrettyPrinter → PrettyPrinterBase
  124. def tilde: Doc
    Definition Classes
    PrettyPrinterBase
  125. def toString(): String
    Definition Classes
    AnyRef → Any
  126. def underscore: Doc
    Definition Classes
    PrettyPrinterBase
  127. def value(v: Any): Doc
    Definition Classes
    PrettyPrinterBase
  128. def vcat(ds: Seq[Doc]): Doc
    Definition Classes
    PrettyPrinterBase
  129. def verticalbar: Doc
    Definition Classes
    PrettyPrinterBase
  130. def vsep(ds: Seq[Doc], sep: Doc): Doc
    Definition Classes
    PrettyPrinterBase
  131. def vsep(ds: Seq[Doc]): Doc
    Definition Classes
    PrettyPrinterBase
  132. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  133. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  134. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  135. def width(d: Doc, f: (Int) ⇒ Doc): Doc
    Definition Classes
    PrettyPrinterBase

Deprecated Value Members

  1. def product(p: Any): Doc
    Definition Classes
    PrettyPrinterBase
    Annotations
    @deprecated
    Deprecated

    (Since version 1.2.1) Use PrettyPrinter.any instead.

Inherited from Machine

Inherited from PrettyPrinter

Inherited from PrettyPrinterBase

Inherited from AnyRef

Inherited from Any

Ungrouped