Academy & Industry Research Collaboration Center
In this paper, the authors introduce a modular extension (plug-in) for Java language compilers and Integrated Development Environments (IDE) which adds operator overloading feature to Java language while preserving backward compatibility. The extension uses the idea of library-based language extensibility similar to SugarJ. But unlike most language extensions, it works directly inside the compiler and does not have any external preprocessors. This gives much faster compilation, better language compatibility and support of native developer tools (IDE, build tools). The extension plugs into Javac and eclipse Java compilers as well as in all tools whose use the compilers such as IDEs (Netbeans, Eclipse and IntelliJ IDEA), build tools (ant, maven and gradle), etc.