Vala

Vala
Vala
Семантика:

структурное, императивное, объектно-ориентированное программирование

Появился в:

2006

Автор(ы):

Йюрг Биллетер, Раффаэле Сандрини

Расширение файлов:

.vala, .vapi, .gir, .c

Релиз:

0.18.1 — 13 ноября 2012 года[1]

Тестовая версия:

0.17.7 — 16 сентября 2012 года[1]

Типизация данных:

строгая, статическая

Основные реализации:

GNOME Desktop Project

Диалекты:

Vala, Genie

Испытал влияние:

Си, C++, Groovy, Java, C#

Лицензия

LGPL

Сайт:

live.gnome.org/Vala

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

Содержание

Основные особенности

Vala по своему синтаксису очень похож на C# и полностью реализует объектно-ориентированный подход. Поддерживаются интроспекция, сборка мусора основанная на подсчёте ссылок, лямбда-функции, концепция сигналов и слотов, подобная используемой в Qt, но реализованная на уровне языка, строковые типы, обобщённые типы, срезы массивов, оператор перечисления элементов коллекции foreach(), делегаты, замыкания, интерфейсы, свойства и исключения.

Особенность системы разработки состоит в том, что программа на Vala транслируется в программу на языке C, которая в свою очередь компилируется в исполняемый код целевой платформы со стандартными библиотеками C, Glib и выполняется со скоростью откомпилированного в объектный код целевой платформы приложения C. При наличии в программе графического интерфейса пользователя во время компиляции используется библиотека GTK+. Благодаря такому подходу откомпилированный код на Vala бинарно совместим с системными библиотеками, написанными на C. Для подключения сторонних библиотек к программам на языке Vala используются специальные vapi-файлы, в которых описывается интерфейс библиотеки. Для многих библиотек уже существуют vapi-файлы, входящие в штатную поставку компилятора Vala[2]. Кроме того, имеются vapi-файлы для библиотек, поддерживаемые сторонними пользователями, пока не включенные в штатную поставку[3].

Существуют неофициальные сборки компилятора для ОС Windows, поддерживаемые сторонними разработчиками.

Причины создания

Язык Vala был создан для эффективной разработки на платформе GNOME сложных прикладных и системных приложений с графическим интерфейсом пользователя, базирующимся на стандартной библиотеке GTK+, с применением современных языковых средств и техник программирования.

Объектно-ориентированные языки Java и C# предоставляют программисту достаточно возможностей, но их программы исполняются в виртуальных машинах, что делает невозможным прямое обращение к ним из бинарного кода на языке C, как и использование в таких программах системных низкоуровневых библиотек, таких как GObject. Поэтому эти языки, как и любые другие, исполняющие байт-код в виртуальных машинах, не могут быть приняты в рамках платформы GNOME. Управляемые приложения имеют также ограничения в производительности, что является критичным для работы некоторых программ (например, системных), которые должны исполняться в бинарном коде (ABI). Это и стало причиной появления нового языка Vala.

Примеры кода

Пример № 1

Простая программа «Hello World»

int main ()
{
  print ("Hello World\n");
  return 0;
}

Пример № 2

Программа «Hello World», демонстрирующая объектно-ориентированный подход

 using GLib;
 
 class Sample : Object 
 {
         void run ()
         {
                 stdout.printf ("Hello World\n");
         }
 
         static int main (string[] args)
         {
                 var sample = new Sample ();
                 sample.run ();
                 return 0;
         }
 }

Пример № 3

Этот пример использования GTK+ для создания GUI программ на языке Vala:

using Gtk;
 
int main (string[] args) {
    Gtk.init (ref args);
 
    var window = new Window ();
    window.title = "Hello, World!";
    window.border_width = 10;
    window.window_position = WindowPosition.CENTER;
    window.set_default_size (350, 70);
    window.destroy.connect (Gtk.main_quit);
 
    var label = new Label ("Hello, World!");
 
    window.add (label);
    window.show_all();
 
    Gtk.main();
    return 0;
}

Примечания

  1. 1 2 Vala Releases  (англ.).(недоступная ссылка — история) Проверено 13 ноября 2012.
  2. Bindings Status  (англ.). Архивировано из первоисточника 10 марта 2012. Проверено 7 сентября 2011.
  3. External Bindings  (англ.). Архивировано из первоисточника 10 марта 2012. Проверено 7 сентября 2011.

IDE

Программное обеспечение

  • Shotwell — photo organizer
  • Fillmore — multitrack record
  • Lombard — video edit

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Полезное


Смотреть что такое "Vala" в других словарях:

  • Vala — can refer to:* Völva, a priestess in Norse mythology or a Scandinavian earth spirit * Numonius Vala, an Ancient Roman family name, or any of the men of that name * Vala (Middle earth), an angelic being in J. R. R. Tolkien s fiction * Vala (Vedic) …   Wikipedia

  • Vala — bezeichnet: Vala (Mythologie), eine Seherin der nordischen Mythologie Vala (Programmiersprache), eine Programmiersprache, die auf GNOMEs GObject aufbaut Vala (Staat), einen indischen Fürstenstaat auf der Kathiawar Halbinsel. Vala (Unternehmen),… …   Deutsch Wikipedia

  • Vala — (homonymie) Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom. Vala peut faire référence à : Vala Mal Doran, un personnage de la série télévisée Stargate SG 1 Vala, un langage de programmation pour… …   Wikipédia en Français

  • vala — s. f. 1. Escavação para receber as águas que escorrem dos terrenos adjacentes e conduzi las a um dado ponto. 2.  [Brasil] Leito de alguns rios cujas águas secam habitualmente em certa estação do ano. 3. vala comum: cova extensa onde se sepultam… …   Dicionário da Língua Portuguesa

  • vala — vàlā (vàlāh, vàlāj) čest. DEFINICIJA reg. razg. riječca za pojačavanje smisla onoga o čemu se govori (nije u strukturi rečenice i nije vezana mjestom u rečenici); doista, zaista, bogme, bogami [vala dobro si to rekao] ETIMOLOGIJA tur. vallah ←… …   Hrvatski jezični portal

  • vala — vȁla ž <G mn vȃlā> DEFINICIJA reg. manja morska uvala, manji zaljev ONOMASTIKA top. (mnogobrojna imena uvala duž čitave obale; naselje): Vàlica (Buje, 181 stan.) ETIMOLOGIJA mlet. valle, tal. valle ← lat. vallis: dolina …   Hrvatski jezični portal

  • VALA — Thraciae urbs, Ptol. Mauritaniae Tingitanae quoque eidem …   Hofmann J. Lexicon universale

  • Vala — était une prophétesse hystérique et délirant récitant le Volupsa, le premier chant de l’Edda …   Mythologie nordique

  • vàlā — (vàlāh, vàlāj) čest. reg. razg. riječca za pojačavanje smisla onoga o čemu se govori (nije u strukturi rečenice i nije vezana mjestom u rečenici) [∼ dobro si to rekao]; doista, zaista, bogme, bogami ✧ {{001f}}tur. ← arap …   Veliki rječnik hrvatskoga jezika

  • Valá — En el marco de la mitología hindú, Valá es un asura (demonio) en el texto Rig veda. vala, en el sistema AITS (alfabeto internacional para la transliteración del sánscrito). वल, en escritura devanagari del sánscrito. Pronunciación: [valá].[1]… …   Wikipedia Español


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»