vala
Compiler for the GObject type system
valac, the Vala compiler, is a self-hosting compiler that translates
Vala source code into C source and header files. It uses the GObject type system
to create classes and interfaces declared in the Vala source code.
The syntax of Vala is similar to C#, modified to better fit the GObject type system.
Vala supports modern language features as the following: Interfaces, Properties,
Signals, Foreach, Lambda expressions, Type inference for local variables, Generics,
Non-null types, Assisted memory management, Exception handling, Type modules (Plugins)
Vala is designed to allow access to existing C libraries, especially GObject-based
libraries, without the need for runtime bindings. All that is needed to use a library
with Vala is an API file, containing the class and method declarations in Vala syntax.
Vala currently comes with bindings for GLib and GTK+ and many others from the GNOME
Platform.
Using classes and methods written in Vala from an application written in C is not
difficult. The Vala library only has to install the generated header files and C
applications may then access the GObject-based API of the Vala library as usual.
It should also be easily possible to write a bindings generator for access to Vala
libraries from applications written in e.g. C# as the Vala parser is written as
a library, so that all compile-time information is available when generating a
binding.
Vala
Jürg Billeter
juergbi
Raffaele Sandrini
Rico Tzschichholz
ricotz