Archívum

Archive for 2011. október

Vala programozás I. – Helló világ!

október 15, 2011 Hozzászólás

Ebben és az ezt követő bejegyzésekben a Vala programozási nyelvvel fogok foglalkozni, gyakorlat-orientált módon. Mindenekelőtt azért célszerű általánosan is bemutatni a nyelvet, hiszin igencsak új-keletű programozási nyelvről van szó.

Mit kell róla tudni?

Röviden: a Vala nyelv egy olyan objektum-orientált programozási nyelv, amely szintaktikailag rendkívül hasonlít a C# nyelvre, fordítása során C forráskódot generál, ás a GObject függvénykönnytárra támaszkodik. A nyelv még igen fiatalnak számít, hiszen 2005-ben kezdődött a fejlesztése, de mostanra már jelentős funkcionalitással rendelkezik.

Pár nagyobb fontosságú tulajdonsága:

  • modern programozási funkciók, amelyek más népszerű nyelvekben is megtalálhatóak
  • kevés függőség:
    • ez rendkívül fontos, hiszen pl. a C# esetén a .Net/Mono platformhoz vagyunk kötve
    • jól portolható, hiszen csak a GObject könyvtárra van szükség (az pedig rendkívül sok platformra elérhető)
  • mivel a GObject-re épül, a többi GObject alapú könyvtárral jól használható, ez a gyakorlatban a GNOME platformot jelenti
  • nem használ virtuális gépet, mint a Java vagy a C#, hanem gépi kódra fordul (potenciálisan nagyobb sebesség)
  • nincs hulladékgyűjtés (garbage collection), helyette referencia-számlálás (reference counting), hasonlatosan a C++-hoz
    • ez valamilyen szempontból hátrány, de lehetőséget biztosít dinamikus memóriakezelésre

Hosszabb bemutatás található a következő, általam írt jegyzetben: A Vala programozási nyelv

Vágjunk bele!

Most akár el is kezdhetnénk kódolni, de nyilvánvalóan fejlesztőeszközökre van szükségünk. Én aktuálisan Ubuntu 11.10 operációs rendszert használok, így a fejlesztőeszközök beszerzését ezen mutatom be. Régebbi verziók esetén kissé eltérő lehet a módszer, de nem túlságosan. Lehetőség van Windows alatt is fejleszteni, ehhez tájékozódjunk a projekt weboldaláról.

Először szükségünk van a fordítóprogramra. Ha csak az alapvető csomagtárolókat használjuk, akkor telepítsük a valac-0.12 csomagot. Ha a legfrissebb stabil kiadást szeretnénk használni, akkor adjuk a rendszerhez a Vala PPA tárolóját: Vala Team PPA

Ezt például parancssorból tehetjük meg:

sudo add-apt-repository ppa:vala-team

Ezután csak telepítsük a megfelelő vala csomagot. Ez most jelenleg a valac-0.16 csomag.

sudo add-get install valac-0.16

A forráskód szerkesztéséhez én az operációs rendszer beépített szövegszerkesztő programját (a gedit-et) használom. Telepítve a gedit-valencia-plugin csomagot, és aktiválva a programban a Bővítmények között, egy egyszerű szerkesztőfelületet kapunk Vala programozáshoz. A fejlesztést segítheti még a Devhelp dokumentációböngésző is, de ez nem létfontosságú.

Ezzel lényegében belefoghatunk a kipróbálásba.

Az első Vala programunk

Szinte minden programozási nyelvet a klasszikus „Helló világ!” példával szoktak bemutatni, most én sem teszek másképp:

void main() {
    stdout.printf("Helló világ!\n");
}

Ugyan ez is tökéletesen működik, inkább hasonlít egy C programra, mint egy objektum-orientált megoldásra. A következő egy összetettebb megoldás:

class Main : GLib.Object {
    public static void main(string[] args) {
        stdout.printf("Helló világ!\n");
    }
}

Fordítás

Már csak az van hátra, hogy gépi kódra fordítsuk a forrásnyelvi szöveget. Erre a már feltelepített valac programot használjuk:

valac -o hello hello.vala

Ez először C forráskódot generál hello.c néven, majd azt lefordítja a GCC C fordítóprogrammal. Ha esetleg kíváncsiak vagyunk a generált C forráskódra, akkor adjuk át a -C kapcsolót a valac-nak. A programunk binárisa a hello állomány, amely futása során a „Helló világ!” üzenetet írja ki a konzolra.

Reklámok
Kategóriák:Programozás Címke: , , , ,