Detail práce

Interaktivní generátor syntaxe heterogenních datových struktur

Bakalářská práce Student: Kotraš Martin Akademický rok: 2019/2020 Vedoucí: Smrčka Aleš, Ing., Ph.D.
Název anglicky
Interactive Generator of Syntax of Heterogeneous Data Structures
Jazyk práce
český
Abstrakt

V dnešní době jsou softwarové systémy často skládány z několika komponent předávající si data různými komunikačními kanály. I přes to, že existuje řada standardizovaných formátů kódování dat, vývojáři stále vytváří své vlastní většinou s ohledem na specifické použití jimi vytvářeného softwaru. Jednou ze zásadních částí ověření kvality nebo minimalizace chyb z přenosu dat je validace vstupních dat. Prvním krokem k validaci je formalizace jazyka popisující datové struktury. Nejobecnějším formalismem pro tyto účely je gramatika jazyka ve standardním popisu, např. BNF, ABNF, nebo EBNF. Tvorba gramatiky specifického jazyka však může být krok, který je citlivý na vznik chyby pro nezkušeného vývojáře. Cílem tohoto projektu je jednoduchá aplikace pro tvorbu gramatiky ze vzorku dat.

V práci je řešeno generování gramatiky a následných validačních kousků kódu z nahraného ukázkového řetězce jazyka, např. zdrojového kódu programovacího jazyka. Problém řeší uživatel aplikace postupným označováním částí nahraného řetězce, jejich pojmenováním a přiřazováním vlastností. K tomu mu dopomáhají nástroje na rozdělování pravidel, slučování prefixů a/nebo sufixů pravidla, vytváření seznamů a optimalizaci výsledných pravidel.

V rámci práce vznikla jednostránková webová aplikace, která při testování na jazycích JSON a XML dokázala poměrně dobře obstát a bylo možné tak vytvořit obecnější gramatiku i přes problémy se slabým syntaktickým analyzátorem. Díky této práci tak mohou i méně zkušení uživatelé vytvářet obecnější gramatiky jejich řetězců a používat je pro validaci. Práce navíc dává základ pro další zkoumání v této oblasti a je otevřená pro další vylepšení.

Klíčová slova

bezkontextová gramatika, formální jazyky, ABNF, validátor, generátor syntaxe, metadata, React, Redux

Ústav
Studijní program
Informační technologie
Soubory
Stav
obhájeno, hodnocení B
Obhajoba
8. července 2020
Oponent
Průběh obhajoby

Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm B.

Otázky u obhajoby
  1. Na základě čeho jste zvolil formu popisu, kterou uživatel specifikuje?
  2. Jakého typu je výsledná gramatika?
  3. Uvažoval jste možnost automatizovaného generování gramatiky?
  4. Jak je možné, že gramatika generuje nedosažitelná pravidla
  5. Jaký syntaktický analyzátor používáte?
  6. Je možnost z gramatiky vygenerovat parser?
  7. Je vnitřně specifikovaná gramatika cílového jazyka nebo ji dodává uživatel?
Komise
Ryšavý Ondřej, doc. Ing., Ph.D. (UIFS FIT VUT), předseda
Bidlo Michal, doc. Ing., Ph.D. (UPSY FIT VUT), člen
Fučík Otto, doc. Dr. Ing. (UPSY FIT VUT), člen
Lengál Ondřej, Ing., Ph.D. (UITS FIT VUT), člen
Szőke Igor, Ing., Ph.D. (UPGM FIT VUT), člen
Citace
KOTRAŠ, Martin. Interaktivní generátor syntaxe heterogenních datových struktur. Brno, 2020. Bakalářská práce. Vysoké učení technické v Brně, Fakulta informačních technologií. 2020-07-08. Vedoucí práce Smrčka Aleš. Dostupné z: https://www.fit.vut.cz/study/thesis/23128/
BibTeX
@bachelorsthesis{FITBT23128,
    author = "Martin Kotra\v{s}",
    type = "Bakal\'{a}\v{r}sk\'{a} pr\'{a}ce",
    title = "Interaktivn\'{i} gener\'{a}tor syntaxe heterogenn\'{i}ch datov\'{y}ch struktur",
    school = "Vysok\'{e} u\v{c}en\'{i} technick\'{e} v Brn\v{e}, Fakulta informa\v{c}n\'{i}ch technologi\'{i}",
    year = 2020,
    location = "Brno, CZ",
    language = "czech",
    url = "https://www.fit.vut.cz/study/thesis/23128/"
}
Nahoru