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
- 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
- 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