Vala (програмски језик)
Vala | |
---|---|
Модел | објектно-оријентисани, императивни |
Актуелна верзија | 0.56.15 |
Датум актуелне верзије | 03. Март 2024. |
Утицаји | C, C++, C# |
Оперативни системи | Сваки који подржава GLib |
Лиценца | LGPL |
Веб-сајт | http://live.gnome.org/Vala |
Vala је програмски језик креиран с циљем да уведе модерне карактеристике у програмски језик C без додатних рунтиме захтева, а који циља пре свега на ГОбјецт објектни систем. Језик је развијен од стране Јüрг Биллетер-а и Раффаеле Сандрини-а. Синтакса је врло слична оној из програмског језика C#. Код Вале се не преводи директно на Асемблер или неки други посреднички језик, већ на програмски језик C који се потом компајлира са доступним C компајлером.
Пример кода[уреди | уреди извор]
Основни 'Здраво Свете' програм:
void main () {
print ("Zdravo svete!\n");
}
Комплекснија верзија која показује неке од Валиних објектно оријентисаних карактеристика:
class Sample : Object {
void greeting () {
stdout.printf ("Zdravo svete!\n");
}
static void main (string[] args) {
var sample = new Sample ();
sample.greeting();
}
}
Ово је конвертован C код:
/* 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);
}
Види још[уреди | уреди извор]
Спољашње везе[уреди | уреди извор]
- Вала програмски језик
- ЛибГее, колекција библиотека за Валу
- Вал(а)ИДЕ, ИДЕ за Валу
- Valaforums[мртва веза] Вала форум