description | vala-lang from freesmartphone.org |
homepage URL | http://freesmartphone.org |
repository URL | git://git.freesmartphone.org/vala.git |
owner | prishelec@gmail.com |
last change | Wed, 6 Apr 2011 20:37:13 +0000 (6 22:37 +0200) |
last refresh | Sat, 31 Oct 2009 21:18:36 +0000 (31 22:18 +0100) |
mirror URL | git://repo.or.cz/vala-lang.git |
| https://repo.or.cz/vala-lang.git |
| ssh://git@repo.or.cz/vala-lang.git |
bundle info | vala-lang.git downloadable bundles |
content tags
|
|
README
Vala is a new programming language that aims to bring modern programming
language features to GNOME developers without imposing any additional
runtime requirements and without using a different ABI compared to
applications and libraries written in C.
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
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+. It's planned to provide generated bindings for
the full GNOME Platform at a later stage.
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.
More information about Vala is available at
http://live.gnome.org/Vala/