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
[modificare | modificare sursă]Salut Lume
[modificare | modificare sursă]Un 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
[modificare | modificare sursă]Mai 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 | modificare sursă]- ^ „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 | modificare sursă]- 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
[modificare | modificare sursă]Wikibooks 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