module type Chunk =sig
..end
The concrete memory is partionned into a vector of abstract data. Each component of the partition is called a memory chunk and holds an abstract representation of some part of the memory.
Remark: memory chunks are not required to be independant from each other,
provided the memory model implementation is consistent with the chosen
representation. Conversely, a given object might be represented by
several memory chunks. See Sigs.Model.domain
.
type
t
val self : string
val hash : t -> int
val equal : t -> t -> bool
val compare : t -> t -> int
val pretty : Format.formatter -> t -> unit
val tau_of_chunk : t -> Lang.F.tau
val basename_of_chunk : t -> string
val is_framed : t -> bool
Means the chunk is separated from anyother call side-effects.
If true
, entails that a function assigning everything can not modify
the chunk. Only used for optimisation, it would be safe to always
return false
.