Lesson plan
Vala (programming language)
Vala is an object-oriented programming language with a self-hosting compiler that generates an intermediate representation in C source code and uses the GObject system. It is free and open-source software released with a GNU Lesser General Public License (LGPL) version 2.1+. 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 transpiles to C, which is then compiled with a C compiler for a given platform, such as GNU Compiler Collection (GCC) or Clang. Using functions from native code libraries requires writing vapi files, defining the library interfaces. Writing these interface definitions is well-documented for C libraries. Bindings are already available for many libraries, including some not based on GObject such as the multimedia library Simple DirectMedia Layer (SDL) and OpenGL.
Article summary
Vala is an object-oriented programming language with a self-hosting compiler that generates an intermediate representation in C source code and uses the GObject system. It is free and open-source software released with a GNU Lesser General Public License (LGPL) version 2.1+. 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 transpiles to C, which is then compiled with a C compiler for a given platform, such as GNU Compiler Collection (GCC) or Clang. Using functions from native code libraries requires writing vapi files, defining the library interfaces. Writing these interface definitions is well-documented for C libraries. Bindings are already available for many libraries, including some not based on GObject such as the multimedia library Simple DirectMedia Layer (SDL) and OpenGL.
Key claims
No claims recorded.
Discussion questions
- Summarise the article in your own words. Which single claim would you verify first, and why?
- Which claim in this article is most likely to be revised as the sources update? How would you check its current status?
- If two sources disagreed about one of these facts, what would you need in order to trust one over the other?
Bibliography
No sources recorded.
Key claims and bibliography are generated from the same tracked claims and sources as the article page.