News

Vasileios Klimis: Turning a Compiler Against Itself

Centre for Fundamentals of AI and Computational Theory 

29 April 2026

Vasileios Klimis will be presenting a paper at the 34th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering to be held 5 - 9 July 2026 in Montreal, Canada.

It introduces a new way to validate compilers and so make all software created using them potentially more reliable.

Abstract:

Modern software, from the network switches that route our internet traffic to the graphics cards that render our games, relies on highly specialised programs translated by even more complex software called compilers. A bug in a compiler is like a flaw in a factory blueprint: every product made from it can be subtly broken in ways that are incredibly difficult to detect. Traditional methods for finding these bugs often require a perfect "master copy" to compare against, which is frequently unavailable.

This research introduces a new validation principle called compilomorphism, a term blending "compiler" and the mathematical concept of "isomorphism". An isomorphism describes a structure-preserving mapping between two objects -- a way of saying two things are different in representation but identical in structure. We apply this idea to compiler testing: a correct compiler should act as an isomorphism, preserving the essential behaviour of a program even when presented with different but semantically equivalent versions.

This work uses this principle to turn a compiler against itself. This method automatically generates multiple program variants that are structurally different but logically identical. When the compiler processes these variants, the results should be functionally indistinguishable. If they are not, the compiler has failed to act as an isomorphism, revealing a deep semantic bug. This self-consistency check acts as a built-in oracle for correctness. This work provides the formal foundation for this idea and demonstrates its feasibility with a working prototype, opening a new direction for automatically ensuring the reliability of critical software infrastructure.

Reference:

Klimis V. Compilomorphic Fuzzing: Turning a Compiler Against Itself. In Proceedings of the 34th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (FSE Companion '26), Montreal, QC, Canada, 2026.

People: Vasileios KLIMIS

Contact: Vasileios Klimis
Email: v.klimis@qmul.ac.uk

Updated by: Paul Curzon