Szemantikai elemzés gráf-transzformációkkal

OData támogatás
Konzulens:
Ács Evelin Kitti
Automatizálási és Alkalmazott Informatikai Tanszék

A Slime nyelv olyan nyelvek és nyelvtanok kiegészítésére való, melyek szintaxisa nagy mennyiségű redundáns kód írását teszi szükségessé. Nyelvi elemei a kiegészítendő nyelv vagy nyelvtan sablonjainak hatékony létrehozását, manipulációját és tárolását támogatják. A fordítót az ANTLR (ANother Tool for Language Recognition) segítségével valósítottuk meg.

A Slime elsődlegesen IRTG (Interpreted Regular Tree Grammar) nyelvtanok tömör és átlátható leírására lett kifejlesztve. Az IRTG-t olyan nyelvtan fejlesztésére használjuk, amely két vagy több formalizmus (nyers szöveg, szintaktikai reprezentációk, szemantikai reprezentációk) közötti konverziót implementál gráftranszformációk segítségével. A Slime nyelvet IRTG nyelvtanok, ANTLR lexer nyelvtanok, Android layout leíró XML kódok és HTML kódok előállítására használtuk. A legnagyobb nyereséget egy android layout esetében tapasztaltuk, ahol egy egyszerű gombos menü tömörítésére használtuk a Slime nyelvet: 30%-kal lett kevesebb a sorok száma, de a kód nagy részét a sablonok előkészítése tette ki. Az előkészítést követően a gombokat már az addigi átlagosan tizenöt sor helyett három sorban lehetett megadni, ez sokkal több gomb esetén majdnem 80%-os nyereséget jelent. IRTG-k esetében az előkészítésen felül két sorra volt szükség az addigi hat sor helyett: egy sor az adatok definiálása, a másik pedig azok beszúrása a sablonba. Ez több IRTG szabály esetén akár 66%-os nyereséget is jelenthet. A program teljes forráskódja, szintaxisának és alapelemeinek leírása és számos példakód elérhető a https://github.com/Hollo1996/SlimeAnUTLE oldalon.

Letölthető fájlok

A témához tartozó fájlokat csak bejelentkezett felhasználók tölthetik le.