Created page with 'Category:Developer Manual __NOTOC__ === TheProB Tcl/Tk cross-language architecture === The ProB Tcl/Tk contains a mixture of Prolog and Tcl/Tk source code. The core (i.e., …' |
|||
Line 10: | Line 10: | ||
Overall, the communication works as follows: | Overall, the communication works as follows: | ||
* on startup ProB launches Tcl/Tk | * on startup ProB launches Tcl/Tk; most of the GUI code can be found inside <tt> main_prob_tcltk_gui.tcl</tt> | ||
* from then on Tcl/Tk controls the GUI and calls Prolog predicates | * from then on Tcl/Tk controls the GUI and calls Prolog predicates | ||
* Tcl/Tk code calls Prolog using <tt>
prolog PRED(…X…Y…)</tt> | * Tcl/Tk code calls Prolog using <tt>
prolog PRED(…X…Y…)</tt> |
The ProB Tcl/Tk contains a mixture of Prolog and Tcl/Tk source code. The core (i.e., the constraint solver, the animation engine, the model checker, ...) are all written in Prolog (which in turn may call some C external functions, e.g., for LTL model checking).
We use the SICStus library(tcltk) (see chapter 10.40 of SICStus manual)
Overall, the communication works as follows:
The library(tcltk) puts restrictions on what can be transferred from Prolog to Tcl/Tk and then extracted using $prolog_variables(VAR):