Vala (programming language)

Vala (programming language)

Vala is an object-oriented programming language with a self-hosting compiler that generates C code and uses the GObject system. Vala is syntactically similar to C# and includes notable features such as anonymous functions, signals, properties, generics, assisted memory management, exception handling, type inference, and foreach statements. Its developers, Jürg Billeter and Raffaele Sandrini, wanted to bring these features to the plain C runtime with little overhead and no special runtime support by targeting the GObject object system. Rather than compiling directly to machine code or assembly language, it compiles to a lower-level intermediate language. It source-to-source compiles to C, which is then compiled with a C compiler for a given platform, such as GCC or Clang.

Comment
enVala is an object-oriented programming language with a self-hosting compiler that generates C code and uses the GObject system. Vala is syntactically similar to C# and includes notable features such as anonymous functions, signals, properties, generics, assisted memory management, exception handling, type inference, and foreach statements. Its developers, Jürg Billeter and Raffaele Sandrini, wanted to bring these features to the plain C runtime with little overhead and no special runtime support by targeting the GObject object system. Rather than compiling directly to machine code or assembly language, it compiles to a lower-level intermediate language. It source-to-source compiles to C, which is then compiled with a C compiler for a given platform, such as GCC or Clang.
Depiction
Vala Logo.svg
Developer
enJürg Billeter, Raffaele Sandrini
FileExt
en.vala, .vapi
Has abstract
enVala is an object-oriented programming language with a self-hosting compiler that generates C code and uses the GObject system. Vala is syntactically similar to C# and includes notable features such as anonymous functions, signals, properties, generics, assisted memory management, exception handling, type inference, and foreach statements. Its developers, Jürg Billeter and Raffaele Sandrini, wanted to bring these features to the plain C runtime with little overhead and no special runtime support by targeting the GObject object system. Rather than compiling directly to machine code or assembly language, it compiles to a lower-level intermediate language. It source-to-source compiles to C, which is then compiled with a C compiler for a given platform, such as GCC or Clang. Using functionality from native code libraries requires writing vapi files, defining the library interfaces. Writing these interface definitions is well-documented for C libraries, especially when based on GObject. Bindings are already available for a large number of libraries, including for C libraries that are not based on GObject, such as the multimedia library SDL, OpenGL, etc.
Homepage
vala.dev
Hypernym
Language
InfluencedBy
Boo (programming language)
C (programming language)
C++
C Sharp (programming language)
D (programming language)
Java (programming language)
Influenced by
Boo (programming language)
C (programming language)
C++
C Sharp (programming language)
D (programming language)
Java (programming language)
Is primary topic of
Vala (programming language)
Label
enVala (programming language)
LatestReleaseVersion
3 September 2022
Latest release version
0.56.3 /
License
GNU Lesser General Public License
License
GNU Lesser General Public License
Link from a Wikipage to an external page
github.com/akiraux/Akira
www.rastersoft.com/programas/autovala.html
github.com/kostya/benchmarks
wiki.gnome.org/Projects/Vala/Documentation%23Projects_Developed_in_Vala
bazaar.launchpad.net/~sepisoad/vala-totrials/ValaTutorials/files
github.com/vala-lang/
wiki.gnome.org/Projects/Libgee
gitlab.gnome.org/GNOME/vala
wiki.gnome.org/Projects/Vala
vala.dev
valadoc.org
wiki.gnome.org/Projects/Vala/ValaForCSharpProgrammers
wiki.gnome.org/Projects/Vala/ValaForJavaProgrammers
www.datatable.online
Link from a Wikipage to another Wikipage
Anonymous functions
Application binary interface
Atom (text editor)
Automake
Boo (programming language)
Bootstrapping (compilers)
Budgie (desktop environment)
Build automation
C (programming language)
C++
Callback (computer programming)
Category:2006 software
Category:Cross-platform free software
Category:Object-oriented programming languages
Category:Programming languages
Category:Programming languages created in 2006
Category:Software using the LGPL license
Category:Source-to-source compilers
Category:Statically typed programming languages
Category:Vala (programming language)
Clang
CMake
Cross-platform
C Sharp (programming language)
D (programming language)
Data structure
Dynamic loading
Elementary OS
Emacs
Event loop
Exception handling
File management
Foreach loop
Front end and back end
Garbage collection (computer science)
Geany
Geary (software)
Generic programming
Genie (programming language)
GitLab
Glade Interface Designer
GLib
GNOME
GNOME Builder
GNU
GNU Compiler Collection
GNU Debugger
GNU Lesser General Public License
GObject
Graphical user interface
Graphical user interfaces
GTK
GUI builder
GUI toolkit
Hello world program
High-level programming language
Imperative programming
Integrated development environment
Intelligent code completion
Interface (computing)
Interface (object-oriented programming)
Intermediate language
Java (programming language)
Lambda expressions
Language Server Protocol
Library (computing)
LLDB (debugger)
Long-term support
Low-level programming language
Meson (software)
Mixin
Mono (software)
Multiple inheritance
Network sockets
Object-oriented programming
Observer pattern
OpenGL
Operating systems
Pkg-config
Pointer (computer programming)
Programming language
Programming paradigm
Property (programming)
Python (programming language)
Reference counting
Regular expressions
Runtime system
Self-hosting (compilers)
Shotwell (software)
Signal programming
Simple DirectMedia Layer
Source-to-source compiler
Standard streams
Static typing
Strong and weak typing
Structural type system
Structured programming
Syntax (programming languages)
Text editor
Thread (computing)
Type inference
Vim (text editor)
Visual Studio Code
Void safety
Logo
enFile:Vala Logo.svg
LogoSize
120
Name
enVala
Name
enVala
OperatingSystem
enCross-platform all supported by GLib, but distributed as source code only.
Page
vala.dev
Paradigm
Imperative programming
Object-oriented programming
Programming paradigm
Structured programming
SameAs
CCPd
m.02wz qj
Q1138939
Vala
Vala
Vala
Vala
Vala
Vala
Vala
Vala (język programowania)
Vala (langage)
Vala (lenguaje de programación)
Vala (limbaj de programare)
Vala (linguagem de programação)
Vala (linguaggio di programmazione)
Vala (programlama dili)
Vala (programmeertaal)
Vala (programmeringsspråk)
Vala (Programmiersprache)
Vala (programming language)
Vala (programovací jazyk)
Vala (programski jezik)
فالا
والا (زبان برنامه‌نویسی)
ڤالا (زمانی پرۆگرامسازی)
വല (പ്രോഗ്രാമിങ് ഭാഷ)
발라 (프로그래밍 언어)
Subject
Category:2006 software
Category:Cross-platform free software
Category:Object-oriented programming languages
Category:Programming languages
Category:Programming languages created in 2006
Category:Software using the LGPL license
Category:Source-to-source compilers
Category:Statically typed programming languages
Category:Vala (programming language)
Thumbnail
Vala Logo.svg?width=300
Typing
Static typing
Strong and weak typing
Structural type system
Type inference
WasDerivedFrom
Vala (programming language)?oldid=1109968811&ns=0
Website
vala.dev
WikiPageLength
19371
Wikipage page ID
12655903
Wikipage revision ID
1109968811
WikiPageUsesTemplate
Template:Commons category
Template:CProLang
Template:GNOME
Template:Infobox programming language
Template:Not a typo
Template:Portal
Template:Reflist
Template:Release date and age
Template:Short description
Template:Start date and age
Template:Use dmy dates
Template:Version
Template:Wikibooks
Wordnet_type
synset-programming language-noun-1