2013. október 6., vasárnap

Prolog IDE készítése Sublime Text-ből

Prolog fejlesztéshez nincs túl sok jó fejlesztői környezet. Ha mégis ezt a nyelvet kell használnunk elég hamar megunhatóak a különféle Prolog implementációk interaktív programjainak használata. Sokat lassít a fejlesztésen mentés után a fájlok folytonos újratöltése, futtatása, meghívása. Bár léteznek például az emacs szövegszerkesztőhöz Prolog fejlesztést segítő kiegészítések, ha valaki egy felhasználóbarátabb megoldást keres, hasznos lehet számára az a környezet, amit most bemutatok.

Egy ideje elkezdtem használni a Sublime Text szövegszerkesztőt, elég sok leírás van róla az interneten, érdemes kipróbálni hátha megtetszik. A szerkesztő fontos tulajdonsága, hogy rendkívül könnyen kiegészíthető és rengeteg nyelvhez van beépített támogatása is, így sok esetben komplett IDE-ként használhatjuk.

Az ingyenes SWI-Prolog implementációhoz, már elkészítve találtam egy plugint, melyhez már létezik syntax highlighting, és egy komplett build system. Telepítéséhez a Package Control-ban (CTRL+SHIFT+P), a csomagok közt (Install Package) keressünk rá a Prolog szóra, és telepítsük a kiegészítést. Ezt a csomagot érdemes mindenképpen telepíteni a Prolog syntax highlighting miatt is. Kérdezhetnénk, hogy egy ilyen nyelvet, mint a Prolog, hogyan lehet "fordítani", vagy futtatni? Mivel a Prolog programokban nincsen olyan belépési pont, amely a program meghívásakor meghívódik alapértelmezetten, nem fogjuk tudni automatikusan futtatni az elkészült programunkat a szövegszerkesztőnkben. Egy kis kiegészítéssel, viszont a legtöbb Prolog implementációban elérhető az, hogy a Prolog interpreter indításakor automatikusan betöltse a programunkat egy fájlból, és meghívjon egy előre megadott célt (goal).

Ehhez készítsünk egy main elnevezésű goalt, ahol hívjuk meg az általunk írt, saját célt. Azért, hogy a Prolog visszalépéses mechanizmusát az interaktív programmal kikerüljük, érdemes a findall paranccsal az összes megoldását megkeresni a programunknak, melyet aztán egy listába foglalva kiírathatunk. Ezeket a lépéseket minden Prolog program írásakor meg kell tennünk, így érdemes összefoglalni snippet-be:

Tools > New Snippet...

majd másoljuk be a következő XML formátumban megadott snippetet, mely a main szó után egy TAB gombbal illeszthető majd be:

Ha valaki nem a fenti, ingyenes Prolog implementációt használja, hanem a Sicstus Prolog-ot, akkor egy kicsit más lesz a buildeléshez használható parancs; csináljunk egy új Build System-et:

Tools > Build System > New Build System...

és illesszük be a következő JSON-t:

Megjegyzés: Megfelelő működéshez hozzunk létre egy linket a prolog néven a Sicstus Prolog telepítésünkre:

cd /usr/bin
sudo ln -s <SicstusPrologElérésiÚt>/sicstus prolog

Nincsenek megjegyzések:

Megjegyzés küldése