Skip to content

librecoop/GOOL

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GOOL

Description

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 to core- C++, C# translator generating clean, readable code. Moreover, improvements are currently being made to support Android, Objective C and Python as outputs.

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.

Contact

The project Wiki: https://github.com/librecoop/GOOL/wiki

Pablo Arrighi: http://membres-lig.imag.fr/arrighi/

Kévin Mazet: [email protected]

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages