-{T|sr-el:Vala (programski jezik);sr-ec:Vala (програмски језик)}-

-{Vala}- je programski jezik kreiran s ciljem da uvede moderne karakteristike u programski jezik C bez dodatnih runtime zahteva, a koji cilja pre svega na GObject objektni sistem. Jezik je razvijen od strane Jürg Billeter-a i Raffaele Sandrini-a. Sintaksa je vrlo slična onoj iz programskog jezika C#. Kod Vale se ne prevodi direktno na Asembler ili neki drugi posrednički jezik, već na programski jezik C koji se potom kompajlira sa dostupnim C kompajlerom.

Primer koda Osnovni 'Zdravo Svete' program:

void main () { print ("Zdravo svete!\n"); }

Kompleksnija verzija koja pokazuje neke od Valinih objektno orijentisanih karakteristika:

class Sample : Object { void greeting () { stdout.printf ("Zdravo svete!\n");

static void main (string[] args) { var sample = new Sample (); sample.greeting();

Ovo je konvertovan C kod:

/* hellogtk.c generated by valac 0.34.4, the Vala compiler * generated from hellogtk.vala, do not modify */

#include <glib.h> #include <glib-object.h> #include <stdlib.h> #include <string.h> #include <gtk/gtk.h>

#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))

gint _vala_main (gchar** args, int args_length1); static void _gtk_main_quit_gtk_widget_destroy (GtkWidget* _sender, gpointer self);

static void _gtk_main_quit_gtk_widget_destroy (GtkWidget* _sender, gpointer self) { gtk_main_quit (); }

gint _vala_main (gchar** args, int args_length1) { gint result = 0; GtkWindow* window = NULL; GtkWindow* _tmp0_ = NULL; GtkLabel* label = NULL; GtkLabel* _tmp1_ = NULL; gtk_init (&args_length1, &args); _tmp0_ = (GtkWindow*) gtk_window_new (GTK_WINDOW_TOPLEVEL); g_object_ref_sink (_tmp0_); window = _tmp0_; gtk_window_set_title (window, "Hello, World!"); gtk_container_set_border_width ((GtkContainer*) window, (guint) 10); g_object_set (window, "window-position", GTK_WIN_POS_CENTER, NULL); gtk_window_set_default_size (window, 350, 70); g_signal_connect ((GtkWidget*) window, "destroy", (GCallback) _gtk_main_quit_gtk_widget_destroy, NULL); _tmp1_ = (GtkLabel*) gtk_label_new ("Hello, World!"); g_object_ref_sink (_tmp1_); label = _tmp1_; gtk_container_add ((GtkContainer*) window, (GtkWidget*) label); gtk_widget_show_all ((GtkWidget*) window); gtk_main (); result = 0; _g_object_unref0 (label); _g_object_unref0 (window); return result; }

int main (int argc, char ** argv) { #if !GLIB_CHECK_VERSION (2,35,0) g_type_init (); #endif return _vala_main (argv, argc); }

Vidi još Programski jezik -{C}- Programski jezik -{C#}-

Spoljašnje veze

Vala programski jezik LibGee, kolekcija biblioteka za Valu Val(a)IDE, IDE za Valu -{Valaforums}- Vala forum

Категорија:Програмски језици Категорија:Фамилија Ц програмских језика Категорија:Објектно-оријентисани програмски језици Категорија:Софтвер 2006.