Vala is an object-oriented programming language with a self-hosting compiler that generates C code and uses the GObject system (that "can be seen as an alternative to C-derived languages such as C++ and Objective-C").Vala is syntactically similar to C# and includes several features such as: anonymous functions, signals, properties, generics, assisted memory management, exception handling, type inference, and foreach statements.