Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
GOOL is a free object-oriented code translation software under the terms of the GNU General Public License (v3).
You may find further informations about the copyright terms on the license page: License
The most widely used Object-Oriented Programming languages (Java, C++, C#, Android, Objective C) are all roughly the same; so long as one does not enter device-dependent programming (GUI, H/W, ...). The core constructs of these languages can be translated into one another.
GOOL stands for General Object-Oriented Language. It is not yet another concrete language, but rather, an abstract intermediate language which stands for whatever is common in all these Object-Oriented Programmming (OOP) languages. At the moment the GOOL system takes a Java input and produces a C++, C# output. Thus, as it stands, the GOOL program is a lightweight core-Java (or core-C++) to core- C++, C#, Android, Python, Objective C (and Java) translator generating clean, readable code.
However, everything is done so that, in the future, the GOOL program takes other OOP languages as inputs, and produces other OOP languages as outputs. Indeed, the structure of the project is so that more input/output languages can be added, and more primitives be recognized/generated.
Still, the final objective is not to reach a comprehensive translator. The aim is to provide a tool that lets you write device-independent pieces of programs for many output languages, in one go. The device-dependent pieces of program do not prevent you from using GOOL; although they will not be implemented into the output language, they will still be translated in a generic, syntactic manner.