Пређи на садржај

Vala (programski jezik)

С Википедије, слободне енциклопедије

Vala
Modelobjektno-orijentisani, imperativni
Aktuelna verzija0.56.15
Datum aktuelne verzije03. Mart 2024.
UticajiC, C++, C#
Operativni sistemiSvaki koji podržava GLib
LicencaLGPL
Veb-sajthttp://live.gnome.org/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.

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);
}

Spoljašnje veze

[уреди | уреди извор]
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy