Vala — об'єктно-орієнтована мова програмування, призначена для прикладного і системного програмування на основі бібліотек GLib Object System () робочого середовища GNOME/. Мова була розроблена Юргом Біллетером (Jürg Billeter) і Раффаеле Сандріні (Raffaele Sandrini).
Vala | |
---|---|
Парадигма | багато-парадигмове: імперативне, структурне, об'єктно-орієнтоване програмування |
Дата появи | 2006 |
Розробник | Jürg Billeter, Raffaele Sandrini |
Останній реліз | |
Система типізації | строга статична |
Під впливом від | C, , Java, C Sharp, D і Boo |
Мова реалізації | Vala[1] |
Операційна система | кросплатформова програма |
Ліцензія | LGPL 2.1+ |
Звичайні розширення файлів | .vala або .vapi |
Репозиторій вихідного коду | gitlab.gnome.org/GNOME/vala.git github.com/GNOME/vala.git |
Вебсайт | live.gnome.org/Vala |
|
Основні особливості
Vala за своїм синтаксисом подібна до C# і повністю реалізує об'єктно-орієнтований підхід. Підтримуються інтроспекція, прибирання сміття, засноване на підрахунку посилань, лямбда-функції, концепція сигналів і слотів, подібна використовуваній у Qt, але реалізована на рівні мови, рядкові типи, зрізи масивів, оператор переліку елементів колекції foreach(), делегати, замикання, інтерфейси, та винятки.
Особливість системи розробки полягає в тому, що програма на Vala транслюється в програму мовою C, яка в свою чергу компілюється у виконуваний код цільової платформи зі стандартними бібліотеками C, Glib і та виконується зі швидкістю скомпільованої в об'єктний код цільової платформи програми C. Завдяки такому підходу відкомпільований код на Vala бінарно сумісний з системними бібліотеками, написаними на C. Для підключення сторонніх бібліотек до програм на мові Vala використовуються спеціальні vapi-файли, в яких описується інтерфейс бібліотеки. Для багатьох бібліотек вже існують vapi-файли, що входять до дистрибутиву компілятора Vala. Крім того, є vapi-файли для бібліотек, підтримувані сторонніми користувачами, поки не включені у штатне постачання.
Існують неофіційні збірки компілятора для ОС Windows, підтримувані сторонніми розробниками.
Причини створення
Мова Vala була створена для ефективної розробки на платформі GNOME складних прикладних і системних програм з графічним інтерфейсом користувача, що базується на стандартній бібліотеці GTK+, із застосуванням сучасних мовних засобів і технік програмування.
Об'єктно-орієнтовані мови Java і C# надають програмісту досить можливостей, але їхні програми виконуються у віртуальних машинах, що робить неможливим пряме звернення до них з бінарного коду мовою C, як і використання в таких програмах системних низькорівневих бібліотек, таких як . Тому ці мови, як і будь-які інші, які виконують байт-код в віртуальних машинах, не можуть бути прийняті в рамках платформи 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
Це приклад використання для створення 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; }
Інтегровані середовища розробки
Такі інтегровані середовища розробки підтримують мову Vala
Приклади програмного забезпечення на Vala
Виноски
- The vala Open Source Project on Open Hub: Languages Page — 2006.
- Bindings Status (англійською) . Архів оригіналу за 10 березня 2012. Процитовано 7 вересня 2011.
- External Bindings (англійською) . Архів оригіналу за 10 березня 2012. Процитовано 7 вересня 2011.
Посилання
- The Vala Programming Language, on GNOME Live! (англійською) . 23 августа 2011. Архів оригіналу за 10 березня 2012. Процитовано 16 августа 2011.
- Val(a)IDE официальная среда разработки для Vala (англійською) . Архів оригіналу за 10 березня 2012. Процитовано 27 квітня 2012.
- Benchmark of Vala versus C# and C (англійською) . 9 марта 2008. Архів оригіналу за 10 березня 2012. Процитовано 2 мая 2009.
- http://valadoc.org/ (англійською) . Архів оригіналу за 10 березня 2012. Процитовано 9 февраля 2010.
- Снастин, Алексей (27 января 2010). Обзор языка программирования Vala. Часть 1: Общие свойства и характеристики языка Vala (російською) . Архів оригіналу за 10 березня 2012. Процитовано 9 февраля 2010.
- Часть 2. Объектно-ориентированное программирование на языке Vala (російською) . 4 февраля 2010. Архів оригіналу за 10 березня 2012. Процитовано 9 февраля 2010.
- Часть 3. Расширенные возможности языка Vala (російською) . 9 февраля 2010. Архів оригіналу за 10 березня 2012. Процитовано 9 февраля 2010.
- Что такое Vala (російською) . 23 июля 2010. Архів оригіналу за 10 березня 2012. Процитовано 31 июля 2010.
- Руководство по Vala (незаконченный перевод) (російською) . Архів оригіналу за 10 березня 2012. Процитовано 17 августа 2010.
- (англійською) . 16 августа 2011. Архів оригіналу за 25 вересня 2013. Процитовано 16 августа 2011.
- Поддержка подключения библиотек написанных на C (англійською) . 7 сентября 2011. Архів оригіналу за 10 березня 2012. Процитовано 17 сентября 2011.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Vala ob yektno oriyentovana mova programuvannya priznachena dlya prikladnogo i sistemnogo programuvannya na osnovi bibliotek GLib Object System robochogo seredovisha GNOME GTK Mova bula rozroblena Yurgom Billeterom Jurg Billeter i Raffaele Sandrini Raffaele Sandrini ValaParadigmabagato paradigmove imperativne strukturne ob yektno oriyentovane programuvannyaData poyavi2006RozrobnikJurg Billeter Raffaele SandriniOstannij relizSistema tipizaciyistroga statichnaPid vplivom vidC C Java C Sharp D i BooMova realizaciyiVala 1 Operacijna sistemakrosplatformova programaLicenziyaLGPL 2 1 Zvichajni rozshirennya fajliv vala abo vapiRepozitorij vihidnogo kodugitlab gnome org GNOME vala git github com GNOME vala gitVebsajtlive gnome org Vala Mediafajli u VikishovishiOsnovni osoblivostiVala za svoyim sintaksisom podibna do C i povnistyu realizuye ob yektno oriyentovanij pidhid Pidtrimuyutsya introspekciya pribirannya smittya zasnovane na pidrahunku posilan lyambda funkciyi koncepciya signaliv i slotiv podibna vikoristovuvanij u Qt ale realizovana na rivni movi ryadkovi tipi zrizi masiviv operator pereliku elementiv kolekciyi foreach delegati zamikannya interfejsi ta vinyatki Osoblivist sistemi rozrobki polyagaye v tomu sho programa na Vala translyuyetsya v programu movoyu C yaka v svoyu chergu kompilyuyetsya u vikonuvanij kod cilovoyi platformi zi standartnimi bibliotekami C Glib i GTK ta vikonuyetsya zi shvidkistyu skompilovanoyi v ob yektnij kod cilovoyi platformi programi C Zavdyaki takomu pidhodu vidkompilovanij kod na Vala binarno sumisnij z sistemnimi bibliotekami napisanimi na C Dlya pidklyuchennya storonnih bibliotek do program na movi Vala vikoristovuyutsya specialni vapi fajli v yakih opisuyetsya interfejs biblioteki Dlya bagatoh bibliotek vzhe isnuyut vapi fajli sho vhodyat do distributivu kompilyatora Vala Krim togo ye vapi fajli dlya bibliotek pidtrimuvani storonnimi koristuvachami poki ne vklyucheni u shtatne postachannya Isnuyut neoficijni zbirki kompilyatora dlya OS Windows pidtrimuvani storonnimi rozrobnikami Prichini stvorennyaMova Vala bula stvorena dlya efektivnoyi rozrobki na platformi GNOME skladnih prikladnih i sistemnih program z grafichnim interfejsom koristuvacha sho bazuyetsya na standartnij biblioteci GTK iz zastosuvannyam suchasnih movnih zasobiv i tehnik programuvannya Ob yektno oriyentovani movi Java i C nadayut programistu dosit mozhlivostej ale yihni programi vikonuyutsya u virtualnih mashinah sho robit nemozhlivim pryame zvernennya do nih z binarnogo kodu movoyu C yak i vikoristannya v takih programah sistemnih nizkorivnevih bibliotek takih yak Tomu ci movi yak i bud yaki inshi yaki vikonuyut bajt kod v virtualnih mashinah ne mozhut buti prijnyati v ramkah platformi GNOME Kerovani programi mayut takozh obmezhennya u shvidkodiyi sho ye kritichnim dlya roboti deyakih program napriklad sistemnih yaki povinni vikonuvatisya v binarnomu kodi ABI Ce i stalo prichinoyu poyavi movi Vala Prikladi koduPriklad 1 Prosta programa Hello World int main print Hello World n return 0 Priklad 2 Programa Hello World sho demonstruye ob yektno oriyentovanij pidhid 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 Priklad 3 Ce priklad vikoristannya GTK dlya stvorennya GUI program movoyu 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 Integrovani seredovisha rozrobkiTaki integrovani seredovisha rozrobki pidtrimuyut movu Vala Anjuta Geany MonoDevelopPrikladi programnogo zabezpechennya na ValaShotwell uporyadnik fotografij Fillmore bagatodorizhkovij zapis Lombard video redaktor plagin gedit dlya Vala Midori 7 vebbrauzerVinoskiThe vala Open Source Project on Open Hub Languages Page 2006 d Track Q124688 Bindings Status anglijskoyu Arhiv originalu za 10 bereznya 2012 Procitovano 7 veresnya 2011 External Bindings anglijskoyu Arhiv originalu za 10 bereznya 2012 Procitovano 7 veresnya 2011 PosilannyaThe Vala Programming Language on GNOME Live anglijskoyu 23 avgusta 2011 Arhiv originalu za 10 bereznya 2012 Procitovano 16 avgusta 2011 Val a IDE oficialnaya sreda razrabotki dlya Vala anglijskoyu Arhiv originalu za 10 bereznya 2012 Procitovano 27 kvitnya 2012 Benchmark of Vala versus C and C anglijskoyu 9 marta 2008 Arhiv originalu za 10 bereznya 2012 Procitovano 2 maya 2009 http valadoc org anglijskoyu Arhiv originalu za 10 bereznya 2012 Procitovano 9 fevralya 2010 Snastin Aleksej 27 yanvarya 2010 Obzor yazyka programmirovaniya Vala Chast 1 Obshie svojstva i harakteristiki yazyka Vala rosijskoyu Arhiv originalu za 10 bereznya 2012 Procitovano 9 fevralya 2010 Chast 2 Obektno orientirovannoe programmirovanie na yazyke Vala rosijskoyu 4 fevralya 2010 Arhiv originalu za 10 bereznya 2012 Procitovano 9 fevralya 2010 Chast 3 Rasshirennye vozmozhnosti yazyka Vala rosijskoyu 9 fevralya 2010 Arhiv originalu za 10 bereznya 2012 Procitovano 9 fevralya 2010 Chto takoe Vala rosijskoyu 23 iyulya 2010 Arhiv originalu za 10 bereznya 2012 Procitovano 31 iyulya 2010 Rukovodstvo po Vala nezakonchennyj perevod rosijskoyu Arhiv originalu za 10 bereznya 2012 Procitovano 17 avgusta 2010 anglijskoyu 16 avgusta 2011 Arhiv originalu za 25 veresnya 2013 Procitovano 16 avgusta 2011 Podderzhka podklyucheniya bibliotek napisannyh na C anglijskoyu 7 sentyabrya 2011 Arhiv originalu za 10 bereznya 2012 Procitovano 17 sentyabrya 2011