Вала (язык программирования) - Vala (programming language)
Парадигма | Мультипарадигма: императив, структурированный, объектно-ориентированный |
---|---|
Разработчик | Юрг Биллетер, Раффаэле Сандрини |
Впервые появился | 2006 |
Стабильный выпуск | 0.50.1[1] / 28 сентября 2020 |
Предварительный выпуск | 0.49.2 / 10 августа 2020 |
Печатная дисциплина | статический, сильный |
Операционные системы | Кроссплатформенность все поддерживаются GLib, но распространяется только в виде исходного кода. |
Лицензия | LGPLv2.1 + |
Расширения имени файла | .vala, .vapi |
Интернет сайт | вики |
Под влиянием | |
C, C ++, C #, D, Ява, Бу |
Вала является объектно-ориентированный язык программирования с компилятор на собственном хостинге что порождает C код и использует GObject система.
Вала синтаксически похожий на C # и включает в себя такие известные функции, как анонимные функции, сигналы, характеристики, дженерики, вспомогательное управление памятью, Обработка исключений, вывод типа, и для каждого заявления.[2] Его разработчики, Юрг Биллетер и Раффаэле Сандрини, хотели сделать эти функции понятными. C время выполнения с небольшими накладными расходами и без специальной поддержки времени выполнения за счет нацеливания на GObject объект система. Вместо того, чтобы компилировать напрямую в машинный код или язык ассемблера, он компилируется в более низкий уровень промежуточный язык. Это компиляция из исходного кода в исходный в C, который затем компилируется компилятором C для данной платформы, например GCC.[3]
Для управления памятью система GObject предоставляет подсчет ссылок. В C программист должен вручную управлять добавлением и удалением ссылок, но в Vala управление такими счетчиками ссылок автоматизировано, если программист использует встроенные ссылочные типы языка, а не простые указатели.
Использование функций из библиотек собственного кода требует написания файлов vapi, определяющих интерфейс библиотеки. Написание этих определений интерфейса хорошо документировано для библиотек C, особенно когда они основаны на GObject. Однако библиотеки C ++ не поддерживаются. Файлы Vapi предоставляются для большей части ГНОМ платформа, в том числе GTK.
Vala была задумана Юргом Биллетером и реализована им и Раффаэле Сандрини, завершив самостоятельный хостинг компилятор в мае 2006 года.[4]
Пример кода
Простой "Привет, мир! «Вала программа:
пустота главный () { Распечатать ("Привет, мир");}
Более сложная версия, показывающая некоторые из объектно-ориентированный Функции:
учебный класс Образец: Объект { пустота приветствие () { стандартный вывод.printf ("Привет, мир"); } статический пустота главный (нить[] аргументы) { вар образец = новый Образец (); образец.приветствие (); }}
Пример кода для отображения интерфейса Vala с реализацией по умолчанию (миксин)
с помощью GLib;интерфейс Для печати { общественный Абстрактные нить Распечатать (); общественный виртуальный нить pretty_print () { возвращаться "Пожалуйста " + Распечатать (); }}учебный класс НормальныйПечать: Объект, Для печати { нить Распечатать () { возвращаться "не забывай обо мне"; }}учебный класс OverridePrint: Объект, Для печати { нить Распечатать () { возвращаться "Обратите внимание на разрыв"; } общественный отменять нить pretty_print () { возвращаться "Переопределить"; }}пустота главный (нить[] аргументы) { вар нормальный = новый НормальныйПечать (); вар отвергнутый = новый OverridePrint (); Распечатать (нормальный.pretty_print ()); Распечатать (отвергнутый.pretty_print ());}
Пример использования GTK создать GUI "Привет, мир!" программа (см. также GTK привет мир ):
с помощью Gtk;int главный (нить[] аргументы) { Gtk.в этом (ссылка аргументы); вар окно = новый Окно (); окно.заглавие = "Привет, мир!"; окно.ширина рамки = 10; окно.window_position = WindowPosition.ЦЕНТР; окно.set_default_size (350, 70); окно.разрушать.соединять (Gtk.main_quit); вар метка = новый Этикетка ("Привет, мир!"); окно.Добавить (метка); окно.показать все (); Gtk.главный (); возвращаться 0;}
В последнем примере требуется дополнительный параметр для компиляции на платформах GNOME 3:
valac --pkg gtk + -3.0 hellogtk.vala
Смотрите также
- Джинн, язык программирования для компилятора Vala с синтаксисом, близким к Python.
- Шотвелл, органайзер изображений, написанный на Вала.
- Geary, почтовый клиент, написанный на Вала.
- элементарная ОС, дистрибутив Linux со средой рабочего стола, запрограммированной в основном на Vala.
Рекомендации
- ^ "Vala - компилятор, использующий систему типов GObject". Проект GNOME. Раздел новостей. Получено 9 октября 2020.
- ^ «Vala: программирование высокого уровня с меньшим количеством жира». Ars Technica. Получено 13 декабря 2011.
- ^ "Взгляд на два новых языка: Vala и Clojure".
- ^ «Написание мультимедийных приложений с помощью Vala». Архивировано из оригинал 28 августа 2012 г.
внешняя ссылка
- Официальный веб-сайт
- ValaToWindows, Скомпилированные Vala двоичные файлы для Windows
- LibGee, коллекция библиотеки для Валы.
- Документация по API
- Пример кода Vala для начинающих
- Список программ Vala
- веб-вала, простой каркас веб-приложений для Валы
- Autovala, программа, которая автоматизирует и упрощает создание файлов CMake и Meson для проектов Vala / C.
- VLS, Реализация протокола Vala Language Server Protocol в Vala
- GVLS, Еще одна реализация протокола Vala Language Server в Vala
- Сообщество Vala на GitHub
- Сравнение с другими языками