Run-time Algorithm Specialisation

Run-time Algorithm Specialisation

In computer science, run-time algorithm specialization is a methodology for creating efficient algorithms for costly computation tasks of certain kinds. The methodology originates in the field of automated theorem proving and, more specifically, in the Vampire theorem prover project.

The idea is inspired by the use of partial evaluation in optimising program translation. Many core operations in theorem provers exhibit the following pattern. Suppose that we need to execute some algorithm in a situation where a value of is fixed for potentially many different values of . In order to do this efficiently, we can try to find a specialization of for every fixed, i.e., such an algorithm, that executing is equivalent to executing .

The specialized algorithm may be more efficient than the generic one, since it can exploit some particular properties of the fixed value . Typically, can avoid some operations that would have to perform, if they are known to be redundant for this particular parameter . In particular, we can often identify some tests that are true or false for, unroll loops and recursion, etc.

Read more about Run-time Algorithm Specialisation:  Difference From Partial Evaluation, Specialization With Compilation, Data-and-algorithm Specialization, See Also