Vala (programovací jazyk) - Vala (programming language)
![]() | |
Paradigma | Multi-paradigma: rozkazovací způsob, strukturovaný, objektově orientovaný |
---|---|
Vývojář | Jürg Billeter, Raffaele Sandrini |
Poprvé se objevil | 2006 |
Stabilní uvolnění | 0.50.1[1] / 28. září 2020 |
Náhled verze | 0.49.2 / 10. srpna 2020 |
Psací disciplína | statický, silný |
OS | Cross-platform vše podporováno GLib, ale distribuován pouze jako zdrojový kód. |
Licence | LGPLv2.1 + |
Přípony názvu souboru | .vala, .vapi |
webová stránka | wiki |
Ovlivněno | |
C, C ++, C#, D, Jáva, Vypískat |
Vala je objektově orientovaný programovací jazyk s self-hosting kompilátor který generuje C kód a používá GObject Systém.
Vala je syntakticky podobný C# a zahrnuje významné funkce, jako je anonymní funkce, signály, vlastnosti, generika, asistovaná správa paměti, zpracování výjimek, odvození typu, a pro každého prohlášení.[2] Jeho vývojáři, Jürg Billeter a Raffaele Sandrini, chtěli tyto funkce přiblížit C runtime s malou režií a žádnou speciální runtime podporou cílením na GObject objekt Systém. Spíše než kompilaci přímo do strojového kódu nebo montážního jazyka se kompiluje na nižší úroveň střední jazyk. To kompilace zdroj-zdroj do C, který je pak kompilován s C překladačem pro danou platformu, jako je GCC.[3]
Pro správu paměti poskytuje systém GObject počítání referencí. V jazyce C musí programátor ručně spravovat přidávání a odebírání odkazů, ale ve Vale je správa těchto počtů referencí automatizována, pokud programátor používá jazykové vestavěné typy odkazů místo jednoduchých ukazatelů.
Používání funkcí z knihoven nativního kódu vyžaduje psaní souborů vapi a definování rozhraní knihovny. Zápis těchto definic rozhraní je pro knihovny C dobře zdokumentován, zejména pokud je založen na GObject. Knihovny C ++ však nejsou podporovány. Soubory Vapi jsou poskytovány pro velkou část souboru GNOME platforma, včetně GTK.
Vala byl vytvořen Jürgem Billeterem a byl implementován jím a Raffaele Sandrini, dokončením a vlastní hosting překladač v květnu 2006.[4]
Příklad kódu
Jednoduchý "Ahoj světe! „Program Vala:
prázdnota hlavní () { tisk ("Ahoj světe");}
Složitější verze, zobrazující některé z Vala objektově orientovaný funkce:
třída Vzorek: Objekt { prázdnota Pozdrav () { stdout.printf ("Ahoj světe"); } statický prázdnota hlavní (tětiva[] args) { var vzorek = Nový Vzorek (); vzorek.Pozdrav (); }}
Ukázkový kód pro zobrazení rozhraní Vala s výchozí implementací (mixin)
použitím GLib;rozhraní Tisknutelné { veřejnost abstraktní tětiva tisk (); veřejnost virtuální tětiva pretty_print () { vrátit se "Prosím " + tisk (); }}třída Normální tisk: Objekt, Tisknutelné { tětiva tisk () { vrátit se „nezapomeň na mě“; }}třída OverridePrint: Objekt, Tisknutelné { tětiva tisk () { vrátit se "Všimni si mezery"; } veřejnost přepsat tětiva pretty_print () { vrátit se „Přepsat“; }}prázdnota hlavní (tětiva[] args) { var normální = Nový Normální tisk (); var přepsán = Nový OverridePrint (); tisk (normální.pretty_print ()); tisk (přepsán.pretty_print ());}
Příklad použití GTK vytvořit GUI "Ahoj světe!" program (viz také GTK ahoj svět ):
použitím Gtk;int hlavní (tětiva[] args) { Gtk.inic (ref args); var okno = Nový Okno (); okno.titul = "Ahoj světe!"; okno.border_width = 10; okno.window_position = WindowPosition.CENTRUM; okno.set_default_size (350, 70); okno.zničit.připojit (Gtk.main_quit); var označení = Nový Označení ("Ahoj světe!"); okno.přidat (označení); okno.ukázat vše (); Gtk.hlavní (); vrátit se 0;}
Poslední příklad potřebuje další parametr ke kompilaci na platformách GNOME 3:
valac --pkg gtk + -3.0 hellogtk.vala
Viz také
- Džin, programovací jazyk pro překladač Vala se syntaxí blíže k Krajta.
- Shotwell, organizátor obrázků napsaný ve Vale.
- Geary, e-mailový klient napsaný ve Vale.
- základní OS, distribuce Linuxu s desktopovým prostředím naprogramovaným většinou ve Vale.
Reference
- ^ "Vala - kompilátor využívající systém typů GObject". Projekt GNOME. Sekce novinek. Citováno 9. října 2020.
- ^ „Vala: programování na vysoké úrovni s menším množstvím tuku“. Ars Technica. Citováno 13. prosince 2011.
- ^ „Pohled na dva nové jazyky: Vala a Clojure“.
- ^ "Psaní multimediálních aplikací s Vala". Archivovány od originál dne 28. srpna 2012.
externí odkazy
- Oficiální webové stránky
- ValaToWindows, Vala sestavil binární soubory pro Windows
- LibGee, sbírková knihovna pro Valu.
- Dokumentace API
- Ukázkový kód Vala pro začátečníky
- Seznam programů Vala
- web-vala, jednoduchý rámec webových aplikací pro Valu
- Autovala, program, který automatizuje a zjednodušuje vytváření souborů CMake a Meson pro projekty Vala / C
- VLS, Implementace Vala Language Server Protocol ve Vala
- GVLS „Další implementace protokolu Vala Language Server Protocol ve Vala
- Komunita Vala na GitHubu
- Srovnání s jinými jazyky