“Really Automatic Scalable Object-Oriented Reengineering”, Marco Trudel, Carlo A. Furia, Martin Nordio, Bertrand Meyer2013 ()⁠:

Even when implemented in a purely procedural programming language, properly designed programs possess elements of good design that are expressible through object-oriented constructs and concepts. For example, placing structured types and the procedures operating on them together in the same module achieves a weak form of encapsulation that reduces inter-module coupling.

This paper presents a novel technique, and a supporting tool AutoOO, that extracts such implicit design elements from C applications and uses them to build re-engineered object-oriented programs. The technique is completely automatic: users only provide a source C program, and the tool produces an object-oriented application written in Eiffel with the same input/output behavior as the source.

An extensive evaluation on 10 open-source programs (including the editor vim and the math library libgsl) demonstrates that our technique works on applications of large size and builds re-engineered programs exhibiting elements of good object-oriented design, such as low coupling and high cohesion of classes, and proper encapsulation. The re-engineered programs also leverage advanced features such as inheritance, contracts, and exceptions to achieve a better usability and a clearer design.

The tool AutoOO is freely available for download.

[Laurence Tratt: “I remember reading “Really Automatic Scalable Object-Oriented Reengineering”, which describes a system for translating large C system to Eiffel. Although I had seen a couple of commercial systems tackling “old” languages (eg. Fortran to Java), I was sceptical that a paper at an academic conference would tackle anything very hard. I was thus impressed when I saw that wget was translated automatically: it’s not a small program. I was stunned when I saw that Vim was translated, even down to things like signal handling. I also can’t mention this paper without noting how beautifully written it is: it’s rare to see authors put so much care into making the reader’s journey through the paper a pleasant one.“]