Vala (limbaj de programare)

Vala
Vala
Extensii fișiere.vala, .vapi
ParadigmăMultiparadigmă: imperativ, structurat, orientat obiect
Apărut în2006; acum 18 ani (2006)
DezvoltatorJürg Billeter, Raffaele Sandrini
Ultima versiune
  • 0.52.3[1] / 1 mai 2021; acum 3 ani și 5 luni (2021-05-01)
  • 0.50.8 / 1 mai 2021; acum 3 ani și 5 luni (2021-05-01)
TipareStatic, 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+
Prezență onlinewiki.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]

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 (); } 
  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 . 
  • 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
Commons
Wikimedia Commons conține materiale multimedia legate de Vala
Compararea cu alte limbaje