sig
module type SCHEDULER =
sig
type st
val hasNext : unit -> bool
val next : unit -> Dataflow.SCHEDULER.st
val add : Dataflow.SCHEDULER.st -> unit
end
module Worklist :
sig
type st = Dex.link
val hasNext : unit -> bool
val next : unit -> st
val add : st -> unit
end
module type LATTICE =
sig
type l
val bot : Dataflow.LATTICE.l
val top : Dataflow.LATTICE.l
val meet :
Dataflow.LATTICE.l -> Dataflow.LATTICE.l -> Dataflow.LATTICE.l
val compare : Dataflow.LATTICE.l -> Dataflow.LATTICE.l -> int
val to_s : Dataflow.LATTICE.l -> string
end
module type DATAFLOW =
sig
type l
type st
val init : Dataflow.DATAFLOW.st -> Dataflow.DATAFLOW.l
val trans :
Dataflow.DATAFLOW.l -> Dataflow.DATAFLOW.st -> Dataflow.DATAFLOW.l
end
module type ANALYSIS =
sig
type l
type st
val to_s : Dataflow.ANALYSIS.l -> string
val inn : Dataflow.ANALYSIS.st -> Dataflow.ANALYSIS.l
val out : Dataflow.ANALYSIS.st -> Dataflow.ANALYSIS.l
val fixed_pt : unit -> unit
end
module FwDFA :
functor (SC : SCHEDULER) ->
functor (LT : LATTICE) ->
functor
(CF : sig
type st = SC.st
val start : st
val last : st
val all : st list
val pred : st -> st list
val succ : st -> st list
val to_s : st -> string
end) ->
functor
(DF : sig
type l = LT.l
type st = SC.st
val init : st -> l
val trans : l -> st -> l
end) ->
sig
type l = LT.l
type st = SC.st
val to_s : l -> string
val inn : st -> l
val out : st -> l
val fixed_pt : unit -> unit
end
module BwDFA :
functor (SC : SCHEDULER) ->
functor (LT : LATTICE) ->
functor
(CF : sig
type st = SC.st
val start : st
val last : st
val all : st list
val pred : st -> st list
val succ : st -> st list
val to_s : st -> string
end) ->
functor
(DF : sig
type l = LT.l
type st = SC.st
val init : st -> l
val trans : l -> st -> l
end) ->
sig
type l = LT.l
type st = SC.st
val to_s : l -> string
val inn : st -> l
val out : st -> l
val fixed_pt : unit -> unit
end
end
Web Accessibility