Source code optimization using equivalent mutants.
Context: A mutant is a program obtained by syntactically modifying a program’s source code; an equivalent mutant is a mutant, which is functionally equivalent to the original program. Mutants are primarily used in mutation testing, and when deriving a test suite, obtaining an equivalent mutant is considered to be highly negative, although these equivalent mutants could be used for other purposes.
Objective: We present an approach that considers equivalent mutants valuable, and utilizes them for source code optimization. Source code optimization enhances a program’s source code preserving its behavior.
Method: We showcase a procedure to achieve source code optimization based on equivalent mutants and discuss proper mutation operators.
Results: Experimental evaluation with Java and C programs demonstrates the applicability of the proposed approach.
Conclusion: An algorithmic approach for source code optimization using equivalent mutants is proposed. It is showcased that whenever applicable, the approach can outperform traditional compiler optimizations.