File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ (* * Võrrandisüsteemi kaudu abstraktne interpretatsioon. *)
2+
3+ (* * Võrrandisüsteeme saab luua kasutades erinevaid täisarve abstraheerivad domeene.
4+ Vt. Abseval. *)
5+ module Make (ID : IntDomain.S ) =
6+ struct
7+ (* * Abstraktne interpretaator.
8+ Abseval.eval_stmt me siin tegelikult ei kasuta. *)
9+ module Abseval = Abseval. Make (ID )
10+ module ED = Abseval. ED
11+ open Abseval
12+
13+ (* * Väärtustab juhtvoograafi serva keskkonnas.
14+ Vihje: Abseval.eval_expr.
15+ Vihje: Abseval.eval_guard. *)
16+ let eval_edge (env : ED.t ) (edge : Cfg.Edge.t ): ED.t =
17+ failwith " TODO"
18+
19+
20+ (* * Võrrandisüsteem juhtvoograafiga defineeritud programmi jaoks. *)
21+ module MakeSys (C : sig
22+ val cfg : Cfg .t (* * Juhtvoograaf. *)
23+
24+ val entry_env : ED .t (* * Algne abstraktne väärtuskeskkond. *)
25+ end ) =
26+ struct
27+ open C
28+
29+ module V = Cfg. Node (* * Muutujad on juhtvoograafi tipud. *)
30+
31+ module D = ED (* * Väärtused on väärtuskeskkonna domeenist. *)
32+
33+ let vars = Cfg. nodes cfg (* * Kõik juhtvoograafi tipud. *)
34+
35+ (* * Abstraktse väärtustamise võrrandite paremad pooled.
36+ Vihje: Cfg.pred.
37+ Vihje: eval_edge. *)
38+ let f (node : V.t ) (get : V.t -> D.t ): D.t =
39+ failwith " TODO"
40+ end
41+ end
Original file line number Diff line number Diff line change 1+ (library
2+ (name constraint_abseval)
3+ (libraries constraint cfg domain abseval))
You can’t perform that action at this time.
0 commit comments