software.wikisort.org - Linguaggio

Search / Calendar

Vala è un linguaggio di programmazione di alto livello, orientato ad oggetti. Il linguaggio è utilizzabile nelle distribuzioni GNU/Linux, ma esiste già un port per Windows. Esiste un dialetto del linguaggio in stile Python chiamato Genie.[2]

Vala
linguaggio di programmazione
AutoreJürg Billeter, Raffaele Sandrini
Data di origine2006
Ultima versione0.50.1[1]
UtilizzoGeneral purpose
ParadigmiStrutturato, Orientato agli oggetti, Imperativo
TipizzazioneStatica, Forte
Estensioni comuni.vala .vapi
Influenzato daC, C++, Java, C#, Python
Implementazione di riferimento
Sistema operativoMultipiattaforma, tutti gli OS supportati da GLib
LicenzaLGPL 2.1+
Sito webwiki.gnome.org/Projects/Vala

Caratteristiche


Vala ha una sintassi simile al C#, e include utili funzionalità di linguaggio come le funzioni anonime, i segnali, le proprietà, la gestione della memoria assistita, la gestione delle eccezioni, inferenza dei tipi, e le dichiarazioni foreach.[3] Offre inoltre un compilatore self-hosting, con funzionalità di garbage collection.

I vantaggi del linguaggio sono la modernità e la velocità, i sorgenti infatti passano per un generatore di codice C utilizzando il sistema GObject, questo codice può essere rivisto e corretto manualmente, successivamente il codice viene poi compilato tramite GCC in modo tale che gli eseguibili siano supportati in modo nativo.


Compilazione


I sorgenti vala hanno estensione .vala, e il compilatore è chiamato valac.

#Compila il file e crea un eseguibile con nome impostato
$ valac ./miofile.vala -o=nomefile

#Genera solo codice oggetto
$ valac ./miofile.vala -c

Per generare solo i sorgenti C e i rispettivi file header:

 
#Crea i sorgenti C
$ valac ./miofile.vala -C

#Crea i sorgenti C e il file header
$ valac ./miofile.vala -C -H miofile.h

Sintassi


La sintassi assomiglia a quella di Java e C#.


Commenti


Sono accettati i seguenti commenti:

//Questo è un commento in riga e termina alla fine della stessa

/*  <--Inizio commento
 *  Questo è un commento su più righe
 *  <-- questi asterischi sono inseriti per convenzione ma non sono necessari
    <--è accettato lo stesso
fine  commento --> */

La sintassi dei commenti di documentazione è

/** <-- inizio commento
 *
 *
 *
fine  commento --> */

All'interno dei commenti di documentazione è possibile usare la sintassi XHTML, la sintassi Wiki, quella Gnome e quella Java.[4]


Tipi di dato


Vala supporta un set di tipi di dato simile agli altri linguaggi.

   Byte: char, uchar;
   Caratteri: unichar;
   Interi: int, uint;
   Interi lunghi: long, ulong;
   Interi corti: short, ushort;
   Altri interi int8, int16, int32, int64 e rispettivamente uint8, uint16, uint32, uint64;
   Numeri in virgola mobile: float, double;
   Booleani: bool;
   Tipi strutturati: struct;
   Enumeration: enum;

Utilizzo:

    /* Tipi atomici */
    unichar c = 'u';
    float percentile = 0.75f;
    const double MU_BOHR = 927.400915E-26;
    bool the_box_has_crashed = false;

    /* dichiarazione di una struct */
    struct Vector {
        public double x;
        public double y;
        public double z;
    }

    /* dichiarazione di un enum */
    enum WindowType {
        TOPLEVEL,
        POPUP
    }

Esempi



Hello world


Con classe GObject:

using GLib;
public class Test.HelloObject : Object {
    public static int main(string[] args) {
        stdout.printf("Hello, World\n");
        return 0;
    }
}

Senza classe GObject:

static int main (string[] args) {
    stdout.printf("Hello, World\n");
    return 0;
}

Gtk


using Gtk;

int main (string[] args) {
    Gtk.init (ref args);

    var window = new Window ();
    window.title = "First GTK+ Program";
    window.border_width = 10;
    window.window_position = WindowPosition.CENTER;
    window.set_default_size (350, 70);
    window.destroy.connect (Gtk.main_quit);

    var button = new Button.with_label ("Click me!");
    button.clicked.connect (() => {
        button.label = "Thank you";
    });

    window.add (button);
    window.show_all ();

    Gtk.main ();
    return 0;
}

Altri esempi GTK a https://live.gnome.org/Vala/GTKSample.


IDE


Ci sono diversi IDE con integrato il supporto per la programmazione in Vala:


Note


  1. Vala - Compiler Using the GObject Type System, su wiki.gnome.org, 18 Maggio 2020.
  2. Genie
  3. Vala: high-level programming with less fat - Ars Technica. Retrieved Dec13, 2011 1:40PM EST
  4. Valadoc Archiviato il 16 aprile 2009 in Internet Archive.

Voci correlate



Collegamenti esterni


Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica

На других языках


[fr] Vala (langage)

Vala est un langage de programmation compilé, dont l'objectif est de fournir les bénéfices des langages de programmation modernes (comme la POO) aux développeurs de la plateforme GNOME qui utilisent GLib et son système GObject[3],[4].
- [it] Vala (linguaggio di programmazione)

[ru] Vala

Vala — язык программирования, предназначенный для прикладного и системного программирования на основе библиотек GLib Object System (GObject) рабочей среды GNOME/GTK+. Язык был разработан Йюргом Биллетером (Jürg Billeter) и Раффаэле Сандрини (Raffaele Sandrini).



Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.org внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2025
WikiSort.org - проект по пересортировке и дополнению контента Википедии