Text this: Analyzing data dependencies, detecting AND-parallelism and optimizing backtracking in prolog programs /