Legend:
Library
Module
Module type
Parameter
Class
Class type
Time-stamp: <modified the 21/11/2016 (at 17:07) by Erwan Jahier>
Some experiments on heuristics used in schedule Actions. Indeed, there are 2 dimensions:
at worst, there exists n! possible topological sorts (total orderings of actions) of a DAG (a partial ordering induced by dependencies). Some orderings are better than others because they makes it possible to factorize test opennings. Indeed, compare
"if c then e1; if c then e2;"
with
"if c then (e1;e2)"
Beside, some more tests can be saved by duplicating code. for ex
"if c then e1 ; e2 ; if c then e3;"
can be tranformed into
"if c then (e1 ; e2 ; e3) else e2;"
which saves 1 test. But of course the code size may blows up, and some trade-offs should be chosen.
Idées d'heuristiques :
Quand on choisit un successeur parmis dep(a), on pourrait prendre celui qui a le moins de dépendances.