Vala (limbaj de programare)
Vala | |
Vala | |
Extensii fișiere | .vala, .vapi |
---|---|
Paradigmă | Multiparadigmă: imperativ, structurat, orientat obiect |
Apărut în | 2006 |
Dezvoltator | Jürg Billeter, Raffaele Sandrini |
Ultima versiune |
|
Tipare | Static, puternic, inferit, structural |
Influențat de | C, C++, C#, D, Java |
Sistem de operare | Multiplatformă toate suportate de GLib, dar distribuit numai ca cod sursă. |
Licență | LGPLv2.1+ |
Prezență online | wiki.gnome.org/Projects/Vala |
Modifică date / text |
Vala este un limbaj de programare orientat obiect cu compilator cu autogăzduire care generează cod C și utilizează sistema GObject.
Vala e sintactic similară cu C# și include funcționalități notabile ca funcții anonime, signale, proprietăți, generice, gestionarea asistată a memoriei, tratarea excepțiilor, inferența tipurilor, și instrucțiunea foreach.[2]
Exemple
modificareSalut Lume
modificareUn simplu program "Hello, World!" în Vala:
void main () {
print ("Hello World\n");
}
Așa cum se poate observa, spre deosebire de C sau C++, in Vala nu sunt fișiere antet. Legarea de librării se face prin specificarea parametrilor --pkg
în timpul compilării. Mai mult ca atât, librăria GLib e tot timpul legată și spațiul său de numi poate fi omis (print
e de fapt GLib.print
).
Programarea orientată obiect
modificareMai jos e o versiune mai complexă care definește o subclasă HelloWorld
care moștenește de la
clasa de bază GLib.Object
, altfel scris ca clasa GObject . Exemplul arată unele funcționalități orientate obiect din Vala:
class HelloWorld: Object {
private uint year = 0;
public HelloWorld () {
}
public HelloWorld.with_year (int year) {
if (year>0)
this.year = year;
}
public void greeting () {
if (year == 0)
print ("Hello World\n");
else
/* Strings prefixed with '@' are string templates. */
print (@"Hello World, $(this.year)\n");
}
}
void main (string[] args) {
var helloworld = new HelloWorld.with_year (2021);
helloworld.greeting ();
}
Note
modificare- ^ „Vala - Compiler Using the GObject Type System”. GNOME Project. News section. Accesat în .
- ^ „Vala: high-level programming with less fat”. Ars Technica. Accesat în .
Vezi și
modificare- Shotwell, organizator de imagini scris pe Vala.
- Geary, un client email scris pe Vala.
- elementary OS, o distribuție Linux cu un spațiu de lucru Pantheon programat în mare parte în Vala.
- Budgie, un spațiu de lucru Linux programat în mare parte în Vala.
Legături externe
modificareWikibooks are o carte despre subiectul: Vala Programming |
- Site web oficial
- Documentația API
- Repozitorul Vala pe GitLabul · GNOME
- LibGee, o librarie cu utilite pentru Vala.
- Exemple de cod pe Vala pentru începători
- Listă de programe pe Vala
- Autovala, un program care automatizează și simplifică crearea de fișiere CMake și Meson pentru proiecte Vala/C
- Comunitatea Vala pe GitHub
- Akira - unealtă designer pentru Linux
- Kangaroo - unealtă client multiplatform pentru baze de date populare
- Compararea cu alte limbaje