Sari la conținut

Vala (limbaj de programare)

De la Wikipedia, enciclopedia liberă
Versiunea pentru tipărire nu mai este suportată și poate avea erori de randare. Vă rugăm să vă actualizați bookmarkurile browserului și să folosiți funcția implicită de tipărire a browserului.
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, 2 luni și 13 zile (2021-05-01)
  • 0.50.8 / 1 mai 2021; acum 3 ani, 2 luni și 13 zile (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]

Exemple

Salut Lume

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

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

  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

  • 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

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