WikiSort.ru - Программирование

ПОИСК ПО САЙТУ | о проекте
Vala
Семантика структурное, императивное, объектно-ориентированное программирование
Класс языка язык программирования и объектно-ориентированный язык программирования
Появился в 2006 и 2007
Автор Йюрг Биллетер, Раффаэле Сандрини
Расширение файлов .vala или .vapi
Выпуск 0.42.2 (24.09.2018)
Система типов строгая, статическая
Основные реализации: GNOME Desktop Project
Испытал влияние Си, C++, Groovy, Java, C#
Лицензия LGPL
ОС кроссплатформенность
Сайт wiki.gnome.org/Projects/…

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

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

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

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

Существуют неофициальные сборки компилятора для ОС 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», демонстрирующая объектно-ориентированный подход

 class Sample : GLib.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. Bindings Status (англ.). Проверено 7 сентября 2011. Архивировано 10 марта 2012 года.
  2. External Bindings (англ.). Проверено 7 сентября 2011. Архивировано 10 марта 2012 года.

Интегрированная среда разработки

Ссылки

  • valadoc.org (англ.). — Документация по языку Vala.. Проверено 9 февраля 2010. Архивировано 10 марта 2012 года.
  1. Projects/Vala/Tools/VisualStudioCode - GNOME Wiki!. wiki.gnome.org. Проверено 19 ноября 2018.

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




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

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

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