Theory.Semantics
The semantics of programs.
The semantics of a program is denoted with effects that this program produces, so effectively Program.Semantics = Effect
, but we reexport it in a separate module here, to separate the concerns.
type cls = Effect.cls
type t = unit Effect.t
val cls : (cls, unit Effect.sort) Bap_knowledge.Knowledge.cls
the class of program semantics values.
val slot : (program, t) Bap_knowledge.Knowledge.slot
the slot to store program semantics.
val value : (cls, unit Value.t) Bap_knowledge.Knowledge.slot
the value of the effect.
Represents the value of side-effectful compuations.
val code : (cls, string option) Bap_knowledge.Knowledge.slot
the memory contents of the program.
include Bap_knowledge.Knowledge.Value.S with type t := t
val empty : t
val domain : t Bap_knowledge.Knowledge.domain
include Base.Comparable.S with type t := t
val comparator : (t, comparator_witness) Base__.Comparator.comparator
include Core_kernel.Binable.S with type t := t
val bin_size_t : t Bin_prot.Size.sizer
val bin_write_t : t Bin_prot.Write.writer
val bin_read_t : t Bin_prot.Read.reader
val __bin_read_t__ : (int -> t) Bin_prot.Read.reader
val bin_writer_t : t Bin_prot.Type_class.writer
val bin_reader_t : t Bin_prot.Type_class.reader
val bin_t : t Bin_prot.Type_class.t