Vala

Vala
Парадигмабагато-парадигмове: імперативне, структурне, об'єктно-орієнтоване програмування
Дата появи2006
РозробникJürg Billeter, Raffaele Sandrini
Останній реліз
Система типізаціїстрога статична
Під впливом відC, 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об'єктно-орієнтована мова програмування, призначена для прикладного і системного програмування на основі бібліотек GLib Object System (GObject(інші мови)) робочого середовища GNOME/GTK+. Мова була розроблена Юргом Біллетером (Jürg Billeter) і Раффаеле Сандріні (Raffaele Sandrini).

Основні особливості

Vala за своїм синтаксисом подібна до C# і повністю реалізує об'єктно-орієнтований підхід. Підтримуються інтроспекція, прибирання сміття, засноване на підрахунку посилань, лямбда-функції, концепція сигналів і слотів, подібна використовуваній у Qt, але реалізована на рівні мови, рядкові типи, зрізи масивів, оператор переліку елементів колекції foreach(), делегати, замикання, інтерфейси, властивості та винятки.

Особливість системи розробки полягає в тому, що програма на Vala транслюється в програму мовою C, яка в свою чергу компілюється у виконуваний код цільової платформи зі стандартними бібліотеками C, Glib і GTK+ та виконується зі швидкістю скомпільованої в об'єктний код цільової платформи програми C. Завдяки такому підходу відкомпільований код на 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;
}

Інтегровані середовища розробки

Такі інтегровані середовища розробки підтримують мову Vala

Приклади програмного забезпечення на Vala

  • Shotwell — упорядник фотографій
  • Fillmore — багатодоріжковий запис
  • Lombard — відео-редактор
  • Valencia — плагін gedit для Vala
  • Midori 7 — веббраузер

Виноски

  1. The vala Open Source Project on Open Hub: Languages Page — 2006.
  2. Bindings Status (англійською) . Архів оригіналу за 10 березня 2012. Процитовано 7 вересня 2011.
  3. External Bindings (англійською) . Архів оригіналу за 10 березня 2012. Процитовано 7 вересня 2011.

Посилання

  • http://valadoc.org/ (англійською) . Архів оригіналу за 10 березня 2012. Процитовано 9 февраля 2010.
  • Что такое Vala (російською) . 23 июля 2010. Архів оригіналу за 10 березня 2012. Процитовано 31 июля 2010.

Read other articles:

Konvoi Arktik pada Perang Dunia IIBagian dari Perang Dunia IIPemandangan dari kapal penjelajah HMS Sheffield saat kapal tersebut berlayar dalam tugas konvoi melalui perairan Samudra Arktik. Di latar belakang adalah kapal-kapal dagang dari konvoi tersebut.TanggalAgustus 1941 – Mei 1945LokasiLaut Norwegia dan Samudra ArktikHasil Kemenangan SekutuPihak terlibat  Britania Raya Uni Soviet Kanada Amerika Serikat Norwegia  JermanKorban 85 kapal dagang16 kapal per...

 

 

This is a list of association football clubs which entered the Scottish Cup between 1873 and 1894, when the Scottish Qualifying Cup was introduced, and which lack the prominence for their Wikipedia pages. 1st Dumfries Rifle Volunteers F.C. Football club1st D.R.V.Founded1881Dissolved1883GroundNoblehill ParkHon. PresidentLt.-Col. W. E. MalcolmMatch SecretaryPte Thomas CairnsHon. SecretarySgt Major James Kennedy Home colours History The club was founded on 10 December 1881,[1] out of th...

 

 

Peta Pulau Mona Pulau Mona (Bahasa Spanyol: Isla de la Mona ) adalah pulau terbesar ketiga di Puerto Rico, setelah pulau utama Puerto Rico dan Vieques . Pulau ini berukuran sekitar 11 km dengan lebar 7 km . Pulau ini terletak 66 km sebelah barat dari Puerto Rico. Nama asli diberikan ke pulau oleh Suku Indian Taíno adalah Amona, yang berarti apa yang ada di tengah, mengacu pada perjalanan antara pulau-pulau Puerto Rico dan Hispaniola . Ini adalah salah satu dari dua pulau yang membentuk Isla ...

2011 aviation disaster near Guelmim, Morocco This article needs to be updated. Please help update this to reflect recent events or newly available information. (September 2019) 2011 Royal Moroccan Air Force C-130 crashA Moroccan Air Force C-130H Hercules similar to the one involvedAccidentDate26 July 2011SummaryUnder investigationSiteNear Guelmim Airport, Guelmim, Morocco 29°03′N 9°56′W / 29.050°N 9.933°W / 29.050; -9.933AircraftAircraft typeLockheed C-130...

 

 

City in Florida, United StatesMiramar, FloridaCity SealMotto(s): Beauty and ProgressCoordinates: 25°58′44″N 80°16′57″W / 25.97889°N 80.28250°W / 25.97889; -80.28250Country United StatesState FloridaCountyBrowardIncorporatedMay 26, 1955Government • TypeCommission-Manager • MayorWayne M. Messam • Vice MayorAlexandra P. Davis • CommissionersWinston F. Barnes, Maxwell B. Chambers, and Yvette Colbou...

 

 

Foto dari USS Princeton (CV-37) USS Princeton (CV/LPH-5) adalah kapal induk kelas Essex milik Angkatan Laut Amerika Serikat.[1] Peletakan lunas/keel laying pertama kali dilakukan pada tanggal 14 September 1943 di Philadelphia Naval Shipyard. Kemudian baru ditugaskan untuk pertama kali tanggal 18 November 1945 menjelang akhir masa perang dunia kedua. Kapal ini memiliki peran sebagai landing platform helicopter untuk operasi pendaratan amfibi yang membawa helikopter dan pesawat VTOL. Se...

Annual film festival held in Venice, Italy Mostra Internazionale d'Arte CinematograficaInternational Exhibition of Cinematographic ArtVenice Cinema Palace on the Lido islandLocationVenice, ItalyFounded6 August 1932; 91 years ago (1932-08-06)AwardsGolden LionSilver LionVolpi Cup and othersArtistic directorAlberto Barbera (since 2011)No. of films92 in 2021Websitelabiennale.org/en/cinemaCurrent: 80th81st 79th The Venice Film Festival or Venice International Film Festival (Itali...

 

 

Deep water mass formed in the North Atlantic Ocean The North Atlantic Deep Water is considered to be one of several possible tipping points in the climate system. North Atlantic Deep Water (NADW) is a deep water mass formed in the North Atlantic Ocean. Thermohaline circulation (properly described as meridional overturning circulation) of the world's oceans involves the flow of warm surface waters from the southern hemisphere into the North Atlantic. Water flowing northward becomes modified th...

 

 

Protagonist in Final Fantasy VII Fictional character Cloud StrifeFinal Fantasy characterCloud Strife artwork by Tetsuya Nomura for Final Fantasy VII.First appearanceFinal Fantasy VIIJanuary 31, 1997Created byYoshinori Kitase, Kazushige Nojima, Tetsuya Nomura, Hironobu SakaguchiDesigned byTetsuya NomuraVoiced by English Steve Burton (2002–18)Cody Christian (2020–present)Major Dodson (2020, young) Japanese Kenyu Horiuchi (Ehrgeiz, arcade version)Nozomu Sasaki (Ehrgeiz, home console version)...

Artikel ini tidak memiliki referensi atau sumber tepercaya sehingga isinya tidak bisa dipastikan. Tolong bantu perbaiki artikel ini dengan menambahkan referensi yang layak. Tulisan tanpa sumber dapat dipertanyakan dan dihapus sewaktu-waktu.Cari sumber: Zuppa alla modenese – berita · surat kabar · buku · cendekiawan · JSTOR Zuppa alla modeneseJenisSupTempat asalItaliaDaerahModenaBahan utamaKuah, bayam, mentega, garam, telur, keju Parmesan, buah pala, cr...

 

 

Questa voce o sezione sull'argomento centri abitati del Veneto non cita le fonti necessarie o quelle presenti sono insufficienti. Puoi migliorare questa voce aggiungendo citazioni da fonti attendibili secondo le linee guida sull'uso delle fonti. Questa voce o sezione sull'argomento Veneto non è ancora formattata secondo gli standard. Contribuisci a migliorarla secondo le convenzioni di Wikipedia. Segui i suggerimenti del progetto di riferimento. SalvaterrafrazioneSalvaterra – Ve...

 

 

This article may have been created or edited in return for undisclosed payments, a violation of Wikipedia's terms of use. It may require cleanup to comply with Wikipedia's content policies, particularly neutral point of view. (March 2021) Belarusian rapper CYGOBirth nameLeonid VakulchukBorn (1998-06-06) 6 June 1998 (age 25)Mogilev, BelarusGenresHip hoprapOccupation(s)RappersongwriterLabelsKlever LabelMusical artist Leonid Vakulchuk (Russian: Леонид Вакульчук; Belarusian: ...

Not to be confused with Shazam! (DC Comics).Comics character ShazamRendition of the Jebediah incarnation of the Wizard.Art by Alex RossPublication informationPublisherFawcett Comics (1942-1953) DC Comics (1972-present)First appearanceWhiz Comics #2 (February 1940)Created byC. C. BeckBill ParkerIn-story informationAlter egoMamaraganJebediah of CanaanSpeciesGod (current)New God (previous continuity)Homo Magi (previous continuity)Team affiliationsMarvel/Shazam FamilySquadron of JusticeThe Quinte...

 

 

المركب العضوي هو أي مركب من المركبات الكيميائية التي تحتوي جزيئاتها على الكربون فيما عدا الكربيدات، الكربونات، ثنائي أكسيد الكربون، البيكربونات، السيانات.[1][2][3] دراسة المركب العضوي تسمى الكيمياء العضوية. وعديد من هذه المركبات مثل البروتينات والليبيدات والك...

 

 

BerdukaInformasi umumNama lainBerkabung[1]SpesialisasiPsikologi PerawatanPenggembalaan, ahli kesehatan mental, pekerja sosial, kelompok dukungan[1] Berduka atau duka cita adalah respons terhadap kehilangan, terutama kehilangan seseorang atau makhluk hidup yang telah meninggal, yang mana ikatan atau kasih sayang telah terbentuk. Meskipun berduka secara konvensional lebih difokuskan pada respons emosional terhadap kehilangan, aspek ini juga memiliki dimensi fisik, kognitif,...

Van Dúnem, 1980 Fernando José de França Dias Van Dúnem (* 24. August 1934; † 12. Juni 2024 in Lissabon) war ein angolanischer Hochschullehrer, Diplomat und Politiker der Movimento Popular de Libertação de Angola (MPLA), der unter anderem zwischen 1991 und 1992 sowie erneut von 1996 bis 2002 Premierminister Angolas war. Leben Fernando José de França Dias Van Dúnem absolvierte ein Studium der Rechtswissenschaften und erwarb einen Doktor im Fach Öffentliches Recht an der Universität...

 

 

Kejuaraan Dunia BWF 2023Informasi turnamenEdisike-28LevelInternasionalJadwalpenyelenggaraan21–27 AgustusTempatpenyelenggaraanRoyal ArenaKopenhagen, DenmarkNegara54Peserta362Hasil turnamenTunggal putra Kunlavut VitidsarnTunggal putri An Se-youngGanda putra Kang Min-hyuk Seo Seung-jaeGanda putri Chen Qingchen Jia YifanGanda campuran Seo Seung-jae Chae Yoo-jungLainnyaSitus web resmihttps://denmark2023.dk/ ← Tokyo 2022 Paris 2025 → Kategori di Kejuaraan Dunia BWF 2023TunggalputraputriGandap...

 

 

Lambang Peta Data dasar Bundesland: Nordrhein-Westfalen Regierungsbezirk: Detmold Ibu kota: Herford Luas wilayah: 450,04 km² Penduduk: 254.507 [1] (31 Desember 2005) Kepadatan penduduk: 566 jiwa /km² Pelat kendaraan bermotor: HF Pembagian administratif: 9 Gemeinden AlamatKreisverwaltung: Amtshausstraße 332051 Herford Situs web resmi: www.kreis-herford.de Alamat e-mail: [email protected] Politik Landrätin: Lieselore Curländer (CDU) Peta Herford adalah sebuah distrik (Lan...

2007 Total Nonstop Action Wrestling pay-per-view event No Surrender (2007)DVD cover featuring various TNA wrestlersPromotionTotal Nonstop Action WrestlingDateSeptember 9, 2007CityOrlando, FloridaVenueTNA Impact! ZoneAttendance900[1]Tagline(s)Where The Nightmare Becomes A RealityPay-per-view chronology ← PreviousHard Justice Next →Bound for Glory No Surrender chronology ← Previous2006 Next →2008 The 2007 No Surrender was a professional wrestling pay-per-view...

 

 

Questa voce o sezione sull'argomento personaggi dei fumetti non cita le fonti necessarie o quelle presenti sono insufficienti. Commento: Totale assenza di fonti da oltre 10 anni. Puoi migliorare questa voce aggiungendo citazioni da fonti attendibili secondo le linee guida sull'uso delle fonti. Segui i suggerimenti del progetto di riferimento. Clan del piedeorganizzazione fittiziaLogo del Clan del PiedeNome originaleFoot Clan Altri nomiClub del piede CreazioneUniversoTartarughe Ninj...