Vala (limbaj de programare)

De la Wikipedia, enciclopedia liberă
Sari la navigare Sari la căutare
Vala
Vala Logo.svg
Extensii fișiere.vala, .vapi
ParadigmăMultiparadigmă: imperativ, structurat, orientat obiect
Apărut în2006; 15 ani în urmă (2006)
DeveloperJürg Billeter, Raffaele Sandrini
Ultima versiune
  • 0.52.3[1] / 1 mai 2021; acum 2 luni (2021-05-01)
  • 0.50.8 / 1 mai 2021; acum 2 luni (2021-05-01)
Tipul de tipărireStatic, puternic, inferit, structural
Influențat deC, C++, C#, D, Java
Sistem de operareMultiplatformă toate suportate de GLib, dar distribuit numai ca cod sursă.
LicențăLGPLv2.1+
Websitewiki.gnome.org/Projects/Vala

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

  1. ^ „Vala - Compiler Using the GObject Type System”. GNOME Project. News section. Accesat în . 
  2. ^ „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ă]

Commons
Wikimedia Commons conține materiale multimedia legate de Vala
Compararea cu alte limbaje