Discussion Ciao Prolog

In this section we will provide a critical discussion of the comparison with the Ciao Prolog system. The Prolog system shows an average slowdown very similar to the slowdown of SICStus Prolog. The average slowdown is around 73.1%. The best speed up is seen for the mtak test program with around 13.9%. The worst slow-down is seen for the deriv test program with around 470.8%.

Picture 12: Ciao Prolog Performance


The relatively good performance of tictac is a highlight. The test program demands efficient deep unification. This is an area that is not yet covered by any of our optimizations. On the downside we find the deriv test program. Here our own analysis shows that the deriv test program profits most from stack frame elimination. We might thus speculate that eventually the Ciao Prolog system might need some improvement in stack frame elimination.

The problem with calculate can be also due to issues with the DCG translation. The Ciao Prolog system uses the ‘C’/3 construct to translate terminals. It is the only system besides our system that makes use of this construct. Our own analysis shows that this DCG translation can profit from head variable elimination, especially temporary variables that can speed up guards. This is consistent with the problem of the mtak test program which makes also use of a guard.