GOOL: A Generic Object-Oriented Language (extended version)
Journal Articles
Overview
Research
Identity
View All
Overview
abstract
We present GOOL, a Generic Object-Oriented Language. It demonstrates that a
language, with the right abstractions, can capture the essence of
object-oriented programs. We show how GOOL programs can be used to generate
human-readable, documented and idiomatic source code in multiple languages.
Moreover, in GOOL, it is possible to express common programming idioms and
patterns, from simple library-level functions, to simple tasks (command-line
arguments, list processing, printing), to more complex patterns, such as
methods with a mixture of input, output and in-out parameters, and finally
Design Patterns (such as Observer, State and Strategy). GOOL is an embedded DSL
in Haskell that can generate code in Python, Java, C# and C++.